This commit is contained in:
2026-08-07 14:46:55 +08:00
parent 830575cc92
commit b0ea1a0c5c
109 changed files with 5774 additions and 339 deletions
@@ -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);
}
}