fix(warehouse): reject invalid import files with validation code
This commit is contained in:
+10
@@ -23,6 +23,16 @@ import static org.mockito.Mockito.verify;
|
||||
class ExpressCompanyImportServiceTest {
|
||||
@MockBean private ExpressCompanyRepository repository;
|
||||
@Resource private ExpressCompanyImportService service;
|
||||
|
||||
@Test
|
||||
@DisplayName("空文件或错误扩展名整批拒绝且不写入")
|
||||
void shouldRejectMalformedWorkbookWithoutWrites() {
|
||||
var empty = service.importFile(0L, "express.xlsx", new byte[0]);
|
||||
var wrongExtension = service.importFile(0L, "express.xls", new byte[] {1, 2, 3});
|
||||
assertThat(empty.success()).isFalse();
|
||||
assertThat(wrongExtension.success()).isFalse();
|
||||
verify(repository, never()).insert(any());
|
||||
}
|
||||
@Test
|
||||
@DisplayName("标准模板通过整批校验后写入全部数据")
|
||||
void shouldImportValidWorkbookAfterFullValidation() throws Exception {
|
||||
|
||||
@@ -25,6 +25,16 @@ import static org.mockito.Mockito.verify;
|
||||
class PartnerImportServiceTest {
|
||||
@MockBean private PartnerRepository repository;
|
||||
@Resource private PartnerImportService service;
|
||||
|
||||
@Test
|
||||
@DisplayName("空文件或非 XLSX 整批拒绝且不写入")
|
||||
void shouldRejectMalformedWorkbookWithoutWrites() {
|
||||
PartnerImportResult empty = service.importFile(0L, "partners.xlsx", new byte[0]);
|
||||
PartnerImportResult nonXlsx = service.importFile(0L, "partners.csv", new byte[] {1, 2, 3});
|
||||
assertThat(empty.success()).isFalse();
|
||||
assertThat(nonXlsx.success()).isFalse();
|
||||
verify(repository, never()).insert(any());
|
||||
}
|
||||
@Test
|
||||
@DisplayName("标准模板支持多类型并写入服务端数据范围")
|
||||
void shouldImportValidMultiTypeRow() throws Exception {
|
||||
|
||||
@@ -31,6 +31,17 @@ class WarehouseImportServiceTest {
|
||||
@MockBean private WarehouseApplicationService warehouseService;
|
||||
@Resource private WarehouseImportService service;
|
||||
|
||||
@Test
|
||||
@DisplayName("空文件或损坏 XLSX 整批拒绝且不写入")
|
||||
void shouldRejectMalformedWorkbookWithoutWrites() {
|
||||
WarehouseImportResult empty = service.importFile(0L, "warehouses.xlsx", new byte[0], null);
|
||||
WarehouseImportResult corrupt = service.importFile(0L, "warehouses.xlsx", new byte[] {1, 2, 3}, null);
|
||||
assertThat(empty.success()).isFalse();
|
||||
assertThat(corrupt.success()).isFalse();
|
||||
verify(warehouseService, never()).create(any());
|
||||
verify(warehouseService, never()).update(org.mockito.ArgumentMatchers.anyLong(), org.mockito.ArgumentMatchers.anyLong(), any());
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("默认 CREATE_ONLY 只新增新仓库并返回预检分类")
|
||||
void shouldCreateOnlyNewWarehousesByDefault() throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user