Skip to content

Commit 1acf8e6

Browse files
committed
add tests for services
1 parent fb1829d commit 1acf8e6

6 files changed

Lines changed: 116 additions & 14 deletions

File tree

src/main/java/com/mastercard/app/petstore/utils/MockDataBuilders.java

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ public static NewEmployee buildNewEmployee(){
124124

125125
public static Employee buildEmployee(){
126126
String firstName = generateRandomName();
127-
Employee employee = new Employee();
127+
Employee employee = new Employee(UUID.randomUUID(), new Date(), new Date());
128128
employee.setFirstName(firstName);
129129
employee.setLastName(generateRandomName());
130130
employee.setPhoneNumber("+6573437115596");
@@ -133,6 +133,22 @@ public static Employee buildEmployee(){
133133
return employee;
134134
}
135135

136+
public static EmployeeWrapper buildEmployeeWrapper(){
137+
String firstName = generateRandomName();
138+
return new EmployeeWrapper()
139+
.firstName(generateRandomName())
140+
.lastName(generateRandomName())
141+
.phoneNumber("+6573437115596")
142+
.ssn(generateRandomSsn())
143+
.username(firstName + "123");
144+
}
145+
146+
public static EmployeeSearch buildEmployeeSearch(){
147+
EmployeeSearch employeeSearch = new EmployeeSearch();
148+
employeeSearch.setSsn(generateRandomSsn());
149+
return employeeSearch;
150+
}
151+
136152
public static Payment buildPayment(){
137153
Payment payment = new Payment();
138154
payment.setAmount(new BigDecimal(50));

src/test/java/com/mastercard/app/petstore/AdoptionsServiceTest.java renamed to src/test/java/com/mastercard/app/petstore/services/AdoptionsServiceTest.java

Lines changed: 55 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,32 @@
1-
package com.mastercard.app.petstore;
1+
package com.mastercard.app.petstore.services;
22

3-
import com.mastercard.app.petstore.services.AdoptionsService;
43
import com.mastercard.app.petstore.utils.MockDataBuilders;
54
import org.junit.jupiter.api.BeforeEach;
65
import org.junit.jupiter.api.Test;
76
import org.mockito.InjectMocks;
87
import org.openapitools.client.ApiException;
8+
import org.openapitools.client.ApiResponse;
99
import org.openapitools.client.api.AdoptionsApi;
1010
import org.openapitools.client.model.Adoption;
1111
import org.openapitools.client.model.AdoptionSearch;
12+
import org.openapitools.client.model.AdoptionWrapper;
1213
import org.openapitools.client.model.Payment;
1314
import org.openapitools.client.model.PaymentDetails;
1415

16+
import java.util.Collections;
17+
import java.util.List;
18+
import java.util.Map;
1519
import java.util.UUID;
1620

1721
import static org.junit.jupiter.api.Assertions.assertEquals;
18-
import static org.mockito.Mockito.*;
22+
import static org.mockito.Mockito.any;
23+
import static org.mockito.Mockito.argThat;
24+
import static org.mockito.Mockito.doNothing;
25+
import static org.mockito.Mockito.eq;
26+
import static org.mockito.Mockito.mock;
27+
import static org.mockito.Mockito.times;
28+
import static org.mockito.Mockito.verify;
29+
import static org.mockito.Mockito.when;
1930

2031
public class AdoptionsServiceTest {
2132

@@ -33,6 +44,17 @@ public void setUp() {
3344
adoptionsService = new AdoptionsService(adoptionsApiFle, adoptionsApiFullBody);
3445
}
3546

47+
@Test
48+
public void adoptPet_shouldReturnALocation() throws ApiException {
49+
Map<String, List<String>> headers = Collections.singletonMap("location", Collections.singletonList("/adoptions/b1546cc7-a979-4c13-8817-40a8a0770868"));
50+
ApiResponse<Void> responseWithHeader = new ApiResponse<>(200, headers);
51+
when(adoptionsApiFle.adoptPetWithHttpInfo(any())).thenReturn(responseWithHeader);
52+
53+
String location = adoptionsService.adoptPet(MockDataBuilders.buildNewAdoptionObject());
54+
55+
assertEquals("/adoptions/b1546cc7-a979-4c13-8817-40a8a0770868", location);
56+
}
57+
3658
@Test
3759
public void getAdoption_shouldReturnAnAdoption() throws ApiException {
3860
Adoption adoption = MockDataBuilders.buildAdoptionObject();
@@ -54,6 +76,36 @@ public void searchAdoption_shouldReturnAnAdoptionSearch() throws ApiException {
5476
assertEquals(adoptionSearch.getSearchResults().size(), returnedAdoptionSearch.getSearchResults().size());
5577
}
5678

79+
@Test
80+
public void updateAdoption_shouldUpdateAnAdoption() throws ApiException {
81+
Adoption adoption = MockDataBuilders.buildAdoptionObject();
82+
String etag = "33a64df551425f";
83+
84+
when(adoptionsApiFle.updateAdoption(
85+
eq(adoption.getId()),
86+
eq(etag),
87+
argThat(wrapper -> adoption.equals(wrapper.getAdoption())))
88+
).thenReturn(new AdoptionWrapper());
89+
90+
adoptionsService.updateAdoption(etag, adoption);
91+
92+
verify(adoptionsApiFle, times(1)).updateAdoption(
93+
eq(adoption.getId()),
94+
eq(etag),
95+
argThat(wrapper -> adoption.equals(wrapper.getAdoption()))
96+
);
97+
}
98+
99+
@Test
100+
public void deleteAdoption_shouldDeleteAnAdoption() throws ApiException {
101+
UUID id = UUID.randomUUID();
102+
doNothing().when(adoptionsApiFle).deleteAdoption(id);
103+
104+
adoptionsService.deleteAdoption(id.toString());
105+
106+
verify(adoptionsApiFle, times(1)).deleteAdoption(id);
107+
}
108+
57109
@Test
58110
public void adoptionPayment_shouldReturnAnAdoptionPayment() throws ApiException {
59111
Payment payment = MockDataBuilders.buildPayment();

src/test/java/com/mastercard/app/petstore/CatServiceTest.java renamed to src/test/java/com/mastercard/app/petstore/services/CatServiceTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
package com.mastercard.app.petstore;
1+
package com.mastercard.app.petstore.services;
22

3-
import com.mastercard.app.petstore.services.CatService;
43
import com.mastercard.app.petstore.utils.MockDataBuilders;
54
import org.junit.jupiter.api.BeforeEach;
65
import org.junit.jupiter.api.Test;

src/test/java/com/mastercard/app/petstore/DogServiceTest.java renamed to src/test/java/com/mastercard/app/petstore/services/DogServiceTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
package com.mastercard.app.petstore;
1+
package com.mastercard.app.petstore.services;
22

3-
import com.mastercard.app.petstore.services.DogService;
43
import com.mastercard.app.petstore.utils.MockDataBuilders;
54
import org.junit.jupiter.api.BeforeEach;
65
import org.junit.jupiter.api.Test;

src/test/java/com/mastercard/app/petstore/EmployeeServiceTest.java renamed to src/test/java/com/mastercard/app/petstore/services/EmployeeServiceTest.java

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
package com.mastercard.app.petstore;
1+
package com.mastercard.app.petstore.services;
22

3-
import com.mastercard.app.petstore.services.EmployeeService;
43
import com.mastercard.app.petstore.utils.MockDataBuilders;
54
import org.junit.jupiter.api.BeforeEach;
65
import org.junit.jupiter.api.Test;
@@ -10,11 +9,19 @@
109
import org.openapitools.client.model.Employee;
1110
import org.openapitools.client.model.EmployeeData;
1211
import org.openapitools.client.model.EmployeeListData;
12+
import org.openapitools.client.model.EmployeeSearch;
13+
import org.openapitools.client.model.EmployeeWrapper;
1314
import org.openapitools.client.model.NewEmployee;
1415
import org.openapitools.client.model.NewEmployeeData;
1516

1617
import static org.junit.jupiter.api.Assertions.assertEquals;
17-
import static org.mockito.Mockito.*;
18+
import static org.mockito.ArgumentMatchers.argThat;
19+
import static org.mockito.ArgumentMatchers.eq;
20+
import static org.mockito.Mockito.doNothing;
21+
import static org.mockito.Mockito.mock;
22+
import static org.mockito.Mockito.times;
23+
import static org.mockito.Mockito.verify;
24+
import static org.mockito.Mockito.when;
1825

1926
public class EmployeeServiceTest {
2027

@@ -46,7 +53,19 @@ public void createEmployee_shouldCreateAnEmployee() throws ApiException {
4653
}
4754

4855
@Test
49-
public void returnEmployee_shouldReturnAnEmployee() throws ApiException {
56+
public void searchEmployee_shouldReturnAnEmployee() throws ApiException {
57+
EmployeeSearch employeeSearch = MockDataBuilders.buildEmployeeSearch();
58+
EmployeeWrapper employee = MockDataBuilders.buildEmployeeWrapper();
59+
60+
when(employeesApiEncryptedForBody.searchEmployee(employeeSearch)).thenReturn(employee);
61+
62+
EmployeeWrapper response = employeeService.searchEmployee(employeeSearch);
63+
64+
assertEquals(employee, response);
65+
}
66+
67+
@Test
68+
public void getEmployee_shouldReturnAnEmployee() throws ApiException {
5069
Employee employee = MockDataBuilders.buildEmployee();
5170
EmployeeData employeeData = new EmployeeData();
5271
employeeData.setEmployee(employee);
@@ -57,6 +76,24 @@ public void returnEmployee_shouldReturnAnEmployee() throws ApiException {
5776
assertEquals(returntedEmployeeData.getEmployee().getUsername(), employee.getUsername());
5877
}
5978

79+
@Test
80+
public void updateEmployee_shouldUpdateAnEmployee() throws ApiException {
81+
String etag = "33a64df551425f";
82+
Employee employee = MockDataBuilders.buildEmployee();
83+
84+
doNothing().when(employeesApiEncryptedForBody).updateEmployee(
85+
eq(employee.getId().toString()),
86+
eq(etag),
87+
argThat(data -> employee.equals(data.getEmployee())));
88+
89+
employeeService.updateEmployee(etag, employee);
90+
91+
verify(employeesApiEncryptedForBody, times(1)).updateEmployee(
92+
eq(employee.getId().toString()),
93+
eq(etag),
94+
argThat(data -> employee.equals(data.getEmployee())));
95+
}
96+
6097
@Test
6198
public void deleteEmployee_shouldJustRun() throws ApiException {
6299
String id = "Bob123";

src/test/java/com/mastercard/app/petstore/PetServiceTest.java renamed to src/test/java/com/mastercard/app/petstore/services/PetServiceTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
package com.mastercard.app.petstore;
1+
package com.mastercard.app.petstore.services;
22

3-
import com.mastercard.app.petstore.services.PetService;
43
import com.mastercard.app.petstore.utils.MockDataBuilders;
54

65
import org.junit.jupiter.api.Test;

0 commit comments

Comments
 (0)