From 396111104f35c28ea320ebfdce3129472176cec2 Mon Sep 17 00:00:00 2001 From: haerong22 Date: Wed, 4 Aug 2021 22:56:41 +0900 Subject: [PATCH] tdd : picking system - order detail vaildation --- .../service/OrderDetailServiceImpl.java | 22 +++++++++++++++++-- .../service/OrderDetailServiceTests.java | 21 ++++++++++++++++++ tdd_practice/pickingTDD/todo.txt | 2 +- 3 files changed, 42 insertions(+), 3 deletions(-) diff --git a/tdd_practice/pickingTDD/src/main/java/com/example/pickingtdd/service/OrderDetailServiceImpl.java b/tdd_practice/pickingTDD/src/main/java/com/example/pickingtdd/service/OrderDetailServiceImpl.java index 2a8c1e70..9c8e0fac 100644 --- a/tdd_practice/pickingTDD/src/main/java/com/example/pickingtdd/service/OrderDetailServiceImpl.java +++ b/tdd_practice/pickingTDD/src/main/java/com/example/pickingtdd/service/OrderDetailServiceImpl.java @@ -6,7 +6,25 @@ import org.springframework.stereotype.Service; @Service public class OrderDetailServiceImpl implements OrderDetailService { @Override - public OrderDetail createOrderDetail(OrderDetail orderDetail) { - return orderDetail; + public OrderDetail createOrderDetail(OrderDetail orderDetail) throws Exception { + if (orderDetailValidation(orderDetail)) { + // do Something + return orderDetail; + } else { + throw new Exception("orderDetail validation fail"); + } + } + + private boolean orderDetailValidation(OrderDetail orderDetail) { + if (orderDetail.getOrderId() == null) { + return false; + } + if (orderDetail.getSku() == null) { + return false; + } + if (orderDetail.getAmount() < 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 266c4175..348848a9 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,6 +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; @@ -46,4 +47,24 @@ public class OrderDetailServiceTests { assertEquals(10, orderDetail.getAmount()); } + @Test + void orderDetailValidation_success() { + OrderDetail orderDetail = new OrderDetail(); + try { + orderDetail = orderDetailService.createOrderDetail(orderDetailSuccess); + } catch (Exception e) { + fail("should not throw exception"); + } + + assertEquals(1L, orderDetail.getOrderDetailId()); + } + + @Test + void orderValidation_fail() { + Exception e = assertThrows(Exception.class, () -> { + orderDetailService.createOrderDetail(orderDetailFail); + }); + + assertEquals("orderDetail validation fail", e.getMessage()); + } } diff --git a/tdd_practice/pickingTDD/todo.txt b/tdd_practice/pickingTDD/todo.txt index b8ad2745..3c810429 100644 --- a/tdd_practice/pickingTDD/todo.txt +++ b/tdd_practice/pickingTDD/todo.txt @@ -9,8 +9,8 @@ SKU ------- TO-DO ------- [] Order validation 에 OrderDetail 검증 추가 -[] OrderDetail validation 추가 +[v] OrderDetail validation 추가 [v] OrderDetail 생성 [v] Order.state => enum 변경 [v] ORDER 검증