优化
This commit is contained in:
+1
-1
@@ -12,7 +12,7 @@ class WarehouseSchemaContractTest {
|
||||
@Test
|
||||
void shouldHandleCase01() throws IOException {
|
||||
String sql = read("warehouse.sql");
|
||||
assertColumns(sql, "wh_warehouse", "warehouse_code", "warehouse_name", "warehouse_type", "country_code",
|
||||
assertColumns(sql, "wh_warehouse", "warehouse_code", "internal_code", "warehouse_name", "warehouse_type", "country_code",
|
||||
"timezone", "contact_name", "contact_phone", "contact_email", "status", "remark");
|
||||
assertColumns(sql, "wh_warehouse_address", "warehouse_id", "address_type", "country_code", "state_province",
|
||||
"city", "district", "postal_code", "address_line1", "address_line2", "latitude", "longitude");
|
||||
|
||||
+19
-4
@@ -61,7 +61,7 @@ class WarehouseApplicationServiceTest {
|
||||
|
||||
@Test
|
||||
void createsDomesticWarehouseWithPlatformDefaults() {
|
||||
WarehouseRequests.SaveRequest request = new WarehouseRequests.SaveRequest(null, "CN-SZX-01", "深圳作业仓",
|
||||
WarehouseRequests.SaveRequest request = new WarehouseRequests.SaveRequest(null, "CN-SZX-01", null, "深圳作业仓",
|
||||
null, null, null, "张三", "13800138000", null, null, null,
|
||||
new WarehouseRequests.AddressRequest(null, null, "广东省", "深圳市", "南山区",
|
||||
"518000", "前海路 1 号", null, null, null),
|
||||
@@ -86,7 +86,7 @@ class WarehouseApplicationServiceTest {
|
||||
|
||||
@Test
|
||||
void fbaWarehouseUsesConfirmedStateTimezoneAndDoesNotCreateCapabilities() {
|
||||
WarehouseRequests.SaveRequest request = new WarehouseRequests.SaveRequest(null, "FBA-LAX9", "LAX9",
|
||||
WarehouseRequests.SaveRequest request = new WarehouseRequests.SaveRequest(null, "FBA-LAX9", "154", "LAX9",
|
||||
"FBA", "US", null, null, null, null, null, null,
|
||||
new WarehouseRequests.AddressRequest(null, "US", "CA", "Redlands", null,
|
||||
"92374", "Amazon Fulfillment Center", null, null, null),
|
||||
@@ -99,13 +99,28 @@ class WarehouseApplicationServiceTest {
|
||||
verify(repository, never()).insertCapability(any());
|
||||
assertThat(warehouse.getValue().getTenantId()).isZero();
|
||||
assertThat(warehouse.getValue().getWarehouseType()).isEqualTo("FBA");
|
||||
assertThat(warehouse.getValue().getInternalCode()).isEqualTo("154");
|
||||
assertThat(warehouse.getValue().getTimezone()).isEqualTo("UTC-8");
|
||||
assertThat(warehouse.getValue().getStatus()).isEqualTo("ACTIVE");
|
||||
}
|
||||
|
||||
@Test
|
||||
void rejectsInternalCodeForNonFbaWarehouse() {
|
||||
WarehouseRequests.SaveRequest request = new WarehouseRequests.SaveRequest(null, "CN-SZX-01", "154", "深圳作业仓",
|
||||
"DOMESTIC", "CN", "UTC+8", null, null, null, null, null,
|
||||
new WarehouseRequests.AddressRequest(null, "CN", "广东省", "深圳市", null,
|
||||
"518000", "前海路 1 号", null, null, null),
|
||||
null);
|
||||
|
||||
assertThatThrownBy(() -> service.create(request)).isInstanceOf(BizException.class)
|
||||
.extracting(exception -> ((BizException) exception).getResultCode())
|
||||
.isEqualTo(ResultCode.VALIDATION_FAILED);
|
||||
verify(repository, never()).insertWarehouse(any());
|
||||
}
|
||||
|
||||
@Test
|
||||
void fbaWarehouseInMultiTimezoneStateRequiresExplicitTimezone() {
|
||||
WarehouseRequests.SaveRequest request = new WarehouseRequests.SaveRequest(null, "FBA-DFW", "DFW",
|
||||
WarehouseRequests.SaveRequest request = new WarehouseRequests.SaveRequest(null, "FBA-DFW", null, "DFW",
|
||||
"FBA", "US", null, null, null, null, null, null,
|
||||
new WarehouseRequests.AddressRequest(null, "US", "TX", "Dallas", null,
|
||||
"75201", "Amazon", null, null, null),
|
||||
@@ -119,7 +134,7 @@ class WarehouseApplicationServiceTest {
|
||||
|
||||
@Test
|
||||
void createsOverseasPartnerWarehouseAsPlatformPublicMasterData() {
|
||||
WarehouseRequests.SaveRequest request = new WarehouseRequests.SaveRequest(null, "US-PARTNER-LAX", "洛杉矶合作仓",
|
||||
WarehouseRequests.SaveRequest request = new WarehouseRequests.SaveRequest(null, "US-PARTNER-LAX", null, "洛杉矶合作仓",
|
||||
"OVERSEAS_PARTNER", "US", "UTC-8", "Alex", "+1-213-555-0100", null, null, null,
|
||||
new WarehouseRequests.AddressRequest(null, "US", "CA", "Los Angeles", null,
|
||||
"90001", "123 Partner Ave", null, null, null),
|
||||
|
||||
+10
-9
@@ -46,8 +46,8 @@ class WarehouseImportServiceTest {
|
||||
@DisplayName("默认 CREATE_ONLY 只新增新仓库并返回预检分类")
|
||||
void shouldCreateOnlyNewWarehousesByDefault() throws Exception {
|
||||
byte[] file = withRows(service.template(), new String[][] {
|
||||
{"CN-SZX-01", "深圳作业仓", "", "", "广东省", "深圳市", "南山区", "前海路 1 号", "518000", "", "", "张三", "13800138000", "", ""},
|
||||
{"FBA-LAX9", "", "FBA", "US", "CA", "Redlands", "", "Amazon FC", "92374", "", "", "", "", "", ""}
|
||||
{"CN-SZX-01", "", "深圳作业仓", "", "", "广东省", "深圳市", "南山区", "前海路 1 号", "518000", "", "", "张三", "13800138000", "", ""},
|
||||
{"FBA-LAX9", "154", "", "FBA", "US", "CA", "Redlands", "", "Amazon FC", "92374", "", "", "", "", "", ""}
|
||||
});
|
||||
|
||||
WarehouseImportResult result = service.importFile(0L, "warehouses.xlsx", file, null);
|
||||
@@ -61,6 +61,7 @@ class WarehouseImportServiceTest {
|
||||
verify(warehouseService, org.mockito.Mockito.times(2)).create(captor.capture());
|
||||
assertThat(captor.getAllValues().get(0).tenantId()).isZero();
|
||||
assertThat(captor.getAllValues().get(1).warehouseType()).isEqualTo("FBA");
|
||||
assertThat(captor.getAllValues().get(1).internalCode()).isEqualTo("154");
|
||||
assertThat(captor.getAllValues().get(1).warehouseName()).isEqualTo("FBA-LAX9");
|
||||
}
|
||||
|
||||
@@ -68,7 +69,7 @@ class WarehouseImportServiceTest {
|
||||
@DisplayName("海外合作仓类型可通过批量导入进入公共仓库主数据")
|
||||
void shouldImportOverseasPartnerWarehouse() throws Exception {
|
||||
byte[] file = withRows(service.template(), new String[][] {
|
||||
{"US-PARTNER-LAX", "洛杉矶合作仓", "OVERSEAS_PARTNER", "US", "CA", "Los Angeles", "", "123 Partner Ave", "90001", "UTC-8", "", "", "", "", ""}
|
||||
{"US-PARTNER-LAX", "", "洛杉矶合作仓", "OVERSEAS_PARTNER", "US", "CA", "Los Angeles", "", "123 Partner Ave", "90001", "UTC-8", "", "", "", "", ""}
|
||||
});
|
||||
|
||||
WarehouseImportResult result = service.importFile(0L, "warehouses.xlsx", file, null);
|
||||
@@ -84,8 +85,8 @@ class WarehouseImportServiceTest {
|
||||
@DisplayName("任一行错误时整批零写入")
|
||||
void shouldRejectWholeBatchWhenAnyRowInvalid() throws Exception {
|
||||
byte[] file = withRows(service.template(), new String[][] {
|
||||
{"FBA-DFW", "DFW", "FBA", "US", "TX", "Dallas", "", "Amazon FC", "75201", "", "", "", "", "", ""},
|
||||
{"CN-SZX-01", "深圳作业仓", "", "", "广东省", "深圳市", "", "前海路 1 号", "", "", "", "", "", "", ""}
|
||||
{"FBA-DFW", "155", "DFW", "FBA", "US", "TX", "Dallas", "", "Amazon FC", "75201", "", "", "", "", "", ""},
|
||||
{"CN-SZX-01", "", "深圳作业仓", "", "", "广东省", "深圳市", "", "前海路 1 号", "", "", "", "", "", "", ""}
|
||||
});
|
||||
|
||||
WarehouseImportResult result = service.importFile(0L, "warehouses.xlsx", file, null);
|
||||
@@ -122,7 +123,7 @@ class WarehouseImportServiceTest {
|
||||
when(repository.findByCode(0L, "CN-SZX-01")).thenReturn(existing);
|
||||
when(repository.findAddresses(0L, 9L)).thenReturn(java.util.List.of(address));
|
||||
byte[] file = withRows(service.template(), new String[][] {
|
||||
{"CN-SZX-01", "深圳作业仓", "", "", "广东省", "深圳市", "", "新地址", "", "", "ACTIVE", "新联系人", "新电话", "new@example.com", "新备注"}
|
||||
{"CN-SZX-01", "", "深圳作业仓", "", "", "广东省", "深圳市", "", "新地址", "", "", "ACTIVE", "新联系人", "新电话", "new@example.com", "新备注"}
|
||||
});
|
||||
|
||||
WarehouseImportResult result = service.importFile(0L, "warehouses.xlsx", file, ImportMode.UPSERT);
|
||||
@@ -141,8 +142,8 @@ class WarehouseImportServiceTest {
|
||||
@DisplayName("dryRun 只返回预检分类和计数,不写入仓库")
|
||||
void shouldOnlyPreviewWhenDryRun() throws Exception {
|
||||
byte[] file = withRows(service.template(), new String[][] {
|
||||
{"CN-SZX-01", "深圳作业仓", "", "", "广东省", "深圳市", "南山区", "前海路 1 号", "518000", "", "", "张三", "13800138000", "", ""},
|
||||
{"FBA-LAX9", "LAX9", "FBA", "US", "CA", "Redlands", "", "Amazon FC", "92374", "", "", "", "", "", ""}
|
||||
{"CN-SZX-01", "", "深圳作业仓", "", "", "广东省", "深圳市", "南山区", "前海路 1 号", "518000", "", "", "张三", "13800138000", "", ""},
|
||||
{"FBA-LAX9", "154", "LAX9", "FBA", "US", "CA", "Redlands", "", "Amazon FC", "92374", "", "", "", "", "", ""}
|
||||
});
|
||||
|
||||
WarehouseImportResult result = service.importFile(0L, "warehouses.xlsx", file, null, true);
|
||||
@@ -175,7 +176,7 @@ class WarehouseImportServiceTest {
|
||||
when(repository.findByCode(0L, "CN-SZX-01")).thenReturn(existing);
|
||||
when(repository.findAddresses(0L, 9L)).thenReturn(java.util.List.of(address));
|
||||
byte[] file = withRows(service.template(), new String[][] {
|
||||
{"CN-SZX-01", "深圳作业仓", "", "", "广东省", "深圳市", "", "新地址", "", "", "", "", "", "", ""}
|
||||
{"CN-SZX-01", "", "深圳作业仓", "", "", "广东省", "深圳市", "", "新地址", "", "", "", "", "", "", ""}
|
||||
});
|
||||
|
||||
WarehouseImportResult result = service.importFile(0L, "warehouses.xlsx", file, ImportMode.CREATE_ONLY);
|
||||
|
||||
Reference in New Issue
Block a user