diff --git a/tdd_practice/pickingTDD/src/main/java/com/example/pickingtdd/service/OrderService.java b/tdd_practice/pickingTDD/src/main/java/com/example/pickingtdd/service/OrderService.java index 2792c0e0..3c50e22e 100644 --- a/tdd_practice/pickingTDD/src/main/java/com/example/pickingtdd/service/OrderService.java +++ b/tdd_practice/pickingTDD/src/main/java/com/example/pickingtdd/service/OrderService.java @@ -4,5 +4,5 @@ import com.example.pickingtdd.entity.Order; public interface OrderService { - Order createOrder(Order order); + Order createOrder(Order order) throws Exception; } 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 4eacd9df..39c77553 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 @@ -7,7 +7,21 @@ import org.springframework.stereotype.Service; public class OrderServiceImpl implements OrderService { @Override - public Order createOrder(Order order) { - return order; + public Order createOrder(Order order) throws Exception { + if (orderValidation(order)) { + return order; + } else { + throw new Exception("order validation fail"); + } + } + + private boolean orderValidation(Order order) { + if (order.getOrderId() == null) { + return false; + } + if (order.getState() == null || order.getState().length() == 0) { + return false; + } + return true; } } 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 62b289f1..00a12753 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 @@ -2,25 +2,65 @@ package com.example.pickingtdd.service; import com.example.pickingtdd.entity.Order; 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; import org.springframework.boot.test.context.SpringBootTest; +import static org.junit.jupiter.api.Assertions.*; + @SpringBootTest public class OrderServiceTests { @Autowired OrderService orderService; + Order orderSuccess; + Order orderFail; + + @BeforeEach + void init() { + orderSuccess = new Order(); + orderSuccess.setOrderId(1L); + orderSuccess.setState("Ordered"); + + orderFail = new Order(); + orderFail.setOrderId(null); + orderFail.setState(""); + } + @Test - void create_order_success() { + void createOrder_success() { Order order = new Order(); - order.setOrderId(1L); - order.setState("Ordered"); + try { + order = orderService.createOrder(orderSuccess); + } catch (Exception e) { + // do nothing + } - order = orderService.createOrder(order); + assertEquals(1L, order.getOrderId()); + assertEquals("Ordered", order.getState()); + } - Assertions.assertEquals(1L, order.getOrderId()); - Assertions.assertEquals("Ordered", order.getState()); + @Test + void orderValidation_success() { + Order order = new Order(); + try { + order = orderService.createOrder(orderSuccess); + } catch (Exception e) { + fail("should not throw exception"); + } + + assertEquals(1L, order.getOrderId()); + assertEquals("Ordered", order.getState()); + } + + @Test + void orderValidation_fail() { + Exception e = assertThrows(Exception.class, () -> { + orderService.createOrder(orderFail); + }); + + assertEquals("order validation fail", e.getMessage()); } } diff --git a/tdd_practice/pickingTDD/todo.txt b/tdd_practice/pickingTDD/todo.txt index 2c06da86..f2cf4343 100644 --- a/tdd_practice/pickingTDD/todo.txt +++ b/tdd_practice/pickingTDD/todo.txt @@ -8,6 +8,7 @@ SKU 주문 -> 피킹리스트 -> 피커 -> 피킹완료 ------- TO-DO ------- -[] ORDER 검증 +[] Order.state => enum 변경 +[v] ORDER 검증 [v] ORDER 생성