feat: add enum dto APIs and batch save

This commit is contained in:
2026-05-20 23:25:30 +08:00
parent 16f9a325d7
commit 7188dd49b5
20 changed files with 571 additions and 24 deletions

View File

@@ -0,0 +1,68 @@
package com.bruce.common.enumconfig;
import com.bruce.common.domain.entity.SysEnum;
import com.bruce.common.dto.request.SysEnumBatchSaveRequest;
import com.bruce.common.service.impl.SysEnumServiceImpl;
import org.junit.jupiter.api.Test;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertThrows;
class SysEnumBatchSaveValidationTests {
@Test
void batchSaveShouldRejectDuplicateValuesInsideRequest() {
SysEnumServiceImpl service = new SysEnumServiceImpl();
SysEnumBatchSaveRequest request = new SysEnumBatchSaveRequest();
request.setCatalog("common");
request.setType("enable_status");
request.setItems(List.of(
item("启用", 1),
item("可用", 1)
));
assertThrows(IllegalArgumentException.class, () -> service.validateBatchSaveRequest(request, List.of()));
}
@Test
void batchSaveShouldRejectDuplicateValuesFromExistingEnums() {
SysEnumServiceImpl service = new SysEnumServiceImpl();
SysEnum existing = new SysEnum();
existing.setCatalog("common");
existing.setType("enable_status");
existing.setValue(1);
SysEnumBatchSaveRequest request = new SysEnumBatchSaveRequest();
request.setCatalog("common");
request.setType("enable_status");
request.setItems(List.of(item("启用", 1)));
assertThrows(
IllegalArgumentException.class,
() -> service.validateBatchSaveRequest(request, List.of(existing))
);
}
@Test
void batchSaveShouldAcceptUniqueValues() {
SysEnumServiceImpl service = new SysEnumServiceImpl();
SysEnumBatchSaveRequest request = new SysEnumBatchSaveRequest();
request.setCatalog("common");
request.setType("enable_status");
request.setItems(List.of(
item("禁用", 0),
item("启用", 1)
));
assertDoesNotThrow(() -> service.validateBatchSaveRequest(request, List.of()));
}
private SysEnumBatchSaveRequest.Item item(String name, Integer value) {
SysEnumBatchSaveRequest.Item item = new SysEnumBatchSaveRequest.Item();
item.setName(name);
item.setValue(value);
return item;
}
}