aboutsummaryrefslogtreecommitdiffstats
path: root/common-parameters/src/test/java/org/onap/policy/common/parameters/TestBeanValidator.java
diff options
context:
space:
mode:
authorJim Hahn <jrh3@att.com>2021-01-06 11:15:45 -0500
committerJim Hahn <jrh3@att.com>2021-01-06 13:04:34 -0500
commit8208cc4b1d8855eee3fe59c7a832abccb2a67ed7 (patch)
tree13676da07d974013935ed2980f7b08a7917bf0c3 /common-parameters/src/test/java/org/onap/policy/common/parameters/TestBeanValidator.java
parentf9add40e0d87baff4ed56529bc61c31a577dc93d (diff)
Support annotations on parameterized types
It appears that java.validation allows validation annotations to be used on the type parameters of Collection and Map classes. Updated the validation code to support that. Once policy-models has been updated to use this approach, the original @Items and @Entries annotations will be deprecated. Issue-ID: POLICY-2648 Change-Id: Ic953be485ebafc9869f72407518f6549585353c9 Signed-off-by: Jim Hahn <jrh3@att.com>
Diffstat (limited to 'common-parameters/src/test/java/org/onap/policy/common/parameters/TestBeanValidator.java')
-rw-r--r--common-parameters/src/test/java/org/onap/policy/common/parameters/TestBeanValidator.java29
1 files changed, 24 insertions, 5 deletions
diff --git a/common-parameters/src/test/java/org/onap/policy/common/parameters/TestBeanValidator.java b/common-parameters/src/test/java/org/onap/policy/common/parameters/TestBeanValidator.java
index 5d539260..00ed972c 100644
--- a/common-parameters/src/test/java/org/onap/policy/common/parameters/TestBeanValidator.java
+++ b/common-parameters/src/test/java/org/onap/policy/common/parameters/TestBeanValidator.java
@@ -23,6 +23,7 @@ package org.onap.policy.common.parameters;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.assertTrue;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
@@ -30,7 +31,6 @@ import java.util.function.Consumer;
import lombok.Getter;
import org.junit.Before;
import org.junit.Test;
-import org.onap.policy.common.parameters.annotations.Entries;
import org.onap.policy.common.parameters.annotations.Items;
import org.onap.policy.common.parameters.annotations.Max;
import org.onap.policy.common.parameters.annotations.Min;
@@ -489,11 +489,10 @@ public class TestBeanValidator {
public void testVerMap() {
@Getter
class Container {
- @Entries(key = @Items(), value = @Items(min = {@Min(5)}))
- Map<String, Integer> items;
+ Map<String, @Min(5) Integer> items;
- // not a map - should not be checked
- @Entries(key = @Items(), value = @Items(min = {@Min(5)}))
+ // not a map
+ @NotBlank
String strValue;
String noAnnotations;
@@ -521,6 +520,26 @@ public class TestBeanValidator {
assertTrue(validator.validateTop(TOP, cont).isValid());
}
+ @Test
+ public void testGetEntryName() {
+ assertThat(validator.getEntryName(makeEntry(null, 0))).isEmpty();
+ assertThat(validator.getEntryName(makeEntry("", 0))).isEmpty();
+ assertThat(validator.getEntryName(makeEntry(STRING_VALUE, 0))).isEqualTo(STRING_VALUE);
+ }
+
+ /**
+ * Makes a Map entry with the given key and value.
+ *
+ * @param key desired key
+ * @param value desired value
+ * @return a new Map entry
+ */
+ private Map.Entry<String, Integer> makeEntry(String key, int value) {
+ HashMap<String, Integer> map = new HashMap<>();
+ map.put(key, value);
+ return map.entrySet().iterator().next();
+ }
+
private <T> void assertNumeric(String testName, T object, Consumer<Integer> setter, String fieldName,
String expectedText, int inside, int edge, int outside) {
setter.accept(inside);