test: cover persisted mismatched Mojia uploads

This commit is contained in:
2026-09-24 17:24:01 +08:00
parent b31405af43
commit 4e9663e852
@@ -59,6 +59,7 @@ class MojiaMeasurementOpenApiServiceTest {
var service = new MojiaMeasurementOpenApiService(authenticator, cartons,
new ObjectMapper().findAndRegisterModules(), Validation.buildDefaultValidatorFactory().getValidator(),
images, receipts, labels);
ReflectionTestUtils.setField(service, "internalToken", "internal-token");
MeasurementRequestHeaders headers = new MeasurementRequestHeaders("mojia", null, null, null, null);
when(authenticator.authenticate("POST", MojiaMeasurementOpenApiService.CALLBACK_PATH,
headers, json(), false)).thenReturn(new AuthenticatedMeasurementApp(
@@ -170,6 +171,7 @@ class MojiaMeasurementOpenApiServiceTest {
var service = new MojiaMeasurementOpenApiService(authenticator, cartons,
new ObjectMapper().findAndRegisterModules(), Validation.buildDefaultValidatorFactory().getValidator(),
images, receipts, labels);
ReflectionTestUtils.setField(service, "internalToken", "internal-token");
MeasurementRequestHeaders headers = new MeasurementRequestHeaders("mojia", null, null, null, null);
when(authenticator.authenticate("POST", MojiaMeasurementOpenApiService.CALLBACK_PATH,
headers, json(), false)).thenReturn(new AuthenticatedMeasurementApp(
@@ -178,10 +180,18 @@ class MojiaMeasurementOpenApiServiceTest {
.thenReturn(new InboundCartonLabelService.PlatformBinding(10002L, 30002L,
new CartonLabelBindingResolver.Binding(
70002L, 80002L, "PCHK2608140001", 1, 5, "60x40x30cm")));
when(images.uploadReceipt(eq("internal-token"), eq(90001L), eq(0L), any(Long.TYPE), any()))
.thenReturn(ApiResponse.success(new MeasurementImageClient.UploadResult(
9L, "mojia.jpg", "image/jpeg", 4L, "NOT_REQUIRED", null, null, null, null)));
org.assertj.core.api.Assertions.assertThatThrownBy(() -> service.receive(headers, json()))
.isInstanceOf(BizException.class)
.hasMessageContaining("不属于当前设备绑定仓库");
UploadResponse result = service.receive(headers, json());
assertThat(result.accepted()).isTrue();
assertThat(result.matched()).isFalse();
ArgumentCaptor<MojiaMeasurementReceiptEntity> receipt =
ArgumentCaptor.forClass(MojiaMeasurementReceiptEntity.class);
verify(receipts).insert(receipt.capture());
assertThat(receipt.getValue().getMeasurementKind()).isEqualTo("BOX_LABEL");
assertThat(receipt.getValue().getMatchFailureReason()).contains("不属于当前设备绑定仓库");
verify(cartons, org.mockito.Mockito.never()).upsert(any(Long.TYPE), any(Long.TYPE), any());
}