Skip to content

Commit 021d2f8

Browse files
committed
Additional Refactoring
1 parent e232b5c commit 021d2f8

File tree

8 files changed

+75
-39
lines changed

8 files changed

+75
-39
lines changed

java/src/main/java/com/amido/stacks/workloads/menu/domain/Category.java

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import java.util.ArrayList;
44
import java.util.List;
5-
import java.util.stream.Collectors;
65
import lombok.AllArgsConstructor;
76
import lombok.Builder;
87
import lombok.Data;
@@ -18,16 +17,4 @@ public class Category {
1817
private String description;
1918

2019
@Builder.Default private List<Item> items = new ArrayList<>();
21-
22-
public Category addOrUpdateItem(Item item) {
23-
if (this.items == null) {
24-
this.items = new ArrayList<>();
25-
}
26-
this.items =
27-
this.items.stream()
28-
.filter(c -> !c.getId().equals(item.getId()))
29-
.collect(Collectors.toList());
30-
this.items.add(item);
31-
return this;
32-
}
3320
}

java/src/main/java/com/amido/stacks/workloads/menu/domain/Menu.java

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import java.util.ArrayList;
44
import java.util.List;
5-
import java.util.stream.Collectors;
65
import lombok.AllArgsConstructor;
76
import lombok.Builder;
87
import lombok.Data;
@@ -24,16 +23,4 @@ public class Menu {
2423
@Builder.Default private List<Category> categories = new ArrayList<>();
2524

2625
private Boolean enabled;
27-
28-
public Menu addOrUpdateCategory(Category category) {
29-
if (this.categories == null) {
30-
this.categories = new ArrayList<>();
31-
}
32-
this.categories =
33-
this.categories.stream()
34-
.filter(c -> !c.getId().equals(category.getId()))
35-
.collect(Collectors.toList());
36-
this.categories.add(category);
37-
return this;
38-
}
3926
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package com.amido.stacks.workloads.menu.service.utility;
2+
3+
import com.amido.stacks.workloads.menu.domain.Category;
4+
import com.amido.stacks.workloads.menu.domain.Item;
5+
import com.amido.stacks.workloads.menu.domain.Menu;
6+
import java.util.ArrayList;
7+
import java.util.List;
8+
import java.util.stream.Collectors;
9+
import org.springframework.stereotype.Component;
10+
11+
@Component
12+
public class MenuHelperService {
13+
14+
public void addOrUpdateCategory(Menu menu, Category category) {
15+
16+
if (menu.getCategories() == null) {
17+
menu.setCategories(new ArrayList<>());
18+
}
19+
20+
List<Category> newCategories =
21+
menu.getCategories().stream()
22+
.filter(c -> !c.getId().equals(category.getId()))
23+
.collect(Collectors.toList());
24+
25+
newCategories.add(category);
26+
27+
menu.setCategories(newCategories);
28+
}
29+
30+
public void addOrUpdateItem(Category category, Item item) {
31+
32+
if (category.getItems() == null) {
33+
category.setItems(new ArrayList<>());
34+
}
35+
36+
List<Item> newItems =
37+
category.getItems().stream()
38+
.filter(c -> !c.getId().equals(item.getId()))
39+
.collect(Collectors.toList());
40+
41+
newItems.add(item);
42+
43+
category.setItems(newItems);
44+
}
45+
}

java/src/main/java/com/amido/stacks/workloads/menu/service/v1/MenuService.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import com.amido.stacks.workloads.menu.domain.Menu;
1212
import com.amido.stacks.workloads.menu.mappers.MenuMapper;
1313
import com.amido.stacks.workloads.menu.mappers.SearchMenuResultItemMapper;
14+
import com.amido.stacks.workloads.menu.service.utility.MenuHelperService;
1415
import java.util.ArrayList;
1516
import java.util.List;
1617
import java.util.UUID;
@@ -28,6 +29,8 @@ public class MenuService {
2829

2930
private final SearchMenuResultItemMapper searchMenuResultItemMapper;
3031

32+
private final MenuHelperService menuHelperService;
33+
3134
public ResourceCreatedResponse create(@Valid CreateMenuRequest body, String correlationId) {
3235

3336
return new ResourceCreatedResponse(UUID.randomUUID());
@@ -73,7 +76,8 @@ public MenuDTO get(UUID id, String correlationId) {
7376
new Menu(id.toString(), restaurantId, "name", "description", new ArrayList<>(), true);
7477
Item item = new Item(itemId, "item name", "item description", 5.99d, true);
7578
Category category = new Category(categoryId, "cat name", "cat description", List.of(item));
76-
menu.addOrUpdateCategory(category);
79+
80+
menuHelperService.addOrUpdateCategory(menu, category);
7781

7882
return menuMapper.toDto(menu);
7983
}

java/src/main/java/com/amido/stacks/workloads/menu/service/v2/MenuServiceV2.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.amido.stacks.workloads.menu.domain.Menu;
55
import com.amido.stacks.workloads.menu.mappers.MenuMapper;
66
import com.amido.stacks.workloads.menu.mappers.SearchMenuResultItemMapper;
7+
import com.amido.stacks.workloads.menu.service.utility.MenuHelperService;
78
import com.amido.stacks.workloads.menu.service.v1.MenuService;
89
import java.util.ArrayList;
910
import java.util.UUID;
@@ -13,8 +14,10 @@
1314
public class MenuServiceV2 extends MenuService {
1415

1516
public MenuServiceV2(
16-
MenuMapper menuMapper, SearchMenuResultItemMapper searchMenuResultItemMapper) {
17-
super(menuMapper, searchMenuResultItemMapper);
17+
MenuMapper menuMapper,
18+
SearchMenuResultItemMapper searchMenuResultItemMapper,
19+
MenuHelperService menuHelperService) {
20+
super(menuMapper, searchMenuResultItemMapper, menuHelperService);
1821
}
1922

2023
@Override

java/src/test/java/com/amido/stacks/workloads/menu/api/v1/CategoryControllerTest.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import com.amido.stacks.workloads.menu.api.v1.dto.request.UpdateCategoryRequest;
1919
import com.amido.stacks.workloads.menu.domain.Category;
2020
import com.amido.stacks.workloads.menu.domain.Menu;
21+
import com.amido.stacks.workloads.menu.service.utility.MenuHelperService;
2122
import java.util.List;
2223
import org.junit.jupiter.api.Tag;
2324
import org.junit.jupiter.api.Test;
@@ -47,6 +48,8 @@ public class CategoryControllerTest {
4748

4849
@Autowired private TestRestTemplate testRestTemplate;
4950

51+
@Autowired private MenuHelperService menuHelperService;
52+
5053
@Test
5154
void testInvalidMenuIdWilThrowBadRequest() {
5255
// Given
@@ -90,7 +93,8 @@ void testUpdateCategorySuccess() {
9093
// Given
9194
Menu menu = createMenu(0);
9295
Category category = createCategory(0);
93-
menu.addOrUpdateCategory(category);
96+
97+
menuHelperService.addOrUpdateCategory(menu, category);
9498

9599
UpdateCategoryRequest request = new UpdateCategoryRequest("new Category", "new Description");
96100

@@ -194,8 +198,8 @@ void testDeleteCategoryWithAnItem() {
194198
// Given
195199
Menu menu = createMenu(1);
196200
Category category = createCategory(0);
197-
category.addOrUpdateItem(createItem(0));
198-
menu.addOrUpdateCategory(category);
201+
menuHelperService.addOrUpdateItem(category, createItem(0));
202+
menuHelperService.addOrUpdateCategory(menu, category);
199203

200204
// When
201205
String requestUrl =

java/src/test/java/com/amido/stacks/workloads/menu/api/v1/ItemControllerTest.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.amido.stacks.workloads.menu.domain.Category;
2020
import com.amido.stacks.workloads.menu.domain.Item;
2121
import com.amido.stacks.workloads.menu.domain.Menu;
22+
import com.amido.stacks.workloads.menu.service.utility.MenuHelperService;
2223
import java.util.ArrayList;
2324
import java.util.List;
2425
import java.util.UUID;
@@ -51,13 +52,15 @@ public class ItemControllerTest {
5152

5253
@Autowired private TestRestTemplate testRestTemplate;
5354

55+
@Autowired private MenuHelperService menuHelperService;
56+
5457
@Test
5558
void testAddItem() {
5659
// Given
5760
Menu menu = createMenu(1);
5861
Category category =
5962
new Category(randomUUID().toString(), "cat name", "cat description", new ArrayList<>());
60-
menu.addOrUpdateCategory(category);
63+
menuHelperService.addOrUpdateCategory(menu, category);
6164

6265
CreateItemRequest request =
6366
new CreateItemRequest("Some Name", "Some Description", 13.56d, true);
@@ -101,8 +104,8 @@ void testUpdateItemSuccess() {
101104
Menu menu = createMenu(0);
102105
Category category = createCategory(0);
103106
Item item = createItem(0);
104-
category.addOrUpdateItem(item);
105-
menu.addOrUpdateCategory(category);
107+
menuHelperService.addOrUpdateItem(category, item);
108+
menuHelperService.addOrUpdateCategory(menu, category);
106109

107110
UpdateItemRequest request =
108111
new UpdateItemRequest("Some Name", "Some Description", 13.56d, true);
@@ -130,7 +133,7 @@ void testUpdateItemDescription() {
130133
Category category = createCategory(0);
131134
List<Item> items = createItems(2);
132135
category.setItems(items);
133-
menu.addOrUpdateCategory(category);
136+
menuHelperService.addOrUpdateCategory(menu, category);
134137

135138
UpdateItemRequest request =
136139
new UpdateItemRequest(items.get(0).getName(), "Some Description2", 13.56d, true);
@@ -158,8 +161,8 @@ void testDeleteItemSuccess() {
158161
Menu menu = createMenu(1);
159162
Category category = createCategory(0);
160163
Item item = new Item(UUID.randomUUID().toString(), "New Item", "Item description", 12.2d, true);
161-
category.addOrUpdateItem(item);
162-
menu.addOrUpdateCategory(category);
164+
menuHelperService.addOrUpdateItem(category, item);
165+
menuHelperService.addOrUpdateCategory(menu, category);
163166

164167
// When
165168
String requestUrl =

java/src/test/java/com/amido/stacks/workloads/menu/api/v1/MenuControllerTest.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.amido.stacks.workloads.menu.mappers.ItemMapper;
2525
import com.amido.stacks.workloads.menu.mappers.MenuMapper;
2626
import com.amido.stacks.workloads.menu.mappers.SearchMenuResultItemMapper;
27+
import com.amido.stacks.workloads.menu.service.utility.MenuHelperService;
2728
import java.util.ArrayList;
2829
import java.util.Arrays;
2930
import java.util.Collections;
@@ -70,6 +71,8 @@ public class MenuControllerTest {
7071

7172
@Autowired private SearchMenuResultItemMapper searchMenuResultItemMapper;
7273

74+
@Autowired private MenuHelperService menuHelperService;
75+
7376
@Test
7477
void testCreateNewMenu() {
7578
// Given
@@ -154,7 +157,7 @@ public void getMenuById() {
154157
Item item = new Item(itemId, "item name", "item description", 5.99d, true);
155158
Category category =
156159
new Category(categoryId, "cat name", "cat description", Arrays.asList(item));
157-
menu.addOrUpdateCategory(category);
160+
menuHelperService.addOrUpdateCategory(menu, category);
158161

159162
MenuDTO expectedResponse = menuMapper.toDto(menu);
160163

0 commit comments

Comments
 (0)