暂存提交
This commit is contained in:
+69
@@ -0,0 +1,69 @@
|
||||
package com.baiyue.warehouse.controller;
|
||||
|
||||
import com.baiyue.common.core.exception.BizException;
|
||||
import com.baiyue.common.security.AuthenticatedUser;
|
||||
import com.baiyue.warehouse.entity.WarehouseLocationEntity;
|
||||
import com.baiyue.warehouse.service.WarehouseResourceService;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
class WarehouseResourceControllerTest {
|
||||
private final WarehouseResourceService service = mock(WarehouseResourceService.class);
|
||||
|
||||
@Test
|
||||
void merchantTenantAlwaysComesFromAuthenticatedUser() {
|
||||
MerchantWarehouseResourceController controller = merchantController();
|
||||
AuthenticatedUser merchant = user(10001L, "MERCHANT");
|
||||
WarehouseLocationEntity expected = new WarehouseLocationEntity();
|
||||
when(service.location(10001L, 20001L, 30001L)).thenReturn(expected);
|
||||
|
||||
controller.location(merchant, 20001L, 30001L);
|
||||
|
||||
verify(service).location(10001L, 20001L, 30001L);
|
||||
}
|
||||
|
||||
@Test
|
||||
void platformApiRejectsNonPlatformIdentity() {
|
||||
PlatformWarehouseResourceController controller = platformController();
|
||||
|
||||
assertThatThrownBy(() -> controller.location(user(10001L, "MERCHANT"),
|
||||
10002L, 20001L, 30001L))
|
||||
.isInstanceOf(BizException.class)
|
||||
.hasMessageContaining("平台端");
|
||||
}
|
||||
|
||||
@Test
|
||||
void platformApiUsesExplicitTargetTenant() {
|
||||
PlatformWarehouseResourceController controller = platformController();
|
||||
WarehouseLocationEntity expected = new WarehouseLocationEntity();
|
||||
when(service.location(10002L, 20001L, 30001L)).thenReturn(expected);
|
||||
|
||||
controller.location(user(1L, "PLATFORM"), 10002L, 20001L, 30001L);
|
||||
|
||||
verify(service).location(10002L, 20001L, 30001L);
|
||||
}
|
||||
|
||||
private static AuthenticatedUser user(long customerId, String appCode) {
|
||||
return new AuthenticatedUser(1L, customerId, customerId, 1L,
|
||||
"tester", appCode, "WEB", Set.of());
|
||||
}
|
||||
|
||||
private MerchantWarehouseResourceController merchantController() {
|
||||
MerchantWarehouseResourceController controller = new MerchantWarehouseResourceController();
|
||||
ReflectionTestUtils.setField(controller, "service", service);
|
||||
return controller;
|
||||
}
|
||||
|
||||
private PlatformWarehouseResourceController platformController() {
|
||||
PlatformWarehouseResourceController controller = new PlatformWarehouseResourceController();
|
||||
ReflectionTestUtils.setField(controller, "service", service);
|
||||
return controller;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user