diff options
author | Jim Hahn <jrh3@att.com> | 2021-01-06 11:15:45 -0500 |
---|---|---|
committer | Jim Hahn <jrh3@att.com> | 2021-01-06 13:04:34 -0500 |
commit | 8208cc4b1d8855eee3fe59c7a832abccb2a67ed7 (patch) | |
tree | 13676da07d974013935ed2980f7b08a7917bf0c3 /common-parameters/src/test/java/org/onap/policy/common/parameters/TestBeanValidator.java | |
parent | f9add40e0d87baff4ed56529bc61c31a577dc93d (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.java | 29 |
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); |