From a756ce4c99a0e7bbbb50558192c0c443aa50a33f Mon Sep 17 00:00:00 2001 From: haerong22 Date: Wed, 4 Aug 2021 23:05:08 +0900 Subject: [PATCH] tdd : picking system - order -> order detail vaildation --- .../com/example/pickingtdd/entity/Order.java | 3 +++ .../pickingtdd/service/OrderServiceImpl.java | 11 +++++++++++ .../service/OrderDetailServiceTests.java | 2 -- .../pickingtdd/service/OrderServiceTests.java | 18 ++++++++++++++++-- tdd_practice/pickingTDD/todo.txt | 2 +- 5 files changed, 31 insertions(+), 5 deletions(-) diff --git a/tdd_practice/pickingTDD/src/main/java/com/example/pickingtdd/entity/Order.java b/tdd_practice/pickingTDD/src/main/java/com/example/pickingtdd/entity/Order.java index 7379307c..d102623b 100644 --- a/tdd_practice/pickingTDD/src/main/java/com/example/pickingtdd/entity/Order.java +++ b/tdd_practice/pickingTDD/src/main/java/com/example/pickingtdd/entity/Order.java @@ -3,10 +3,13 @@ package com.example.pickingtdd.entity; import lombok.Getter; import lombok.Setter; +import java.util.List; + @Getter @Setter public class Order { private Long orderId; private OrderStateEnum State; + private List orderDetailList; } diff --git a/tdd_practice/pickingTDD/src/main/java/com/example/pickingtdd/service/OrderServiceImpl.java b/tdd_practice/pickingTDD/src/main/java/com/example/pickingtdd/service/OrderServiceImpl.java index ac67e3d7..f8fe52b8 100644 --- a/tdd_practice/pickingTDD/src/main/java/com/example/pickingtdd/service/OrderServiceImpl.java +++ b/tdd_practice/pickingTDD/src/main/java/com/example/pickingtdd/service/OrderServiceImpl.java @@ -1,14 +1,22 @@ package com.example.pickingtdd.service; import com.example.pickingtdd.entity.Order; +import com.example.pickingtdd.entity.OrderDetail; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class OrderServiceImpl implements OrderService { + @Autowired + OrderDetailService orderDetailService; + @Override public Order createOrder(Order order) throws Exception { if (orderValidation(order)) { + for (OrderDetail orderDetail : order.getOrderDetailList()) { + orderDetailService.createOrderDetail(orderDetail); + } return order; } else { throw new Exception("order validation fail"); @@ -22,6 +30,9 @@ public class OrderServiceImpl implements OrderService { if (order.getState() == null) { return false; } + if (order.getOrderDetailList() == null || order.getOrderDetailList().size() < 1) { + return false; + } return true; } } diff --git a/tdd_practice/pickingTDD/src/test/java/com/example/pickingtdd/service/OrderDetailServiceTests.java b/tdd_practice/pickingTDD/src/test/java/com/example/pickingtdd/service/OrderDetailServiceTests.java index 348848a9..d0a6ddcb 100644 --- a/tdd_practice/pickingTDD/src/test/java/com/example/pickingtdd/service/OrderDetailServiceTests.java +++ b/tdd_practice/pickingTDD/src/test/java/com/example/pickingtdd/service/OrderDetailServiceTests.java @@ -1,9 +1,7 @@ package com.example.pickingtdd.service; import com.example.pickingtdd.entity.OrderDetail; -import com.example.pickingtdd.entity.OrderStateEnum; import com.example.pickingtdd.entity.Sku; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; diff --git a/tdd_practice/pickingTDD/src/test/java/com/example/pickingtdd/service/OrderServiceTests.java b/tdd_practice/pickingTDD/src/test/java/com/example/pickingtdd/service/OrderServiceTests.java index b03e1bc9..9173456d 100644 --- a/tdd_practice/pickingTDD/src/test/java/com/example/pickingtdd/service/OrderServiceTests.java +++ b/tdd_practice/pickingTDD/src/test/java/com/example/pickingtdd/service/OrderServiceTests.java @@ -1,29 +1,43 @@ package com.example.pickingtdd.service; import com.example.pickingtdd.entity.Order; +import com.example.pickingtdd.entity.OrderDetail; import com.example.pickingtdd.entity.OrderStateEnum; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; +import java.util.Arrays; +import java.util.Collections; + import static org.junit.jupiter.api.Assertions.*; +@ExtendWith(MockitoExtension.class) @SpringBootTest public class OrderServiceTests { - @Autowired - OrderService orderService; + @InjectMocks + OrderService orderService = new OrderServiceImpl(); + + @Mock + OrderDetailService orderDetailService; Order orderSuccess; Order orderFail; @BeforeEach void init() { + OrderDetail orderDetail = new OrderDetail(); orderSuccess = new Order(); orderSuccess.setOrderId(1L); orderSuccess.setState(OrderStateEnum.ORDERED); + orderSuccess.setOrderDetailList(Collections.singletonList(orderDetail)); orderFail = new Order(); orderFail.setOrderId(null); diff --git a/tdd_practice/pickingTDD/todo.txt b/tdd_practice/pickingTDD/todo.txt index 3c810429..eb70ac63 100644 --- a/tdd_practice/pickingTDD/todo.txt +++ b/tdd_practice/pickingTDD/todo.txt @@ -8,8 +8,8 @@ SKU 주문 -> 피킹리스트 -> 피커 -> 피킹완료 ------- TO-DO ------- -[] Order validation 에 OrderDetail 검증 추가 +[v] Order validation 에 OrderDetail 검증 추가 [v] OrderDetail validation 추가 [v] OrderDetail 생성 [v] Order.state => enum 변경