refactor: 重构 MapValidator 的测试代码

This commit is contained in:
zhouxy108 2025-06-08 04:49:30 +08:00
parent 12a5740dd6
commit b6d47f0d00

View File

@ -19,6 +19,7 @@ package xyz.zhouxy.plusone.map.validator;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -58,7 +59,7 @@ class MapValidatorTests {
params.put(ParamsValidator.STRING_PROPERTY2, "Foo"); params.put(ParamsValidator.STRING_PROPERTY2, "Foo");
assertAll(() -> { assertAll(() -> {
Map<String, Object> validatedParams = validator.validateAndCopy(params); Map<String, Object> validatedParams = validator.validateAndCopy(params);
assertEquals(ParamsValidator.keySet(), validatedParams.keySet()); assertEquals(ImmutableSet.copyOf(ParamsValidator.reservedProperties()), validatedParams.keySet());
assertEquals(true, validatedParams.get(ParamsValidator.BOOL_PROPERTY)); assertEquals(true, validatedParams.get(ParamsValidator.BOOL_PROPERTY));
assertEquals(Integer.MAX_VALUE, validatedParams.get(ParamsValidator.INT_PROPERTY)); assertEquals(Integer.MAX_VALUE, validatedParams.get(ParamsValidator.INT_PROPERTY));
@ -103,11 +104,14 @@ class ParamsValidator extends MapValidator<String, Object> {
public static final String OBJECT_PROPERTY = "objectProperty"; public static final String OBJECT_PROPERTY = "objectProperty";
public static final String STRING_LIST_PROPERTY = "stringListProperty"; public static final String STRING_LIST_PROPERTY = "stringListProperty";
private static final String[] RESERVED_PROPERTIES = {
BOOL_PROPERTY, INT_PROPERTY, LONG_PROPERTY, DOUBLE_PROPERTY, STRING_PROPERTY,
DATE_TIME_PROPERTY, OBJECT_PROPERTY, STRING_LIST_PROPERTY };
public static final ParamsValidator INSTANCE = new ParamsValidator(); public static final ParamsValidator INSTANCE = new ParamsValidator();
private ParamsValidator() { private ParamsValidator() {
super(new String[] { BOOL_PROPERTY, INT_PROPERTY, LONG_PROPERTY, DOUBLE_PROPERTY, STRING_PROPERTY, super(RESERVED_PROPERTIES);
DATE_TIME_PROPERTY, OBJECT_PROPERTY, STRING_LIST_PROPERTY });
ruleForBool(BOOL_PROPERTY) ruleForBool(BOOL_PROPERTY)
.notNull(); .notNull();
ruleForInt(INT_PROPERTY) ruleForInt(INT_PROPERTY)
@ -130,8 +134,7 @@ class ParamsValidator extends MapValidator<String, Object> {
"'stringProperty' must be equal to 'stringProperty2'."); "'stringProperty' must be equal to 'stringProperty2'.");
} }
public static Set<String> keySet() { public static String[] reservedProperties() {
return ImmutableSet.of(BOOL_PROPERTY, INT_PROPERTY, LONG_PROPERTY, DOUBLE_PROPERTY, STRING_PROPERTY, return Arrays.copyOf(RESERVED_PROPERTIES, RESERVED_PROPERTIES.length);
DATE_TIME_PROPERTY, OBJECT_PROPERTY, STRING_LIST_PROPERTY);
} }
} }