feat(lastleg): manage three delivery document categories
This commit is contained in:
+24
@@ -107,6 +107,30 @@ class CustomerVisitServiceTest {
|
||||
assertThat(tail.getSubOrderStatus()).isEqualTo("DELIVERY:DELIVERED");
|
||||
}
|
||||
|
||||
@Test
|
||||
void startMeansDeliveringAndOnlyCompleteSignsAndCreatesVisit() {
|
||||
DeliveryOrder delivery = delivery("WAIT_DELIVERY"); delivery.setVersion(0L);
|
||||
when(deliveryOrders.lockByNo("1001", "DL-1")).thenReturn(delivery);
|
||||
var started = service.updateDeliveryStatus("1001", "9001", "DL-1",
|
||||
new CustomerVisitRequests.DeliveryStatus("DELIVERING", 0L, "开始派送"));
|
||||
assertThat(started.deliveryStatus()).isEqualTo("DELIVERING");
|
||||
assertThat(delivery.getVersion()).isEqualTo(1);
|
||||
assertThat(delivery.getDispatchedAt()).isNotNull();
|
||||
assertThat(delivery.getSignedAt()).isNull();
|
||||
verify(visits, never()).insert(org.mockito.ArgumentMatchers.any(CustomerVisit.class));
|
||||
CustomerVisit visit = new CustomerVisit(); visit.setId(33L); visit.setStatus("PENDING");
|
||||
when(visits.findByDelivery("1001", 11L)).thenReturn(visit);
|
||||
var completed = service.updateDeliveryStatus("1001", "9001", "DL-1",
|
||||
new CustomerVisitRequests.DeliveryStatus("DELIVERED", 1L, null));
|
||||
assertThat(completed.deliveryStatus()).isEqualTo("DELIVERED");
|
||||
assertThat(delivery.getSignedAt()).isNotNull();
|
||||
assertThat(delivery.getVersion()).isEqualTo(2);
|
||||
assertThat(completed.visitId()).isEqualTo(33);
|
||||
assertThat(service.updateDeliveryStatus("1001", "9001", "DL-1",
|
||||
new CustomerVisitRequests.DeliveryStatus("DELIVERED", 1L, null)).replayed()).isTrue();
|
||||
verify(deliveryOrders, org.mockito.Mockito.times(2)).updateById(delivery);
|
||||
}
|
||||
|
||||
private DeliveryOrder delivery(String status) {
|
||||
DeliveryOrder delivery = new DeliveryOrder();
|
||||
delivery.setId(11L);
|
||||
|
||||
Reference in New Issue
Block a user