fix: keep shadow work off legacy threads
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
package com.ruoyi.api.service.impl;
|
||||
|
||||
import com.ruoyi.algorithm.shadow.InboundShadowObservation;
|
||||
import com.ruoyi.algorithm.shadow.InboundShadowCompletion;
|
||||
import com.ruoyi.algorithm.shadow.ShadowObservationGateway;
|
||||
import com.ruoyi.api.domain.RequestEnter;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
@@ -30,6 +30,8 @@ class ToWmsServiceImplShadowTest {
|
||||
private MydoJobMapper mydoJobMapper;
|
||||
@Mock
|
||||
private ShadowObservationGateway shadowObservationGateway;
|
||||
@Mock
|
||||
private InboundShadowCompletion shadowCompletion;
|
||||
@InjectMocks
|
||||
private ToWmsServiceImpl service;
|
||||
|
||||
@@ -55,33 +57,31 @@ class ToWmsServiceImplShadowTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
void observesBeforeLegacyAndReturnsTheReloadedLegacyJob() {
|
||||
InboundShadowObservation observation = new InboundShadowObservation(
|
||||
true, "W01", "JOB-1", "READY", "SPACE-SHADOW", "proposal");
|
||||
when(shadowObservationGateway.planInbound("TASK-1", "TRAY-1")).thenReturn(observation);
|
||||
void submitsObservationBeforeLegacyAndReturnsTheReloadedLegacyJob() {
|
||||
when(shadowObservationGateway.observeInbound("TASK-1", "TRAY-1"))
|
||||
.thenReturn(shadowCompletion);
|
||||
|
||||
AjaxResult result = service.requestEnterByTaskNo(request);
|
||||
|
||||
assertThat(result.get(AjaxResult.DATA_TAG)).isSameAs(legacyResult);
|
||||
InOrder order = inOrder(mydoJobMapper, shadowObservationGateway);
|
||||
InOrder order = inOrder(mydoJobMapper, shadowObservationGateway, shadowCompletion);
|
||||
order.verify(mydoJobMapper).selectInJobByTaskNo("TASK-1");
|
||||
order.verify(shadowObservationGateway).planInbound("TASK-1", "TRAY-1");
|
||||
order.verify(shadowObservationGateway).observeInbound("TASK-1", "TRAY-1");
|
||||
order.verify(mydoJobMapper).allotInJobSpace(any());
|
||||
order.verify(mydoJobMapper).selectInJobByTaskNo("TASK-1");
|
||||
order.verify(shadowObservationGateway)
|
||||
.compareInbound(observation, "10", "SPACE-LEGACY");
|
||||
order.verify(shadowCompletion).complete("10", "SPACE-LEGACY");
|
||||
verify(mydoJobMapper, times(1)).allotInJobSpace(any());
|
||||
}
|
||||
|
||||
@Test
|
||||
void shadowExceptionCannotSkipOrReplaceLegacyAllocation() {
|
||||
when(shadowObservationGateway.planInbound("TASK-1", "TRAY-1"))
|
||||
when(shadowObservationGateway.observeInbound("TASK-1", "TRAY-1"))
|
||||
.thenThrow(new IllegalStateException("shadow unavailable"));
|
||||
|
||||
AjaxResult result = service.requestEnterByTaskNo(request);
|
||||
|
||||
assertThat(result.get(AjaxResult.DATA_TAG)).isSameAs(legacyResult);
|
||||
verify(shadowObservationGateway).planInbound("TASK-1", "TRAY-1");
|
||||
verify(shadowObservationGateway).observeInbound("TASK-1", "TRAY-1");
|
||||
verify(mydoJobMapper, times(1)).allotInJobSpace(any());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user