暂存提交
This commit is contained in:
+50
@@ -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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user