Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,202 changes: 612 additions & 590 deletions java/pom.xml

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,16 @@
import com.amido.stacks.workloads.menu.domain.Category;
import com.amido.stacks.workloads.menu.domain.Item;
import com.amido.stacks.workloads.menu.domain.Menu;
import com.amido.stacks.workloads.menu.mappers.DomainToDtoMapper;
import com.amido.stacks.workloads.menu.mappers.MenuMapper;
import com.amido.stacks.workloads.menu.mappers.SearchMenuResultItemMapper;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RestController;

Expand All @@ -23,18 +25,13 @@ public class QueryMenuControllerImpl implements QueryMenuController {

Logger logger = LoggerFactory.getLogger(QueryMenuControllerImpl.class);

private DomainToDtoMapper mapper;
@Autowired private MenuMapper menuMapper;

public QueryMenuControllerImpl(DomainToDtoMapper mapper) {
this.mapper = mapper;
}
@Autowired private SearchMenuResultItemMapper searchMenuResultItemMapper;

@Override
public ResponseEntity<SearchMenuResult> searchMenu(
final String searchTerm,
final UUID restaurantId,
final Integer pageSize,
final Integer pageNumber) {
String searchTerm, UUID restaurantId, Integer pageSize, Integer pageNumber) {

List<Menu> menuList = new ArrayList<>();

Expand Down Expand Up @@ -62,12 +59,12 @@ public ResponseEntity<SearchMenuResult> searchMenu(
pageSize,
pageNumber,
menuList.stream()
.map(m -> mapper.toSearchMenuResultItem(m))
.map(m -> searchMenuResultItemMapper.toDto(m))
.collect(Collectors.toList())));
}

@Override
public ResponseEntity<MenuDTO> getMenu(final UUID id, final String correlationId) {
public ResponseEntity<MenuDTO> getMenu(UUID id, String correlationId) {
final String restaurantId = "58a1df85-6bdc-412a-a118-0f0e394c1342";
final String categoryId = "2c43dbda-7d4d-46fb-b246-bec2bd348ca1";
final String itemId = "7e46a698-080b-45e6-a529-2c196d00791c";
Expand All @@ -79,6 +76,6 @@ public ResponseEntity<MenuDTO> getMenu(final UUID id, final String correlationId
new Category(categoryId, "cat name", "cat description", Arrays.asList(item));
menu.addOrUpdateCategory(category);

return ResponseEntity.ok(mapper.toMenuDto(menu));
return ResponseEntity.ok(menuMapper.toDto(menu));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,17 @@
import com.amido.stacks.workloads.menu.api.v1.dto.response.MenuDTO;
import com.amido.stacks.workloads.menu.api.v2.QueryMenuControllerV2;
import com.amido.stacks.workloads.menu.domain.Menu;
import com.amido.stacks.workloads.menu.mappers.DomainToDtoMapper;
import com.amido.stacks.workloads.menu.mappers.MenuMapper;
import java.util.ArrayList;
import java.util.UUID;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class QueryMenuControllerImplV2 implements QueryMenuControllerV2 {

private DomainToDtoMapper mapper;

public QueryMenuControllerImplV2(DomainToDtoMapper mapper) {
this.mapper = mapper;
}
@Autowired private MenuMapper menuMapper;

@Override
public ResponseEntity<MenuDTO> getMenu(UUID id, String correlationId) {
Expand All @@ -26,6 +23,6 @@ public ResponseEntity<MenuDTO> getMenu(UUID id, String correlationId) {
new Menu(
id.toString(), restaurantId, "0 Menu", "0 Menu Description", new ArrayList<>(), true);

return ResponseEntity.ok(mapper.toMenuDto(menu));
return ResponseEntity.ok(menuMapper.toDto(menu));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.amido.stacks.workloads.menu.mappers;

import com.amido.stacks.core.mapping.BaseMapper;
import com.amido.stacks.workloads.menu.api.v1.dto.response.CategoryDTO;
import com.amido.stacks.workloads.menu.domain.Category;
import org.mapstruct.Mapper;
import org.mapstruct.NullValueCheckStrategy;

@Mapper(
componentModel = "spring",
uses = {ItemMapper.class},
nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
public interface CategoryMapper extends BaseMapper<CategoryDTO, Category> {}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.amido.stacks.workloads.menu.mappers;

import com.amido.stacks.core.mapping.BaseMapper;
import com.amido.stacks.workloads.menu.api.v1.dto.response.ItemDTO;
import com.amido.stacks.workloads.menu.domain.Item;
import org.mapstruct.Mapper;
import org.mapstruct.NullValueCheckStrategy;

@Mapper(
componentModel = "spring",
uses = {},
nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
public interface ItemMapper extends BaseMapper<ItemDTO, Item> {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.amido.stacks.workloads.menu.mappers;

import com.amido.stacks.core.mapping.BaseMapper;
import com.amido.stacks.core.mapping.MapperUtils;
import com.amido.stacks.workloads.menu.api.v1.dto.response.MenuDTO;
import com.amido.stacks.workloads.menu.domain.Menu;
import org.mapstruct.Mapper;
import org.mapstruct.NullValueCheckStrategy;

@Mapper(
componentModel = "spring",
uses = {MapperUtils.class, CategoryMapper.class},
nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
public interface MenuMapper extends BaseMapper<MenuDTO, Menu> {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.amido.stacks.workloads.menu.mappers;

import com.amido.stacks.core.mapping.BaseMapper;
import com.amido.stacks.core.mapping.MapperUtils;
import com.amido.stacks.workloads.menu.api.v1.dto.response.SearchMenuResultItem;
import com.amido.stacks.workloads.menu.domain.Menu;
import org.mapstruct.Mapper;
import org.mapstruct.NullValueCheckStrategy;

@Mapper(
componentModel = "spring",
uses = {MapperUtils.class, CategoryMapper.class},
nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
public interface SearchMenuResultItemMapper extends BaseMapper<SearchMenuResultItem, Menu> {}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,10 @@
import com.amido.stacks.workloads.menu.domain.Category;
import com.amido.stacks.workloads.menu.domain.Item;
import com.amido.stacks.workloads.menu.domain.Menu;
import com.amido.stacks.workloads.menu.mappers.DomainToDtoMapper;
import com.amido.stacks.workloads.menu.mappers.CategoryMapper;
import com.amido.stacks.workloads.menu.mappers.ItemMapper;
import com.amido.stacks.workloads.menu.mappers.MenuMapper;
import com.amido.stacks.workloads.menu.mappers.SearchMenuResultItemMapper;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
Expand All @@ -39,6 +42,14 @@ public class QueryMenuControllerImplTest {

@Autowired private TestRestTemplate testRestTemplate;

@Autowired private MenuMapper menuMapper;

@Autowired private CategoryMapper categoryMapper;

@Autowired private ItemMapper itemMapper;

@Autowired private SearchMenuResultItemMapper searchMenuResultItemMapper;

final int DEFAULT_PAGE_NUMBER = 1;
final int DEFAULT_PAGE_SIZE = 20;

Expand Down Expand Up @@ -80,7 +91,7 @@ public void listMenusFilteredByRestaurantId() {

List<SearchMenuResultItem> expectedMenuList =
matching.stream()
.map(DomainToDtoMapper::toSearchMenuResultItem)
.map(m -> searchMenuResultItemMapper.toDto(m))
.collect(Collectors.toList());

SearchMenuResult expectedResponse =
Expand Down Expand Up @@ -111,7 +122,7 @@ public void getMenuById() {
new Category(categoryId, "cat name", "cat description", Arrays.asList(item));
menu.addOrUpdateCategory(category);

MenuDTO expectedResponse = DomainToDtoMapper.toMenuDto(menu);
MenuDTO expectedResponse = menuMapper.toDto(menu);

// When
var response =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

import com.amido.stacks.workloads.menu.api.v1.dto.response.MenuDTO;
import com.amido.stacks.workloads.menu.domain.Menu;
import com.amido.stacks.workloads.menu.mappers.DomainToDtoMapper;
import com.amido.stacks.workloads.menu.mappers.MenuMapper;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
Expand All @@ -28,13 +28,15 @@ class QueryMenuControllerImplV2Test {

@Autowired private TestRestTemplate testRestTemplate;

@Autowired private MenuMapper menuMapper;

@Test
void getMenuById() {
// Given
Menu menu = createMenu(0);
String restaurantId = "3930ddff-82ce-4f7e-b910-b0709b276cf0";
menu.setRestaurantId(restaurantId);
MenuDTO expectedResponse = DomainToDtoMapper.toMenuDto(menu);
MenuDTO expectedResponse = menuMapper.toDto(menu);

// When
var response =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,30 @@
import java.util.UUID;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@Tag("Unit")
class DomainToDtoMapperTest {
@SpringBootTest(
classes = {
MenuMapper.class,
MenuMapperImpl.class,
CategoryMapper.class,
CategoryMapperImpl.class,
ItemMapper.class,
ItemMapperImpl.class,
SearchMenuResultItemMapper.class,
SearchMenuResultItemMapperImpl.class
})
class DomainToDtoMapperMapstructTest {

@Autowired private MenuMapper menuMapper;

@Autowired private CategoryMapper categoryMapper;

@Autowired private ItemMapper itemMapper;

@Autowired private SearchMenuResultItemMapper searchMenuResultItemMapper;

@Test
void menuToMenuDto() {
Expand All @@ -39,7 +60,7 @@ void menuToMenuDto() {
enabled);

// When
MenuDTO menuDTO = DomainToDtoMapper.toMenuDto(menu);
MenuDTO menuDTO = menuMapper.toDto(menu);

// Then
assertThat(menuDTO.getId()).isEqualTo(id);
Expand All @@ -63,14 +84,14 @@ void menuToMenuDtoWithNullCategories() {
Menu menu = new Menu(id.toString(), restaurantId.toString(), name, description, null, enabled);

// When
MenuDTO menuDTO = DomainToDtoMapper.toMenuDto(menu);
MenuDTO menuDTO = menuMapper.toDto(menu);

// Then
assertThat(menuDTO.getId()).isEqualTo(id);
assertThat(menuDTO.getRestaurantId()).isEqualTo(restaurantId);
assertThat(menuDTO.getName()).isEqualTo(name);
assertThat(menuDTO.getDescription()).isEqualTo(description);
assertThat(menuDTO.getCategories()).isNull();
assertThat(menuDTO.getCategories()).isEmpty();
assertThat(menuDTO.getEnabled()).isEqualTo(enabled);
}

Expand All @@ -97,7 +118,7 @@ void menuToMenuDtoWithNullCategoryItems() {
enabled);

// When
MenuDTO menuDTO = DomainToDtoMapper.toMenuDto(menu);
MenuDTO menuDTO = menuMapper.toDto(menu);

// Then
assertThat(menuDTO.getId()).isEqualTo(id);
Expand All @@ -110,7 +131,7 @@ void menuToMenuDtoWithNullCategoryItems() {
assertThat(menuDTO.getCategories().get(0).getDescription())
.isEqualTo(category.getDescription());
assertThat(menuDTO.getCategories().get(0).getId()).isEqualTo(category.getId());
assertThat(menuDTO.getCategories().get(0).getItems()).isNull();
assertThat(menuDTO.getCategories().get(0).getItems()).isEmpty();
}

@Test
Expand All @@ -126,7 +147,7 @@ void menuToSearchMenuResultItem() {
Menu menu = new Menu(id.toString(), restaurantId.toString(), name, description, null, enabled);

// When
SearchMenuResultItem resultItem = DomainToDtoMapper.toSearchMenuResultItem(menu);
SearchMenuResultItem resultItem = searchMenuResultItemMapper.toDto(menu);

// Then
assertThat(resultItem.getId()).isEqualTo(id);
Expand All @@ -148,7 +169,7 @@ void itemToItemDto() {
Item item = new Item(id, name, description, price, available);

// When
ItemDTO itemDTO = DomainToDtoMapper.toItemDto(item);
ItemDTO itemDTO = itemMapper.toDto(item);

// Then
assertThat(itemDTO.getId()).isEqualTo(id);
Expand All @@ -168,7 +189,7 @@ void categoryToCategoryDto() {
Category category = new Category(id, name, description, Collections.emptyList());

// When
CategoryDTO categoryDTO = DomainToDtoMapper.toCategoryDto(category);
CategoryDTO categoryDTO = categoryMapper.toDto(category);

// Then
assertThat(categoryDTO.getId()).isEqualTo(id);
Expand Down