优化提交

This commit is contained in:
2026-09-14 09:58:30 +08:00
parent 5ffd6c0118
commit 8cf7c4b9c9
93 changed files with 2945 additions and 188 deletions
@@ -0,0 +1,35 @@
package com.baiyue.lastleg.transfer.controller;
import com.baiyue.common.security.AuthenticatedUser;
import com.baiyue.lastleg.security.OverseasPermissions;
import com.baiyue.lastleg.transfer.dto.WarehouseTransferRequests;
import org.junit.jupiter.api.Test;
import org.springframework.security.access.prepost.PreAuthorize;
import static org.assertj.core.api.Assertions.assertThat;
class WarehouseTransferControllerPermissionTest {
@Test
void readEndpointsAndReviewUseTheirDedicatedAuthorities() throws Exception {
PreAuthorize page = WarehouseTransferController.class
.getMethod("page", AuthenticatedUser.class, String.class, WarehouseTransferRequests.Query.class)
.getAnnotation(PreAuthorize.class);
PreAuthorize detail = WarehouseTransferController.class
.getMethod("detail", AuthenticatedUser.class, String.class, String.class)
.getAnnotation(PreAuthorize.class);
PreAuthorize cartonLabel = WarehouseTransferController.class
.getMethod("cartonLabel", AuthenticatedUser.class, String.class, String.class)
.getAnnotation(PreAuthorize.class);
PreAuthorize review = WarehouseTransferController.class
.getMethod("review", AuthenticatedUser.class, String.class, String.class,
WarehouseTransferRequests.Review.class)
.getAnnotation(PreAuthorize.class);
String readAuthority = "hasAuthority('" + OverseasPermissions.LAST_MILE_ORDER_LIST + "')";
assertThat(page.value()).isEqualTo(readAuthority);
assertThat(detail.value()).isEqualTo(readAuthority);
assertThat(cartonLabel.value()).isEqualTo(readAuthority);
assertThat(review.value()).isEqualTo(
"hasAuthority('" + OverseasPermissions.WAREHOUSE_TRANSFER_APPROVE + "')");
}
}
@@ -0,0 +1,38 @@
package com.baiyue.lastleg.transfer.dto;
import jakarta.validation.Validation;
import org.junit.jupiter.api.Test;
import java.math.BigDecimal;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
class WarehouseTransferPalletValidationTest {
@Test
void palletAcceptsDirectTotalVolumeAndWeightWithoutCartonDimensions() {
try (var factory = Validation.buildDefaultValidatorFactory()) {
var validator = factory.getValidator();
var pallet = new WarehouseTransferRequests.Pallet("PALLET-1", 5,
new BigDecimal("1.250000"), new BigDecimal("420.50"),
List.of(new WarehouseTransferRequests.PalletItem(101L, 5)));
assertTrue(validator.validate(pallet).isEmpty());
assertEquals(new BigDecimal("1.250000"), pallet.volumeCbm());
assertEquals(new BigDecimal("420.50"), pallet.grossWeightKg());
}
}
@Test
void palletRejectsNonPositiveTotalVolume() {
try (var factory = Validation.buildDefaultValidatorFactory()) {
var validator = factory.getValidator();
var pallet = new WarehouseTransferRequests.Pallet("PALLET-1", 5,
BigDecimal.ZERO, new BigDecimal("420.50"),
List.of(new WarehouseTransferRequests.PalletItem(101L, 5)));
assertEquals(1, validator.validate(pallet).size());
}
}
}