<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
- <scope>test</scope>
</dependency>
<dependency>
<groupId>org.yaml</groupId>
package org.onap.policy.common.parameters;
+import com.google.gson.annotations.SerializedName;
import java.lang.annotation.Annotation;
import java.lang.reflect.AnnotatedParameterizedType;
import java.lang.reflect.AnnotatedType;
*/
private final Field field;
+ /**
+ * Name of the field when serialized (i.e., as the client would know it).
+ */
+ private final String serializedName;
+
/**
* Method to retrieve the field's value.
*/
String fieldName = field.getName();
if (fieldName.contains("$")) {
+ serializedName = fieldName;
return;
}
+ SerializedName serAnnot = field.getAnnotation(SerializedName.class);
+ serializedName = (serAnnot != null ? serAnnot.value() : fieldName);
+
validator.addValidators(this);
addListValidator(validator);
addMapValidator(validator);
// get the value
Object value = getValue(object, accessor);
- validateValue(result, field.getName(), value);
+ validateValue(result, serializedName, value);
}
/**
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import com.google.gson.annotations.SerializedName;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.util.List;
@Getter
private Map<@NotBlank String, @Min(1) Integer> intMap;
+ @SerializedName("annotated_key_map")
@Getter
private Map<@NotBlank String, Integer> annotatedKeyMap;
annotatedKeyMap = Map.of(" ", -10);
validator.validateField(result, this);
- assertThat(result.getResult()).contains("blank").doesNotContain("-10");
+ assertThat(result.getResult()).contains("annotated_key_map", "blank").doesNotContain("-10");
// only the value is annotated
validator = new FieldValidator(bean, TestFieldValidator.class, getField("annotatedValueMap"));
annotatedValueMap = Map.of(" ", -10);
validator.validateField(result, this);
- assertThat(result.getResult()).doesNotContain("blank").contains("\" \"", "-10");
+ assertThat(result.getResult()).doesNotContain("blank").contains("annotatedValueMap", "\" \"", "-10");
}
@Test