fix: serialize phase4 inventory and outbound gates

This commit is contained in:
2026-08-24 22:32:37 +08:00
parent 3fbb7653f7
commit 0e73a79479
8 changed files with 69 additions and 20 deletions
@@ -1,7 +1,7 @@
package com.baiyue.firstleg.customs.service;
import com.baiyue.firstleg.entity.ContainerDocumentEntity;
import com.baiyue.firstleg.repository.LoadingListRepository;
import com.baiyue.firstleg.customs.entity.CustomsCaseEntity;
import com.baiyue.firstleg.customs.repository.CustomsRepository;
import com.baiyue.firstleg.outbound.dispatch.gate.OutboundDispatchGateContributor.Context;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -11,7 +11,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.*;
class CustomsDispatchGateContributorTest {
@Mock LoadingListRepository repository;
@Mock CustomsRepository repository;
@InjectMocks CustomsDispatchGateContributor contributor;
@BeforeEach void setUp() { MockitoAnnotations.openMocks(this); }
@@ -22,15 +22,16 @@ class CustomsDispatchGateContributorTest {
.isEqualTo("INVALID_CUSTOMER_SCOPE");
}
@Test void passesOnlyCompletedSimpleDeclaration() {
ContainerDocumentEntity value = new ContainerDocumentEntity();
when(repository.document(81L, "CUSTOMS_DECLARATION")).thenReturn(value);
@Test void passesOnlyCanonicalClearanceCompletedCase() {
CustomsCaseEntity value = new CustomsCaseEntity();
value.setStatus("RECEIPT_AVAILABLE");
when(repository.gateCase(10001L, 21L, 31L, 81L)).thenReturn(value);
assertThat(contributor.assess(context()).passed()).isFalse();
value.setCompletedAt(java.time.LocalDateTime.now());
value.setStatus("CLEARANCE_COMPLETED");
assertThat(contributor.assess(context()))
.satisfies(item -> {
assertThat(item.passed()).isTrue();
assertThat(item.requirement()).isEqualTo("COMPLETED");
assertThat(item.requirement()).isEqualTo("CLEARANCE_COMPLETED");
});
}