Files
common_agent/src/test/java/com/bruce/common/enumconfig/SysEnumBatchSaveValidationTests.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;
}
}