暂存提交

This commit is contained in:
2026-08-19 16:24:02 +08:00
parent f5c4bf130a
commit 6acb6178da
354 changed files with 25000 additions and 198 deletions
@@ -0,0 +1,50 @@
package com.baiyue.lastleg.discard.controller;
import com.baiyue.common.security.AuthenticatedUser;
import com.baiyue.lastleg.discard.dto.CargoDiscardRequests;
import com.baiyue.lastleg.discard.service.CargoDiscardService;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.web.server.ResponseStatusException;
import java.util.Set;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.verify;
@ExtendWith(MockitoExtension.class)
class CargoDiscardControllerTest {
@Mock CargoDiscardService service;
private CargoDiscardController controller;
@BeforeEach
void setUp() {
controller = new CargoDiscardController();
ReflectionTestUtils.setField(controller, "service", service);
}
@Test
void reviewRequiresExplicitApprovalPermission() {
AuthenticatedUser user = user(Set.of());
ResponseStatusException error = assertThrows(ResponseStatusException.class, () -> controller.review(
user, null, "FH-1", new CargoDiscardRequests.Review("APPROVE", null)));
assertEquals(403, error.getStatusCode().value());
}
@Test
void merchantTenantComesFromTrustedIdentityWhenApproving() {
AuthenticatedUser user = user(Set.of(CargoDiscardService.APPROVAL_PERMISSION));
CargoDiscardRequests.Review request = new CargoDiscardRequests.Review("APPROVE", "ok");
controller.review(user, "999", "FH-1", request);
verify(service).review("100", "FH-1", "7", request);
}
private AuthenticatedUser user(Set<String> permissions) {
return new AuthenticatedUser(7L, 100L, 100L, 8L, "reviewer", "MERCHANT", "WEB", permissions);
}
}