Skip to content

Commit 0d5514e

Browse files
BENCH-269 refactors to CategoryService unit tests
1 parent 687a4ae commit 0d5514e

File tree

4 files changed

+27
-70
lines changed

4 files changed

+27
-70
lines changed

src/test/java/com/answerdigital/answerking/builder/AddCategoryRequestTestBuilder.java renamed to src/test/java/com/answerdigital/answerking/builder/CategoryRequestTestBuilder.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,30 @@
22

33
import com.answerdigital.answerking.request.CategoryRequest;
44

5-
public class AddCategoryRequestTestBuilder {
5+
public class CategoryRequestTestBuilder {
66

77
private String name;
88

99
private String description;
1010

11-
public AddCategoryRequestTestBuilder withDefaultValues() {
11+
public CategoryRequestTestBuilder withDefaultAddRequestValues() {
1212
this.name = "Burgers";
1313
this.description = "A selection of delicious burgers.";
1414
return this;
1515
}
1616

17-
public AddCategoryRequestTestBuilder withName(final String name) {
17+
public CategoryRequestTestBuilder withDefaultUpdateRequestValues() {
18+
this.name = "Pizzas";
19+
this.description = "Italian style stone baked pizzas.";
20+
return this;
21+
}
22+
23+
public CategoryRequestTestBuilder withName(final String name) {
1824
this.name = name;
1925
return this;
2026
}
2127

22-
public AddCategoryRequestTestBuilder withDescription(final String description) {
28+
public CategoryRequestTestBuilder withDescription(final String description) {
2329
this.description = description;
2430
return this;
2531
}

src/test/java/com/answerdigital/answerking/builder/CategoryTestBuilder.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
public class CategoryTestBuilder {
1111

12-
private Long id = 1L;
12+
private Long id;
1313

1414
private String name;
1515

@@ -27,8 +27,8 @@ public CategoryTestBuilder withDefaultValues() {
2727
this.id = 1L;
2828
this.name = "Burgers";
2929
this.description = "A selection of delicious burgers.";
30-
this.createdOn = LocalDateTime.now();
31-
this.lastUpdated = LocalDateTime.now();
30+
this.createdOn = LocalDateTime.of(2022, 1, 1, 0, 0);
31+
this.lastUpdated = LocalDateTime.of(2022, 1, 1, 0, 0);
3232
this.retired = false;
3333
this.products = new HashSet<>();
3434
return this;

src/test/java/com/answerdigital/answerking/builder/UpdateCategoryRequestTestBuilder.java

Lines changed: 0 additions & 30 deletions
This file was deleted.

src/test/java/com/answerdigital/answerking/service/CategoryServiceTest.java

Lines changed: 14 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
package com.answerdigital.answerking.service;
22

3-
import com.answerdigital.answerking.builder.AddCategoryRequestTestBuilder;
3+
import com.answerdigital.answerking.builder.CategoryRequestTestBuilder;
44
import com.answerdigital.answerking.builder.CategoryTestBuilder;
55
import com.answerdigital.answerking.builder.ProductTestBuilder;
6-
import com.answerdigital.answerking.builder.UpdateCategoryRequestTestBuilder;
76
import com.answerdigital.answerking.exception.custom.NameUnavailableException;
87
import com.answerdigital.answerking.exception.custom.ProductAlreadyPresentException;
98
import com.answerdigital.answerking.exception.custom.RetirementException;
@@ -45,18 +44,15 @@ final class CategoryServiceTest {
4544

4645
private final CategoryTestBuilder categoryTestBuilder;
4746

48-
private final AddCategoryRequestTestBuilder addCategoryRequestTestBuilder;
49-
50-
private final UpdateCategoryRequestTestBuilder updateCategoryRequestTestBuilder;
47+
private final CategoryRequestTestBuilder categoryRequestTestBuilder;
5148

5249
private final ProductTestBuilder productTestBuilder;
5350

5451
private static final Long NONEXISTENT_CATEGORY_ID = 2L;
5552

5653
private CategoryServiceTest() {
5754
categoryTestBuilder = new CategoryTestBuilder();
58-
addCategoryRequestTestBuilder = new AddCategoryRequestTestBuilder();
59-
updateCategoryRequestTestBuilder = new UpdateCategoryRequestTestBuilder();
55+
categoryRequestTestBuilder = new CategoryRequestTestBuilder();
6056
productTestBuilder = new ProductTestBuilder();
6157
}
6258

@@ -73,7 +69,7 @@ void tearDown() {
7369
@Test
7470
void testAddCategory() {
7571
// given
76-
final CategoryRequest addCategoryRequest = addCategoryRequestTestBuilder.withDefaultValues().build();
72+
final CategoryRequest addCategoryRequest = categoryRequestTestBuilder.withDefaultAddRequestValues().build();
7773
final Category expectedResponse = categoryTestBuilder.withDefaultValues().build();
7874

7975
// when
@@ -94,7 +90,7 @@ void testAddCategory() {
9490
@Test
9591
void testAddCategoryThatAlreadyExists() {
9692
// given
97-
final CategoryRequest addCategoryRequest = addCategoryRequestTestBuilder.withDefaultValues().build();
93+
final CategoryRequest addCategoryRequest = categoryRequestTestBuilder.withDefaultAddRequestValues().build();
9894

9995
// when
10096
doReturn(true).when(categoryRepository).existsByName(anyString());
@@ -110,17 +106,11 @@ void testAddCategoryThatAlreadyExists() {
110106
void testUpdateCategory() {
111107
// given
112108
final Category existingCategory = categoryTestBuilder.withDefaultValues().build();
113-
final CategoryRequest updateCategoryRequest = updateCategoryRequestTestBuilder.withDefaultValues().build();
114-
final Category expectedResponse = categoryTestBuilder
115-
.withDefaultValues()
109+
final CategoryRequest updateCategoryRequest = categoryRequestTestBuilder.withDefaultUpdateRequestValues().build();
110+
final Category expectedResponse = categoryTestBuilder.withDefaultValues()
116111
.withName(updateCategoryRequest.name())
117112
.withDescription(updateCategoryRequest.description())
118113
.build();
119-
final var categoryResponse = CategoryResponse.builder()
120-
.id(1L)
121-
.name("Pizzas")
122-
.description("Italian style stone baked pizzas.")
123-
.build();
124114

125115
// when
126116
doReturn(false).when(categoryRepository).existsByNameAndIdIsNot(anyString(), anyLong());
@@ -130,7 +120,7 @@ void testUpdateCategory() {
130120
final CategoryResponse response = categoryService.updateCategory(updateCategoryRequest, existingCategory.getId());
131121

132122
// then
133-
assertEquals(categoryResponse.getName(), response.getName());
123+
assertEquals(expectedResponse.getName(), response.getName());
134124
verify(categoryRepository).existsByNameAndIdIsNot(anyString(), anyLong());
135125
verify(categoryRepository).findById(anyLong());
136126
verify(categoryRepository).save(any(Category.class));
@@ -139,7 +129,7 @@ void testUpdateCategory() {
139129
@Test
140130
void testUpdateCategoryThatDoesNotExist() {
141131
// given
142-
final CategoryRequest updateCategoryRequest = updateCategoryRequestTestBuilder.withDefaultValues().build();
132+
final CategoryRequest updateCategoryRequest = categoryRequestTestBuilder.withDefaultUpdateRequestValues().build();
143133

144134
// when
145135
doReturn(false).when(categoryRepository).existsByNameAndIdIsNot(anyString(), anyLong());
@@ -157,7 +147,7 @@ void testUpdateCategoryThatDoesNotExist() {
157147
void testUpdateCategoryNameToCategoryThatAlreadyExists() {
158148
// given
159149
final Category existingCategory = categoryTestBuilder.withDefaultValues().build();
160-
final CategoryRequest updateCategoryRequest = updateCategoryRequestTestBuilder.withDefaultValues().build();
150+
final CategoryRequest updateCategoryRequest = categoryRequestTestBuilder.withDefaultUpdateRequestValues().build();
161151

162152
// when
163153
doReturn(true).when(categoryRepository).existsByNameAndIdIsNot(anyString(), anyLong());
@@ -173,8 +163,7 @@ void testUpdateCategoryNameToCategoryThatAlreadyExists() {
173163
void testAddProductToCategoryThatIsAlreadyInCategory() {
174164
// given
175165
final Product product = productTestBuilder.withDefaultValues().build();
176-
final Category category = categoryTestBuilder
177-
.withDefaultValues()
166+
final Category category = categoryTestBuilder.withDefaultValues()
178167
.withProduct(product)
179168
.build();
180169

@@ -209,8 +198,7 @@ void testAddProductToCategoryThatDoesNotExist() {
209198
void testRemoveProductFromCategory() {
210199
// given
211200
final Product product = productTestBuilder.withDefaultValues().build();
212-
final Category category = categoryTestBuilder
213-
.withDefaultValues()
201+
final Category category = categoryTestBuilder.withDefaultValues()
214202
.withProduct(product)
215203
.build();
216204
final Category expectedResponse = categoryTestBuilder.withDefaultValues().build();
@@ -266,15 +254,9 @@ void testRemoveProductFromCategoryThatDoesNotExist() {
266254
void testRetireCategory() {
267255
// given
268256
final Category category = categoryTestBuilder.withDefaultValues().build();
269-
final Category expectedCategory = categoryTestBuilder
270-
.withDefaultValues()
257+
final Category expectedCategory = categoryTestBuilder.withDefaultValues()
271258
.withRetired(true)
272259
.build();
273-
final var categoryResponse = CategoryResponse.builder()
274-
.id(1L)
275-
.name("Pizzas")
276-
.description("Italian style stone baked pizzas.")
277-
.build();
278260

279261
// when
280262
doReturn(Optional.of(category)).when(categoryRepository).findById(anyLong());
@@ -290,8 +272,7 @@ void testRetireCategory() {
290272
@Test
291273
void testRetireCategoryAlreadyRetiredThrowsRetirementException() {
292274
// given
293-
final Category retiredCategory = categoryTestBuilder
294-
.withDefaultValues()
275+
final Category retiredCategory = categoryTestBuilder.withDefaultValues()
295276
.withRetired(true)
296277
.build();
297278

0 commit comments

Comments
 (0)