Skip to content

Commit 5b8afc7

Browse files
Merge pull request #5 from Cameron-C-Chapman/develop
develop:1.3.0-SNAPSHOT --> master:1.2.0
2 parents 09ecf0c + 0d0e296 commit 5b8afc7

File tree

6 files changed

+88
-11
lines changed

6 files changed

+88
-11
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ apply plugin: 'jacoco'
1919

2020
jar {
2121
baseName = 'simpleSpringRestService'
22-
version = '1.2.0'
22+
version = '1.3.0'
2323
}
2424
sourceCompatibility = 1.8
2525
targetCompatibility = 1.8

src/main/java/org/cameronchapman/github/webservice/data/CustomerDao.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
1212
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
1313
import org.springframework.jdbc.support.GeneratedKeyHolder;
14-
import org.springframework.jdbc.support.KeyHolder;
1514
import org.springframework.stereotype.Component;
1615

1716
@Component
@@ -45,8 +44,7 @@ public Customer getById(Long id) {
4544
return namedParameterJdbcTemplate.queryForObject(getCustomerById, param, customerRowMapper);
4645
}
4746

48-
public Number insert(Customer customer) {
49-
KeyHolder keyHolder = new GeneratedKeyHolder();
47+
public Number insert(Customer customer, GeneratedKeyHolder keyHolder) {
5048
MapSqlParameterSource params = new MapSqlParameterSource();
5149
params.addValue("name", customer.getName());
5250
params.addValue("address1", customer.getAddress1());

src/main/java/org/cameronchapman/github/webservice/manager/CustomerManager.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import org.slf4j.LoggerFactory;
1111
import org.springframework.beans.factory.annotation.Autowired;
1212
import org.springframework.dao.DataAccessException;
13+
import org.springframework.jdbc.support.GeneratedKeyHolder;
1314
import org.springframework.stereotype.Component;
1415
import org.springframework.transaction.annotation.Transactional;
1516

@@ -43,7 +44,7 @@ public Customer getCustomerById(Long id) {
4344

4445
@Transactional(readOnly = false)
4546
public Number insertCustomer(Customer customer) throws Exception {
46-
Number newId = customerDao.insert(customer);
47+
Number newId = customerDao.insert(customer, new GeneratedKeyHolder());
4748
// if no new id was generated from the insert attempt throw an exception
4849
if (null == newId) {
4950
throw new NoNewCustomerIdReturnedException("No new customer id returned.");
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package org.cameronchapman.github.webservice.data;
2+
3+
import static org.junit.Assert.assertEquals;
4+
import static org.mockito.Matchers.any;
5+
6+
import java.util.ArrayList;
7+
import java.util.List;
8+
import java.util.Map;
9+
10+
import org.cameronchapman.github.webservice.model.Customer;
11+
import org.junit.Before;
12+
import org.junit.Test;
13+
import org.junit.runner.RunWith;
14+
import org.mockito.InjectMocks;
15+
import org.mockito.Matchers;
16+
import org.mockito.Mock;
17+
import org.mockito.Mockito;
18+
import org.mockito.MockitoAnnotations;
19+
import org.mockito.runners.MockitoJUnitRunner;
20+
import org.springframework.jdbc.core.JdbcTemplate;
21+
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
22+
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
23+
import org.springframework.jdbc.support.GeneratedKeyHolder;
24+
import org.springframework.jdbc.support.KeyHolder;
25+
26+
@RunWith(MockitoJUnitRunner.class)
27+
public class CustomerDaoTest {
28+
29+
@Mock
30+
JdbcTemplate jdbcTemplate;
31+
32+
@Mock
33+
NamedParameterJdbcTemplate namedParameterJdbcTemplate;
34+
35+
@Mock
36+
CustomerRowMapper customerRowMapper;
37+
38+
@InjectMocks
39+
CustomerDao customerDao;
40+
41+
@Before
42+
public void setup() {
43+
MockitoAnnotations.initMocks(this);
44+
}
45+
46+
@Test
47+
public void getAllTest() throws Exception {
48+
List<Customer> customers = new ArrayList<Customer>();
49+
customers.add(new Customer());
50+
Mockito.when(jdbcTemplate.query(any(String.class), any(CustomerRowMapper.class))).thenReturn(customers);
51+
List<Customer> customersReturned = customerDao.getAll();
52+
assertEquals(customers, customersReturned);
53+
}
54+
55+
@Test
56+
public void getByIdTest() throws Exception {
57+
Long customerId = new Long(1);
58+
Customer customer = new Customer();
59+
customer.setId(customerId);
60+
customer.setName("Customer Name");
61+
Mockito.when(namedParameterJdbcTemplate.queryForObject(any(String.class), Matchers.<Map<String, Object>>any(), any(CustomerRowMapper.class))).thenReturn(customer);
62+
Customer customerReturned = customerDao.getById(customerId);
63+
assertEquals(customer, customerReturned);
64+
}
65+
66+
@Test
67+
public void insertTest() throws Exception {
68+
GeneratedKeyHolder keyHolder = Mockito.mock(GeneratedKeyHolder.class);
69+
Customer customer = new Customer();
70+
Mockito.when(namedParameterJdbcTemplate.update(any(String.class), any(MapSqlParameterSource.class), any(KeyHolder.class))).thenReturn(99);
71+
Mockito.when(keyHolder.getKey()).thenReturn(99);
72+
Number insertedId = customerDao.insert(customer, keyHolder);
73+
assertEquals(insertedId, 99);
74+
}
75+
76+
}

src/test/java/org/cameronchapman/github/webservice/data/CustomerRowMapperTest.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,17 @@
1414
public class CustomerRowMapperTest {
1515

1616
@Test
17-
public void mapRowTest() throws Exception {
17+
public void customerRowMapperTest() throws Exception {
1818
CustomerRowMapper customerRowMapper = new CustomerRowMapper();
19-
ResultSet rs = Mockito.mock(ResultSet.class);
2019
Long id = new Long(1);
20+
ResultSet rs = Mockito.mock(ResultSet.class);
2121
Mockito.when(rs.getLong("id")).thenReturn(id);
2222
Mockito.when(rs.getString("name")).thenReturn("Customer Name");
2323
Mockito.when(rs.getString("address1")).thenReturn("Address 1");
2424
Mockito.when(rs.getString("address2")).thenReturn("Address 2");
2525
Mockito.when(rs.getString("city")).thenReturn("City");
2626
Mockito.when(rs.getString("state")).thenReturn("State");
27-
Mockito.when(rs.getString("zip")).thenReturn("Zip");
27+
Mockito.when(rs.getString("zip")).thenReturn("Zip");
2828
Customer customer = customerRowMapper.mapRow(rs, 1);
2929
assertEquals(customer.getId(), id);
3030
assertEquals(customer.getName(), "Customer Name");
@@ -34,4 +34,5 @@ public void mapRowTest() throws Exception {
3434
assertEquals(customer.getState(), "State");
3535
assertEquals(customer.getZip(), "Zip");
3636
}
37-
}
37+
38+
}

src/test/java/org/cameronchapman/github/webservice/manager/CustomerManagerTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import org.mockito.Mockito;
2020
import org.mockito.MockitoAnnotations;
2121
import org.mockito.runners.MockitoJUnitRunner;
22+
import org.springframework.jdbc.support.GeneratedKeyHolder;
2223

2324
@RunWith(MockitoJUnitRunner.class)
2425
public class CustomerManagerTest {
@@ -66,14 +67,14 @@ public void getCustomerByIdNullResultIsValidTest() throws Exception {
6667

6768
@Test
6869
public void insertCustomerTest() throws Exception {
69-
Mockito.when(mockCustomerDao.insert(any(Customer.class))).thenReturn(99);
70+
Mockito.when(mockCustomerDao.insert(any(Customer.class), any(GeneratedKeyHolder.class))).thenReturn(99);
7071
Number newId = customerManger.insertCustomer(new Customer());
7172
assertEquals(newId, 99);
7273
}
7374

7475
@Test(expected = NoNewCustomerIdReturnedException.class)
7576
public void insertCustomerNullCustomerThrowsCorrectExceptionTest() throws Exception {
76-
Mockito.when(mockCustomerDao.insert(any(Customer.class))).thenReturn(null);
77+
Mockito.when(mockCustomerDao.insert(any(Customer.class), any(GeneratedKeyHolder.class))).thenReturn(null);
7778
customerManger.insertCustomer(new Customer());
7879
}
7980

0 commit comments

Comments
 (0)