This commit is contained in:
2026-08-21 17:58:52 +08:00
parent af97217184
commit 24e4a402a9
7 changed files with 223 additions and 103 deletions
@@ -182,6 +182,29 @@ class CarrierScheduleQueryServiceTest {
verify(repository).completeOperation(eq(1L), eq(7L), eq("manual-empty-1"), anyString());
}
@Test
void manualEstimatedFactAdvancesVersionWithoutAdvancingActualProgress() {
CarrierScheduleQueryEntity before = task(0, 3);
before.setStatus("READY"); before.setLatestStandardNode("LOADED_ON_VESSEL");
before.setLatestNodeObservedAt(NOW.minusDays(1));
CarrierScheduleQueryEntity after = task(0, 4);
after.setStatus("READY"); after.setLatestStandardNode("LOADED_ON_VESSEL");
after.setLatestNodeObservedAt(NOW.minusDays(1));
when(repository.lock(1L)).thenReturn(before); when(repository.find(1L)).thenReturn(after);
when(repository.insertIfAbsent(any(com.baiyue.firstleg.portschedule.entity.CarrierScheduleNodeFactEntity.class)))
.thenReturn(true);
when(repository.updateState(any(), any(Integer.class), anyLong(), anyString())).thenReturn(1);
var result = service.addManualNode(1L, 7L, "admin", "manual-estimated-1",
new ManualNodeRequest(3, "ARRIVED_DESTINATION_PORT", NOW, NOW.plusDays(5), null,
"USLAX", "Los Angeles", "人工预计到港"));
assertThat(result.query().query().version()).isEqualTo(4);
assertThat(result.query().query().latestActualNode()).isEqualTo("LOADED_ON_VESSEL");
assertThat(result.query().query().latestActualAt()).isEqualTo(NOW.minusDays(1));
verify(repository).updateState(before, 3, 7L, "admin");
}
@Test
void holdIsPersistedAsSeparateImmutableExceptionFact() {
CarrierScheduleQueryEntity task = task(0, 1);