tdd : picking system - assigned picker

This commit is contained in:
haerong22
2021-08-05 21:01:24 +09:00
parent eae3e20024
commit 0d68372add
7 changed files with 34 additions and 8 deletions

View File

@@ -1,5 +1,5 @@
package com.example.pickingtdd.entity;
public enum OrderStateEnum {
ORDERED, LISTED, PENDING, PICKING, DONE
ORDERED, LISTED, ASSIGNED, PENDING, PICKING, DONE
}

View File

@@ -9,7 +9,7 @@ import java.util.Map;
@Setter
public class PickingList {
private Long id;
private Long orderId;
private Order order;
private Map<Sku, Integer> skuAmountMap;
private PickingStateEnum state;
private Picker picker;

View File

@@ -1,5 +1,5 @@
package com.example.pickingtdd.entity;
public enum PickingStateEnum {
NOTASSIGNED
NOTASSIGNED, ASSIGNED, PROGRESS, PENDING, ERROR, DONE
}

View File

@@ -1,10 +1,12 @@
package com.example.pickingtdd.service;
import com.example.pickingtdd.entity.Order;
import com.example.pickingtdd.entity.Picker;
import com.example.pickingtdd.entity.PickingList;
public interface PickingListService {
PickingList createPickingList(Order order);
PickingList assignPicker(PickingList pickingList, Picker picker);
}

View File

@@ -16,7 +16,7 @@ public class PickingListServiceImpl implements PickingListService {
@Override
public PickingList createPickingList(Order order) {
PickingList pickingList = new PickingList();
pickingList.setOrderId(order.getOrderId());
pickingList.setOrder(order);
pickingList.setState(PickingStateEnum.NOTASSIGNED);
Map<Sku, Integer> skuAmountMap = new HashMap<>();
@@ -30,4 +30,13 @@ public class PickingListServiceImpl implements PickingListService {
orderService.changeOrderState(order, OrderStateEnum.LISTED);
return pickingList;
}
@Override
public PickingList assignPicker(PickingList pickingList, Picker picker) {
pickingList.setPicker(picker);
pickingList.setState(PickingStateEnum.ASSIGNED);
orderService.changeOrderState(pickingList.getOrder(), OrderStateEnum.ASSIGNED);
return pickingList;
}
}

View File

@@ -49,7 +49,7 @@ public class PickingListServiceTests {
.thenReturn(true);
PickingList assertPickingList = new PickingList();
assertPickingList.setOrderId(1L);
assertPickingList.setOrder(order);
assertPickingList.setSkuAmountMap(
Maps.newHashMap(
order.getOrderDetailList().get(0).getSku(),
@@ -59,10 +59,22 @@ public class PickingListServiceTests {
PickingList pickingList = pickingListService.createPickingList(order);
assertEquals(assertPickingList.getOrderId(), pickingList.getOrderId());
assertEquals(PickingStateEnum.NOTASSIGNED, pickingList.getState());
assertEquals(assertPickingList.getOrder(), pickingList.getOrder());
assertEquals(assertPickingList.getState(), pickingList.getState());
assertEquals(
assertPickingList.getSkuAmountMap().get(order.getOrderDetailList().get(0).getSku()),
pickingList.getSkuAmountMap().get(order.getOrderDetailList().get(0).getSku()));
}
@Test
void assignPicker() {
PickingList pickingList = pickingListService.createPickingList(order);
Picker picker = new Picker();
PickingList assignedPickingList = pickingListService.assignPicker(pickingList, picker);
assertEquals(picker, assignedPickingList.getPicker());
assertEquals(PickingStateEnum.ASSIGNED, assignedPickingList.getState());
}
}

View File

@@ -8,8 +8,11 @@ SKU
주문 -> 피킹리스트 -> 피커 -> 피킹완료
------- TO-DO -------
[] changeOrderState 메소드 생성
[] Picker 구체화
[v] 피킹 리스트 피커에게 할당
[v] PickingList - Order 연관관계 설정
[v] changeOrderState 메소드 생성
[v] 피킹 리스트 생성
[v] Order validation 에 OrderDetail 검증 추가
[v] OrderDetail validation 추가