tdd : picking system - picker, picking list assign
This commit is contained in:
@@ -1,4 +1,14 @@
|
||||
package com.example.pickingtdd.entity;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class Picker {
|
||||
|
||||
private Long pickerId;
|
||||
private PickerStateEnum state;
|
||||
private Order assignedOrder;
|
||||
private PickingList assignedPickingList;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.example.pickingtdd.entity;
|
||||
|
||||
public enum PickerStateEnum {
|
||||
REST, ASSIGNED, PROCESS, PENDING, ERROR, DONE
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.example.pickingtdd.service;
|
||||
|
||||
import com.example.pickingtdd.entity.Picker;
|
||||
import com.example.pickingtdd.entity.PickingList;
|
||||
|
||||
public interface PickerService {
|
||||
|
||||
Picker assignPickingList(Picker picker, PickingList pickingList);
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.example.pickingtdd.service;
|
||||
|
||||
import com.example.pickingtdd.entity.Picker;
|
||||
import com.example.pickingtdd.entity.PickerStateEnum;
|
||||
import com.example.pickingtdd.entity.PickingList;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class PickerServiceImpl implements PickerService {
|
||||
|
||||
@Autowired
|
||||
PickingListService pickingListService;
|
||||
|
||||
@Override
|
||||
public Picker assignPickingList(Picker picker, PickingList pickingList) {
|
||||
picker.setAssignedPickingList(pickingList);
|
||||
picker.setAssignedOrder(pickingList.getOrder());
|
||||
picker.setState(PickerStateEnum.ASSIGNED);
|
||||
|
||||
if (pickingList.getPicker() == null || !picker.equals(pickingList.getPicker())) {
|
||||
pickingListService.assignPicker(pickingList, picker);
|
||||
}
|
||||
return picker;
|
||||
}
|
||||
}
|
||||
@@ -13,6 +13,9 @@ public class PickingListServiceImpl implements PickingListService {
|
||||
@Autowired
|
||||
OrderService orderService;
|
||||
|
||||
@Autowired
|
||||
PickerService pickerService;
|
||||
|
||||
@Override
|
||||
public PickingList createPickingList(Order order) {
|
||||
PickingList pickingList = new PickingList();
|
||||
@@ -37,6 +40,10 @@ public class PickingListServiceImpl implements PickingListService {
|
||||
pickingList.setState(PickingStateEnum.ASSIGNED);
|
||||
|
||||
orderService.changeOrderState(pickingList.getOrder(), OrderStateEnum.ASSIGNED);
|
||||
|
||||
if (picker.getAssignedPickingList() == null || !picker.getAssignedPickingList().equals(pickingList)) {
|
||||
pickerService.assignPickingList(picker, pickingList);
|
||||
}
|
||||
return pickingList;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.example.pickingtdd.service;
|
||||
|
||||
import com.example.pickingtdd.entity.Order;
|
||||
import com.example.pickingtdd.entity.Picker;
|
||||
import com.example.pickingtdd.entity.PickerStateEnum;
|
||||
import com.example.pickingtdd.entity.PickingList;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
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 PickerServiceTests {
|
||||
|
||||
@Autowired
|
||||
PickerService pickerService;
|
||||
|
||||
@Test
|
||||
void assignPickingList() {
|
||||
Picker picker = new Picker();
|
||||
picker.setPickerId(1L);
|
||||
picker.setState(PickerStateEnum.REST);
|
||||
|
||||
PickingList pickingList = new PickingList();
|
||||
pickingList.setOrder(new Order());
|
||||
|
||||
picker = pickerService.assignPickingList(picker, pickingList);
|
||||
|
||||
assertEquals(PickerStateEnum.ASSIGNED, picker.getState());
|
||||
assertNotNull(picker.getAssignedOrder());
|
||||
assertNotNull(picker.getAssignedPickingList());
|
||||
assertNotNull(picker.getAssignedPickingList().getPicker());
|
||||
}
|
||||
}
|
||||
@@ -8,12 +8,14 @@ import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.Spy;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
@SpringBootTest
|
||||
@@ -25,6 +27,9 @@ public class PickingListServiceTests {
|
||||
@Mock
|
||||
OrderService orderService;
|
||||
|
||||
@Spy
|
||||
PickerService pickerService = new PickerServiceImpl();
|
||||
|
||||
Order order;
|
||||
|
||||
@BeforeEach
|
||||
@@ -76,5 +81,6 @@ public class PickingListServiceTests {
|
||||
|
||||
assertEquals(picker, assignedPickingList.getPicker());
|
||||
assertEquals(PickingStateEnum.ASSIGNED, assignedPickingList.getState());
|
||||
assertNotNull(assignedPickingList.getPicker().getAssignedPickingList());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,8 +8,11 @@ SKU
|
||||
주문 -> 피킹리스트 -> 피커 -> 피킹완료
|
||||
|
||||
------- TO-DO -------
|
||||
[] Picker 구체화
|
||||
|
||||
[v] 피킹 리스트 할당시 피커도 할당
|
||||
[v] 피커 할당시 피킹리스트도 할당
|
||||
[v] 피커에게 피킹 리스트 할당
|
||||
[v] Picker 구체화
|
||||
[v] 피킹 리스트 피커에게 할당
|
||||
[v] PickingList - Order 연관관계 설정
|
||||
[v] changeOrderState 메소드 생성
|
||||
|
||||
Reference in New Issue
Block a user