test(firstleg): 覆盖超限设备测量实际尺寸

This commit is contained in:
2026-09-03 17:52:31 +08:00
parent 1d8432b8ef
commit 03591d6fbd
2 changed files with 19 additions and 2 deletions
@@ -164,7 +164,7 @@ class CartonMeasurementServiceTest {
}
@Test
void scanOutsideConfiguredWeightingRulesKeepsImageAndUsesLargestTierAddition() {
void scanOutsideConfiguredWeightingRulesKeepsImageAndUsesActualDimensions() {
InboundMeasurementEntity measurement = measurement(30001L, "RECEIVED", 0);
when(repository.findItemByBoxCode(10001L, "RK-001#5-1")).thenReturn(null);
when(repository.findLatestEditableMeasurement(10001L, 70001L)).thenReturn(measurement);
@@ -183,7 +183,11 @@ class CartonMeasurementServiceTest {
assertThat(insertedItem.get().getSourceImageFileId()).isEqualTo(99001L);
assertThat(insertedItem.get().getLengthCm()).isEqualByComparingTo("60.100");
assertThat(insertedItem.get().getCalculationRuleVersion())
.isEqualTo("CUSTOMER_DIMENSION_EXTRA_LARGE_V0");
.isEqualTo("ACTUAL_DIMENSION_V1");
assertThat(insertedItem.get().getOuterLengthCm()).isEqualByComparingTo("60.100");
assertThat(insertedItem.get().getOuterWidthCm()).isEqualByComparingTo("50.100");
assertThat(insertedItem.get().getOuterHeightCm()).isEqualByComparingTo("50.100");
assertThat(insertedItem.get().getUnitVolumeCbm()).isEqualByComparingTo("0.151");
assertThat(insertedItem.get().getOverLimitWarning()).isNull();
verify(images, never()).delete(any(), any(Long.TYPE), any(Long.TYPE), any(Long.TYPE), any(Long.TYPE));
}
@@ -68,6 +68,19 @@ class CustomerDimensionWeightingServiceTest {
assertThat(weighted.calculationRuleVersion()).isEqualTo("CUSTOMER_DIMENSION_EXTRA_LARGE_V3");
}
@Test
void deviceDimensionsOutsideConfiguredRulesRemainUnchanged() {
var weighted = service.load(10001L).resolveDeviceMeasurement(
new BigDecimal("60.001"), new BigDecimal("50"), new BigDecimal("50"));
assertThat(weighted.boxType()).isNull();
assertThat(weighted.edgeAdditionCm()).isNull();
assertThat(weighted.outerLengthCm()).isEqualByComparingTo("60.001");
assertThat(weighted.outerWidthCm()).isEqualByComparingTo("50.000");
assertThat(weighted.outerHeightCm()).isEqualByComparingTo("50.000");
assertThat(weighted.calculationRuleVersion()).isEqualTo("ACTUAL_DIMENSION_V1");
}
@Test
void incompleteCustomerRulesAreRejectedBeforeMeasurementCalculation() {
when(repository.findAll(10001L)).thenReturn(defaultRules(10001L).subList(0, 3));