Skip to content

Commit

Permalink
Added heavily mocked testin
Browse files Browse the repository at this point in the history
  • Loading branch information
Roger Hughes committed Jun 7, 2014
1 parent b04c5a8 commit 936821a
Show file tree
Hide file tree
Showing 12 changed files with 243 additions and 13 deletions.
14 changes: 13 additions & 1 deletion cargo-cult/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,19 @@
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>1.9.5</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${org.springframework-version}</version>
<scope>test</scope>
</dependency>

</dependencies>
<build>
<plugins>
Expand Down
2 changes: 2 additions & 0 deletions cargo-cult/src/main/java/com/captaindebug/cargocult/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
*/
public class User {

public static User NULL_USER = new User(-1, "null_name", "", new Date());

private final long id;

private final String name;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.captaindebug.cargocult.brief;

import org.springframework.stereotype.Controller;

@Controller
public class SimpleUserController {

}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.captaindebug.cargocult.user;
package com.captaindebug.cargocult.ntier;

import java.io.Serializable;
import java.sql.ResultSet;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.captaindebug.cargocult.user;
package com.captaindebug.cargocult.ntier;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.captaindebug.cargocult.user;
package com.captaindebug.cargocult.ntier;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;

Expand All @@ -16,8 +17,13 @@ public class UserDao {

public User findUser(String name) {

FindUserMapper rowMapper = new FindUserMapper();

return jdbcTemplate.queryForObject(FIND_USER_BY_NAME, rowMapper, name);
User user;
try {
FindUserMapper rowMapper = new FindUserMapper();
user = jdbcTemplate.queryForObject(FIND_USER_BY_NAME, rowMapper, name);
} catch (EmptyResultDataAccessException e) {
user = User.NULL_USER;
}
return user;
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.captaindebug.cargocult.user;
package com.captaindebug.cargocult.ntier;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
Expand Down
1 change: 1 addition & 0 deletions cargo-cult/src/main/webapp/WEB-INF/views/home.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
<P> The time on the server is ${serverTime}. </P>
<P>
<a href="find1?user=Tom">Find user Tom using 'N' Tier</a><br/>
<a href="find1?user=">Find empty using 'N' Tier</a><br/><br/>
<a href="find2?user=Tom">Find user Tom using class model</a>
</P>
</body>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
package com.captaindebug.cargocult.ntier;

import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import java.util.Date;

import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.ui.Model;

import com.captaindebug.cargocult.User;

public class UserControllerTest {

private static final String NAME = "Woody Allen";

private UserController instance;

@Mock
private Model model;

@Mock
private UserService userService;

@Before
public void setUp() throws Exception {

MockitoAnnotations.initMocks(this);

instance = new UserController();
ReflectionTestUtils.setField(instance, "userService", userService);
}

@Test
public void testFindUser_valid_user() {

User expected = new User(0L, NAME, "[email protected]", new Date());
when(userService.findUser(NAME)).thenReturn(expected);

String result = instance.findUser(NAME, model);
assertEquals("user", result);

verify(model).addAttribute("user", expected);
}

@Test
public void testFindUser_null_user() {

when(userService.findUser(null)).thenReturn(User.NULL_USER);

String result = instance.findUser(null, model);
assertEquals("user", result);

verify(model).addAttribute("user", User.NULL_USER);
}

@Test
public void testFindUser_empty_user() {

when(userService.findUser("")).thenReturn(User.NULL_USER);

String result = instance.findUser("", model);
assertEquals("user", result);

verify(model).addAttribute("user", User.NULL_USER);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
package com.captaindebug.cargocult.ntier;

import static org.junit.Assert.assertEquals;
import static org.mockito.Matchers.anyObject;
import static org.mockito.Matchers.anyString;
import static org.mockito.Matchers.eq;
import static org.mockito.Matchers.isNull;
import static org.mockito.Mockito.when;

import java.util.Date;

import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.test.util.ReflectionTestUtils;

import com.captaindebug.cargocult.User;

public class UserDaoTest {

private static final String NAME = "Woody Allen";

private UserDao instance;

@Mock
private JdbcTemplate jdbcTemplate;

@Before
public void setUp() throws Exception {

MockitoAnnotations.initMocks(this);

instance = new UserDao();
ReflectionTestUtils.setField(instance, "jdbcTemplate", jdbcTemplate);
}

@SuppressWarnings({ "unchecked", "rawtypes" })
@Test
public void testFindUser_valid_user() {

User expected = new User(0L, NAME, "[email protected]", new Date());
when(jdbcTemplate.queryForObject(anyString(), (RowMapper) anyObject(), eq(NAME))).thenReturn(expected);

User result = instance.findUser(NAME);
assertEquals(expected, result);
}

@SuppressWarnings({ "unchecked", "rawtypes" })
@Test
public void testFindUser_null_user() {

when(jdbcTemplate.queryForObject(anyString(), (RowMapper) anyObject(), isNull())).thenReturn(User.NULL_USER);

User result = instance.findUser(null);
assertEquals(User.NULL_USER, result);
}

@SuppressWarnings({ "unchecked", "rawtypes" })
@Test
public void testFindUser_empty_user() {

when(jdbcTemplate.queryForObject(anyString(), (RowMapper) anyObject(), eq(""))).thenReturn(User.NULL_USER);

User result = instance.findUser("");
assertEquals(User.NULL_USER, result);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package com.captaindebug.cargocult.ntier;

import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.when;

import java.util.Date;

import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.springframework.test.util.ReflectionTestUtils;

import com.captaindebug.cargocult.User;

public class UserServiceTest {

private static final String NAME = "Annie Hall";

private UserService instance;

@Mock
private UserDao userDao;

@Before
public void setUp() throws Exception {

MockitoAnnotations.initMocks(this);

instance = new UserService();

ReflectionTestUtils.setField(instance, "userDao", userDao);
}

@Test
public void testFindUser_valid_user() {

User expected = new User(0L, NAME, "[email protected]", new Date());
when(userDao.findUser(NAME)).thenReturn(expected);

User result = instance.findUser(NAME);
assertEquals(expected, result);
}

@Test
public void testFindUser_null_user() {

when(userDao.findUser(null)).thenReturn(User.NULL_USER);

User result = instance.findUser(null);
assertEquals(User.NULL_USER, result);
}

@Test
public void testFindUser_empty_user() {

when(userDao.findUser("")).thenReturn(User.NULL_USER);

User result = instance.findUser("");
assertEquals(User.NULL_USER, result);
}
}

0 comments on commit 936821a

Please sign in to comment.