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 @Test
void scanOutsideConfiguredWeightingRulesKeepsImageAndUsesLargestTierAddition() { void scanOutsideConfiguredWeightingRulesKeepsImageAndUsesActualDimensions() {
InboundMeasurementEntity measurement = measurement(30001L, "RECEIVED", 0); InboundMeasurementEntity measurement = measurement(30001L, "RECEIVED", 0);
when(repository.findItemByBoxCode(10001L, "RK-001#5-1")).thenReturn(null); when(repository.findItemByBoxCode(10001L, "RK-001#5-1")).thenReturn(null);
when(repository.findLatestEditableMeasurement(10001L, 70001L)).thenReturn(measurement); when(repository.findLatestEditableMeasurement(10001L, 70001L)).thenReturn(measurement);
@@ -183,7 +183,11 @@ class CartonMeasurementServiceTest {
assertThat(insertedItem.get().getSourceImageFileId()).isEqualTo(99001L); assertThat(insertedItem.get().getSourceImageFileId()).isEqualTo(99001L);
assertThat(insertedItem.get().getLengthCm()).isEqualByComparingTo("60.100"); assertThat(insertedItem.get().getLengthCm()).isEqualByComparingTo("60.100");
assertThat(insertedItem.get().getCalculationRuleVersion()) 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(); assertThat(insertedItem.get().getOverLimitWarning()).isNull();
verify(images, never()).delete(any(), any(Long.TYPE), any(Long.TYPE), any(Long.TYPE), any(Long.TYPE)); 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"); 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 @Test
void incompleteCustomerRulesAreRejectedBeforeMeasurementCalculation() { void incompleteCustomerRulesAreRejectedBeforeMeasurementCalculation() {
when(repository.findAll(10001L)).thenReturn(defaultRules(10001L).subList(0, 3)); when(repository.findAll(10001L)).thenReturn(defaultRules(10001L).subList(0, 3));