优化
This commit is contained in:
+74
@@ -0,0 +1,74 @@
|
||||
package com.baiyue.warehouse.controller;
|
||||
|
||||
import com.baiyue.common.core.api.ResultCode;
|
||||
import com.baiyue.common.core.exception.BizException;
|
||||
import com.baiyue.warehouse.dto.WarehouseDetailResponse;
|
||||
import com.baiyue.warehouse.entity.WarehouseEntity;
|
||||
import com.baiyue.warehouse.service.WarehouseApplicationService;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
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.verifyNoInteractions;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
class InternalWarehouseControllerTest {
|
||||
private static final String INTERNAL_TOKEN = "test-internal-service-token";
|
||||
|
||||
private final WarehouseApplicationService service = mock(WarehouseApplicationService.class);
|
||||
private final InternalWarehouseController controller = new InternalWarehouseController();
|
||||
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
ReflectionTestUtils.setField(controller, "service", service);
|
||||
ReflectionTestUtils.setField(controller, "internalToken", INTERNAL_TOKEN);
|
||||
controller.initializeToken();
|
||||
}
|
||||
|
||||
@Test
|
||||
void returnsOnlyAnActivePlatformWarehouseToInternalCallers() {
|
||||
WarehouseEntity warehouse = new WarehouseEntity();
|
||||
warehouse.setId(200001L);
|
||||
warehouse.setTenantId(0L);
|
||||
warehouse.setWarehouseCode("CN-DONGGUAN-01");
|
||||
warehouse.setWarehouseName("东莞仓");
|
||||
warehouse.setWarehouseType("DOMESTIC");
|
||||
warehouse.setStatus("ACTIVE");
|
||||
when(service.activeDetail(0L, 200001L))
|
||||
.thenReturn(new WarehouseDetailResponse(warehouse, List.of(), List.of()));
|
||||
|
||||
var response = controller.active(INTERNAL_TOKEN, 0L, 200001L);
|
||||
|
||||
assertThat(response.data().warehouse().getTenantId()).isZero();
|
||||
assertThat(response.data().warehouse().getWarehouseCode()).isEqualTo("CN-DONGGUAN-01");
|
||||
assertThat(response.data().warehouse().getWarehouseType()).isEqualTo("DOMESTIC");
|
||||
assertThat(response.data().warehouse().getStatus()).isEqualTo("ACTIVE");
|
||||
verify(service).activeDetail(0L, 200001L);
|
||||
}
|
||||
|
||||
@Test
|
||||
void rejectsCustomerScopedWarehouseLookups() {
|
||||
assertThatThrownBy(() -> controller.active(INTERNAL_TOKEN, 10001L, 200001L))
|
||||
.isInstanceOf(BizException.class)
|
||||
.extracting(exception -> ((BizException) exception).getResultCode())
|
||||
.isEqualTo(ResultCode.BAD_REQUEST);
|
||||
|
||||
verifyNoInteractions(service);
|
||||
}
|
||||
|
||||
@Test
|
||||
void rejectsAnInvalidInternalTokenBeforeQueryingWarehouseData() {
|
||||
assertThatThrownBy(() -> controller.active("invalid-token", 0L, 200001L))
|
||||
.isInstanceOf(BizException.class)
|
||||
.extracting(exception -> ((BizException) exception).getResultCode())
|
||||
.isEqualTo(ResultCode.FORBIDDEN);
|
||||
|
||||
verifyNoInteractions(service);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user