69 lines
2.3 KiB
Java
69 lines
2.3 KiB
Java
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;
|
|
}
|
|
}
|