test updates
Project: http://git-wip-us.apache.org/repos/asf/bval/repo Commit: http://git-wip-us.apache.org/repos/asf/bval/commit/1eb57573 Tree: http://git-wip-us.apache.org/repos/asf/bval/tree/1eb57573 Diff: http://git-wip-us.apache.org/repos/asf/bval/diff/1eb57573 Branch: refs/heads/bv2 Commit: 1eb57573d70fbe251762535e322176e51c626128 Parents: f87be82 Author: Matt Benson <[email protected]> Authored: Wed Feb 21 15:00:56 2018 -0600 Committer: Matt Benson <[email protected]> Committed: Wed Feb 21 15:00:56 2018 -0600 ---------------------------------------------------------------------- .../org/apache/bval/jsr/BeanDescriptorTest.java | 3 + .../bval/jsr/CustomValidatorFactoryTest.java | 6 ++ .../java/org/apache/bval/jsr/Jsr303Test.java | 24 ++++-- .../org/apache/bval/jsr/ValidationTest.java | 2 + .../org/apache/bval/jsr/example/Engine.java | 8 +- .../jsr/extensions/MethodValidatorImplTest.java | 4 +- .../jsr/groups/GroupSequenceIsolationTest.java | 10 +-- .../bval/jsr/groups/GroupsComputerTest.java | 88 ++++++-------------- 8 files changed, 65 insertions(+), 80 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/bval/blob/1eb57573/bval-jsr/src/test/java/org/apache/bval/jsr/BeanDescriptorTest.java ---------------------------------------------------------------------- diff --git a/bval-jsr/src/test/java/org/apache/bval/jsr/BeanDescriptorTest.java b/bval-jsr/src/test/java/org/apache/bval/jsr/BeanDescriptorTest.java index d81f90a..5c949c1 100644 --- a/bval-jsr/src/test/java/org/apache/bval/jsr/BeanDescriptorTest.java +++ b/bval-jsr/src/test/java/org/apache/bval/jsr/BeanDescriptorTest.java @@ -42,6 +42,7 @@ import javax.validation.metadata.PropertyDescriptor; import javax.validation.metadata.Scope; import org.apache.bval.jsr.util.TestUtils; +import org.junit.Ignore; import org.junit.Test; /** @@ -120,6 +121,8 @@ public class BeanDescriptorTest extends ValidationTestBase { * interface group when querying the interface directly. */ @Test + // spec does not dictate this + @Ignore public void testNoImplicitGroupWhenQueryingInterfaceDirectly() { Set<ConstraintDescriptor<?>> nameDescriptors = validator.getConstraintsForClass(Person.class).getConstraintsForProperty("name").getConstraintDescriptors(); http://git-wip-us.apache.org/repos/asf/bval/blob/1eb57573/bval-jsr/src/test/java/org/apache/bval/jsr/CustomValidatorFactoryTest.java ---------------------------------------------------------------------- diff --git a/bval-jsr/src/test/java/org/apache/bval/jsr/CustomValidatorFactoryTest.java b/bval-jsr/src/test/java/org/apache/bval/jsr/CustomValidatorFactoryTest.java index 355d676..fca45d1 100644 --- a/bval-jsr/src/test/java/org/apache/bval/jsr/CustomValidatorFactoryTest.java +++ b/bval-jsr/src/test/java/org/apache/bval/jsr/CustomValidatorFactoryTest.java @@ -20,6 +20,7 @@ package org.apache.bval.jsr; import static org.hamcrest.CoreMatchers.isA; +import javax.validation.ClockProvider; import javax.validation.ConstraintValidatorFactory; import javax.validation.MessageInterpolator; import javax.validation.ParameterNameProvider; @@ -95,6 +96,11 @@ public class CustomValidatorFactoryTest { return null; } + @Override + public ClockProvider getClockProvider() { + return null; + } + } public static class NotAValidatorFactory { http://git-wip-us.apache.org/repos/asf/bval/blob/1eb57573/bval-jsr/src/test/java/org/apache/bval/jsr/Jsr303Test.java ---------------------------------------------------------------------- diff --git a/bval-jsr/src/test/java/org/apache/bval/jsr/Jsr303Test.java b/bval-jsr/src/test/java/org/apache/bval/jsr/Jsr303Test.java index 83f2427..2dfe493 100644 --- a/bval-jsr/src/test/java/org/apache/bval/jsr/Jsr303Test.java +++ b/bval-jsr/src/test/java/org/apache/bval/jsr/Jsr303Test.java @@ -31,8 +31,10 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Set; +import javax.validation.ConstraintValidator; import javax.validation.ConstraintViolation; import javax.validation.UnexpectedTypeException; +import javax.validation.constraints.Max; import javax.validation.metadata.BeanDescriptor; import javax.validation.metadata.ConstraintDescriptor; import javax.validation.metadata.ElementDescriptor; @@ -48,6 +50,7 @@ import org.apache.bval.jsr.example.NoValidatorTestEntity; import org.apache.bval.jsr.example.Second; import org.apache.bval.jsr.example.SizeTestEntity; import org.apache.bval.jsr.util.TestUtils; +import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; @@ -65,8 +68,10 @@ public class Jsr303Test extends ValidationTestBase { assertTrue(cons.getConstraintsForProperty("author").hasConstraints()); assertTrue(cons.getConstraintsForProperty("title").hasConstraints()); assertTrue(cons.getConstraintsForProperty("uselessField").hasConstraints()); - // cons.getConstraintsForProperty("unconstraintField") == null without Introspector - // cons.getConstraintsForProperty("unconstraintField") != null with Introspector + // cons.getConstraintsForProperty("unconstraintField") == null without + // Introspector + // cons.getConstraintsForProperty("unconstraintField") != null with + // Introspector assertTrue(cons.getConstraintsForProperty("unconstraintField") == null || !cons.getConstraintsForProperty("unconstraintField").hasConstraints()); assertNull(cons.getConstraintsForProperty("unknownField")); @@ -83,11 +88,13 @@ public class Jsr303Test extends ValidationTestBase { @Test(expected = IllegalArgumentException.class) public void testUnknownProperty() { - // tests for issue 22: validation of unknown field cause ValidationException + // tests for issue 22: validation of unknown field cause + // ValidationException validator.validateValue(Book.class, "unknownProperty", 4); } @Test(expected = IllegalArgumentException.class) + @Ignore public void testValidateNonCascadedRealNestedProperty() { validator.validateValue(IllustratedBook.class, "illustrator.firstName", "Edgar"); } @@ -95,7 +102,8 @@ public class Jsr303Test extends ValidationTestBase { @Test public void testMetadataAPI_Book() { assertNotNull(validator.getConstraintsForClass(Book.class)); - // not necessary for implementation correctness, but we'll test nevertheless: + // not necessary for implementation correctness, but we'll test + // nevertheless: assertSame(validator.getConstraintsForClass(Book.class), validator.getConstraintsForClass(Book.class)); BeanDescriptor bc = validator.getConstraintsForClass(Book.class); assertEquals(Book.class, bc.getElementClass()); @@ -135,8 +143,9 @@ public class Jsr303Test extends ValidationTestBase { validator.getConstraintsForClass(Address.class).getConstraintsForProperty("addressline1"); assertNotNull(desc); boolean found = false; + for (ConstraintDescriptor<?> each : desc.getConstraintDescriptors()) { - if (SizeValidatorForCharSequence.class.equals(each.getConstraintValidatorClasses().get(0))) { + if (each.getConstraintValidatorClasses().contains(SizeValidatorForCharSequence.class)) { assertTrue(each.getAttributes().containsKey("max")); assertEquals(30, each.getAttributes().get("max")); found = true; @@ -175,9 +184,8 @@ public class Jsr303Test extends ValidationTestBase { @Test public void testConstraintValidatorResolutionAlgorithm2() { thrown.expect(UnexpectedTypeException.class); - thrown.expectMessage("No validator could be found for type java.lang.Object. " - + "See: @Max at private java.lang.Object org.apache.bval.jsr.example." + "NoValidatorTestEntity.anything"); - + thrown.expectMessage(String.format("No compliant %s %s found for annotated element of type %s", + Max.class.getName(), ConstraintValidator.class.getSimpleName(), Object.class.getName())); NoValidatorTestEntity entity2 = new NoValidatorTestEntity(); validator.validate(entity2); } http://git-wip-us.apache.org/repos/asf/bval/blob/1eb57573/bval-jsr/src/test/java/org/apache/bval/jsr/ValidationTest.java ---------------------------------------------------------------------- diff --git a/bval-jsr/src/test/java/org/apache/bval/jsr/ValidationTest.java b/bval-jsr/src/test/java/org/apache/bval/jsr/ValidationTest.java index f6c7a4f..b696627 100644 --- a/bval-jsr/src/test/java/org/apache/bval/jsr/ValidationTest.java +++ b/bval-jsr/src/test/java/org/apache/bval/jsr/ValidationTest.java @@ -59,6 +59,7 @@ import org.apache.bval.jsr.example.Last; import org.apache.bval.jsr.example.RecursiveFoo; import org.apache.bval.jsr.util.TestUtils; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; /** @@ -73,6 +74,7 @@ public class ValidationTest extends ValidationTestBase { } @Test + @Ignore // per spec, fields should after all be validated on subclasses public void testAccessStrategies_field_method() { AccessTestBusinessObject o1 = new AccessTestBusinessObject("1"); assertTrue(validator.validate(o1).isEmpty()); http://git-wip-us.apache.org/repos/asf/bval/blob/1eb57573/bval-jsr/src/test/java/org/apache/bval/jsr/example/Engine.java ---------------------------------------------------------------------- diff --git a/bval-jsr/src/test/java/org/apache/bval/jsr/example/Engine.java b/bval-jsr/src/test/java/org/apache/bval/jsr/example/Engine.java index 4ee8101..b65d091 100644 --- a/bval-jsr/src/test/java/org/apache/bval/jsr/example/Engine.java +++ b/bval-jsr/src/test/java/org/apache/bval/jsr/example/Engine.java @@ -21,9 +21,11 @@ package org.apache.bval.jsr.example; import javax.validation.constraints.Pattern; public class Engine { - @Pattern.List({ - @Pattern(regexp = "^[A-Z0-9-]+$", flags = Pattern.Flag.CASE_INSENSITIVE, message = "must contain alphabetical characters only"), - @Pattern(regexp = "^....-....-....$", message = "must match ....-....-....") }) + // TODO See about Windows bug with container @ Field#getAnnotatedType() +// @Pattern.List({ + @Pattern(regexp = "^[A-Z0-9-]+$", flags = Pattern.Flag.CASE_INSENSITIVE, message = "must contain alphabetical characters only")//, + @Pattern(regexp = "^....-....-....$", message = "must match ....-....-....") +// }) public String serialNumber; } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/bval/blob/1eb57573/bval-jsr/src/test/java/org/apache/bval/jsr/extensions/MethodValidatorImplTest.java ---------------------------------------------------------------------- diff --git a/bval-jsr/src/test/java/org/apache/bval/jsr/extensions/MethodValidatorImplTest.java b/bval-jsr/src/test/java/org/apache/bval/jsr/extensions/MethodValidatorImplTest.java index 4740f5b..d05b47d 100644 --- a/bval-jsr/src/test/java/org/apache/bval/jsr/extensions/MethodValidatorImplTest.java +++ b/bval-jsr/src/test/java/org/apache/bval/jsr/extensions/MethodValidatorImplTest.java @@ -26,7 +26,7 @@ import javax.validation.constraints.Size; import javax.validation.executable.ExecutableValidator; import org.apache.bval.jsr.ApacheValidationProvider; -import org.apache.bval.jsr.ClassValidator; +import org.apache.bval.jsr.ValidatorImpl; import org.apache.bval.jsr.extensions.ExampleMethodService.Person; import org.junit.Ignore; @@ -53,7 +53,7 @@ public class MethodValidatorImplTest extends TestCase { public void testUnwrap() { Validator v = getValidator(); - ClassValidator cv = v.unwrap(ClassValidator.class); + ValidatorImpl cv = v.unwrap(ValidatorImpl.class); assertSame(v, cv); assertSame(v, v.unwrap(Validator.class)); assertNotNull(v.forExecutables()); http://git-wip-us.apache.org/repos/asf/bval/blob/1eb57573/bval-jsr/src/test/java/org/apache/bval/jsr/groups/GroupSequenceIsolationTest.java ---------------------------------------------------------------------- diff --git a/bval-jsr/src/test/java/org/apache/bval/jsr/groups/GroupSequenceIsolationTest.java b/bval-jsr/src/test/java/org/apache/bval/jsr/groups/GroupSequenceIsolationTest.java index 89489fb..17d6dba 100644 --- a/bval-jsr/src/test/java/org/apache/bval/jsr/groups/GroupSequenceIsolationTest.java +++ b/bval-jsr/src/test/java/org/apache/bval/jsr/groups/GroupSequenceIsolationTest.java @@ -52,16 +52,13 @@ public class GroupSequenceIsolationTest extends ValidationTestBase { public void testGroupSequencesInHierarchyClasses() { HolderWithNoGS h = new HolderWithNoGS(); - assertEquals(set("a1", "b2"), violationPaths(validator.validate(h))); - - h.a1 = "good"; assertEquals(set("a2", "b2"), violationPaths(validator.validate(h))); h.b2 = "good"; - assertEquals(set("a2", "b1"), violationPaths(validator.validate(h))); - - h.b1 = "good"; assertEquals(set("a2"), violationPaths(validator.validate(h))); + + h.a2 = "good"; + assertEquals(set("b1"), violationPaths(validator.validate(h))); } /** @@ -82,6 +79,7 @@ public class GroupSequenceIsolationTest extends ValidationTestBase { assertEquals(Collections.singleton("b1"), violationPaths(validator.validate(h))); } + @SafeVarargs private static <T> Set<T> set(T... elements) { return new HashSet<T>(Arrays.asList(elements)); } http://git-wip-us.apache.org/repos/asf/bval/blob/1eb57573/bval-jsr/src/test/java/org/apache/bval/jsr/groups/GroupsComputerTest.java ---------------------------------------------------------------------- diff --git a/bval-jsr/src/test/java/org/apache/bval/jsr/groups/GroupsComputerTest.java b/bval-jsr/src/test/java/org/apache/bval/jsr/groups/GroupsComputerTest.java index 13a49e1..4222339 100644 --- a/bval-jsr/src/test/java/org/apache/bval/jsr/groups/GroupsComputerTest.java +++ b/bval-jsr/src/test/java/org/apache/bval/jsr/groups/GroupsComputerTest.java @@ -18,22 +18,25 @@ */ package org.apache.bval.jsr.groups; -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; -import org.apache.bval.jsr.example.Address; -import org.apache.bval.jsr.example.First; -import org.apache.bval.jsr.example.Last; -import org.apache.bval.jsr.example.Second; +import static org.junit.Assert.assertEquals; -import javax.validation.GroupDefinitionException; -import javax.validation.ValidationException; -import javax.validation.groups.Default; +import java.util.Collections; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; +import javax.validation.GroupDefinitionException; +import javax.validation.ValidationException; +import javax.validation.groups.Default; + +import org.apache.bval.jsr.example.Address; +import org.apache.bval.jsr.example.First; +import org.apache.bval.jsr.example.Last; +import org.apache.bval.jsr.example.Second; +import org.junit.Before; +import org.junit.Test; + /** * GroupListComputer Tester. * @@ -41,79 +44,41 @@ import java.util.Set; * @version 1.0 * @since <pre>04/09/2009</pre> */ -public class GroupsComputerTest extends TestCase { +public class GroupsComputerTest { GroupsComputer groupsComputer; - public GroupsComputerTest(String name) { - super(name); - } - - @Override + @Before public void setUp() throws Exception { - super.setUp(); groupsComputer = new GroupsComputer(); } - @Override - public void tearDown() throws Exception { - super.tearDown(); - } - - public static Test suite() { - return new TestSuite(GroupsComputerTest.class); - } - + @Test(expected = ValidationException.class) public void testComputeGroupsNotAnInterface() { - Set<Class<?>> groups = new HashSet<Class<?>>(); - groups.add(String.class); - try { - groupsComputer.computeGroups(groups); - fail(); - } catch (ValidationException ex) { - - } + groupsComputer.computeGroups(Collections.singleton(String.class)); } + @Test(expected = IllegalArgumentException.class) public void testGroupChainForNull() { - try { groupsComputer.computeGroups((Class<?>[]) null); - fail(); - } catch (IllegalArgumentException ex) { - - } } + @Test public void testGroupChainForEmptySet() { - try { - groupsComputer.computeGroups(new HashSet<Class<?>>()); - fail(); - } catch (IllegalArgumentException ex) { - - } + assertEquals(Collections.singletonList(Group.DEFAULT), + groupsComputer.computeGroups(new HashSet<Class<?>>()).getGroups()); } + @Test(expected = GroupDefinitionException.class) public void testCyclicGroupSequences() { - try { - Set<Class<?>> groups = new HashSet<Class<?>>(); - groups.add(CyclicGroupSequence1.class); - groupsComputer.computeGroups(groups); - fail(); - } catch (GroupDefinitionException ex) { - - } + groupsComputer.computeGroups(Collections.singleton(CyclicGroupSequence1.class)); } + @Test(expected = GroupDefinitionException.class) public void testCyclicGroupSequence() { - try { - Set<Class<?>> groups = new HashSet<Class<?>>(); - groups.add(CyclicGroupSequence.class); - groupsComputer.computeGroups(groups); - fail(); - } catch (GroupDefinitionException ex) { - - } + groupsComputer.computeGroups(Collections.singleton(CyclicGroupSequence.class)); } + @Test public void testGroupDuplicates() { Set<Class<?>> groups = new HashSet<Class<?>>(); groups.add(First.class); @@ -136,6 +101,7 @@ public class GroupsComputerTest extends TestCase { assertEquals(2, chain.groups.size()); } + @Test public void testSequenceResolution() { Set<Class<?>> groups = new HashSet<Class<?>>(); groups.add(Address.Complete.class);
