tdd : picking system - order -> order detail vaildation

This commit is contained in:
haerong22
2021-08-04 23:05:08 +09:00
parent 396111104f
commit a756ce4c99
5 changed files with 31 additions and 5 deletions

View File

@@ -3,10 +3,13 @@ package com.example.pickingtdd.entity;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.List;
@Getter @Getter
@Setter @Setter
public class Order { public class Order {
private Long orderId; private Long orderId;
private OrderStateEnum State; private OrderStateEnum State;
private List<OrderDetail> orderDetailList;
} }

View File

@@ -1,14 +1,22 @@
package com.example.pickingtdd.service; package com.example.pickingtdd.service;
import com.example.pickingtdd.entity.Order; import com.example.pickingtdd.entity.Order;
import com.example.pickingtdd.entity.OrderDetail;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@Service @Service
public class OrderServiceImpl implements OrderService { public class OrderServiceImpl implements OrderService {
@Autowired
OrderDetailService orderDetailService;
@Override @Override
public Order createOrder(Order order) throws Exception { public Order createOrder(Order order) throws Exception {
if (orderValidation(order)) { if (orderValidation(order)) {
for (OrderDetail orderDetail : order.getOrderDetailList()) {
orderDetailService.createOrderDetail(orderDetail);
}
return order; return order;
} else { } else {
throw new Exception("order validation fail"); throw new Exception("order validation fail");
@@ -22,6 +30,9 @@ public class OrderServiceImpl implements OrderService {
if (order.getState() == null) { if (order.getState() == null) {
return false; return false;
} }
if (order.getOrderDetailList() == null || order.getOrderDetailList().size() < 1) {
return false;
}
return true; return true;
} }
} }

View File

@@ -1,9 +1,7 @@
package com.example.pickingtdd.service; package com.example.pickingtdd.service;
import com.example.pickingtdd.entity.OrderDetail; import com.example.pickingtdd.entity.OrderDetail;
import com.example.pickingtdd.entity.OrderStateEnum;
import com.example.pickingtdd.entity.Sku; import com.example.pickingtdd.entity.Sku;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;

View File

@@ -1,29 +1,43 @@
package com.example.pickingtdd.service; package com.example.pickingtdd.service;
import com.example.pickingtdd.entity.Order; import com.example.pickingtdd.entity.Order;
import com.example.pickingtdd.entity.OrderDetail;
import com.example.pickingtdd.entity.OrderStateEnum; import com.example.pickingtdd.entity.OrderStateEnum;
import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; 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.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import java.util.Arrays;
import java.util.Collections;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*;
@ExtendWith(MockitoExtension.class)
@SpringBootTest @SpringBootTest
public class OrderServiceTests { public class OrderServiceTests {
@Autowired @InjectMocks
OrderService orderService; OrderService orderService = new OrderServiceImpl();
@Mock
OrderDetailService orderDetailService;
Order orderSuccess; Order orderSuccess;
Order orderFail; Order orderFail;
@BeforeEach @BeforeEach
void init() { void init() {
OrderDetail orderDetail = new OrderDetail();
orderSuccess = new Order(); orderSuccess = new Order();
orderSuccess.setOrderId(1L); orderSuccess.setOrderId(1L);
orderSuccess.setState(OrderStateEnum.ORDERED); orderSuccess.setState(OrderStateEnum.ORDERED);
orderSuccess.setOrderDetailList(Collections.singletonList(orderDetail));
orderFail = new Order(); orderFail = new Order();
orderFail.setOrderId(null); orderFail.setOrderId(null);

View File

@@ -8,8 +8,8 @@ SKU
주문 -> 피킹리스트 -> 피커 -> 피킹완료 주문 -> 피킹리스트 -> 피커 -> 피킹완료
------- TO-DO ------- ------- TO-DO -------
[] Order validation 에 OrderDetail 검증 추가
[v] Order validation 에 OrderDetail 검증 추가
[v] OrderDetail validation 추가 [v] OrderDetail validation 추가
[v] OrderDetail 생성 [v] OrderDetail 생성
[v] Order.state => enum 변경 [v] Order.state => enum 변경