@Test @SpecAssertion(section = Sections.CONSTRAINTMETADATA_EXECUTABLEDESCRIPTOR, id = "c") public void testGetCrossParameterDescriptorForConstructor() { ConstructorDescriptor descriptor = Executables.crossParameterConstrainedConstructor(); assertNotNull( descriptor.getCrossParameterDescriptor(), "Cross-parameter descriptor should not be null" ); }
@Test @SpecAssertion(section = Sections.CONSTRAINTMETADATA_EXECUTABLEDESCRIPTOR, id = "c") public void testGetCrossParameterDescriptorForConstructorWithoutCrossParameterConstraints() { ConstructorDescriptor descriptor = Executables.returnValueConstrainedConstructor(); assertNotNull( descriptor.getCrossParameterDescriptor(), "Cross-parameter descriptor should not be null" ); }
@Test @SpecAssertion(section = Sections.CONSTRAINTMETADATA_ELEMENTDESCRIPTOR, id = "c") public void testHasConstraintsForConstructor() { CrossParameterDescriptor descriptor = Executables.crossParameterConstrainedConstructor() .getCrossParameterDescriptor(); assertTrue( descriptor.hasConstraints(), "Should have constraints" ); }
@Test @SpecAssertion(section = Sections.CONSTRAINTMETADATA_ELEMENTDESCRIPTOR, id = "c") public void testHasConstraintsForConstructorWithoutCrossParameterConstraints() { CrossParameterDescriptor descriptor = Executables.returnValueConstrainedConstructor() .getCrossParameterDescriptor(); assertFalse( descriptor.hasConstraints(), "Should have no constraints" ); }
@Test @SpecAssertion(section = Sections.CONSTRAINTMETADATA_ELEMENTDESCRIPTOR, id = "b") @SpecAssertion(section = Sections.CONSTRAINTMETADATA_EXECUTABLEDESCRIPTOR, id = "c") public void testGetConstraintsForConstructorWithoutCrossParameterConstraints() { CrossParameterDescriptor descriptor = Executables.returnValueConstrainedConstructor() .getCrossParameterDescriptor(); Set<ConstraintDescriptor<?>> constraints = descriptor.getConstraintDescriptors(); assertEquals( constraints.size(), 0, "Should have no constraints" ); }
@Test @SpecAssertion(section = Sections.CONSTRAINTMETADATA_ELEMENTDESCRIPTOR, id = "b") @SpecAssertion(section = Sections.CONSTRAINTMETADATA_EXECUTABLEDESCRIPTOR, id = "c") public void testGetConstraintsForConstructor() { CrossParameterDescriptor descriptor = Executables.crossParameterConstrainedConstructor() .getCrossParameterDescriptor(); Set<ConstraintDescriptor<?>> constraints = descriptor.getConstraintDescriptors(); assertEquals( constraints.size(), 1, "Should have constraints" ); ConstraintDescriptor<?> constraint = constraints.iterator().next(); assertEquals( constraint.getAnnotation().annotationType(), MyCrossParameterConstraint.class, "Wrong constraint type" ); }
@Test @SpecAssertion(section = Sections.CONSTRAINTMETADATA_ELEMENTDESCRIPTOR, id = "d") @SpecAssertion(section = Sections.CONSTRAINTMETADATA_EXECUTABLEDESCRIPTOR, id = "c") public void testFindConstraintsForConstructor() { CrossParameterDescriptor descriptor = Executables.crossParameterConstrainedConstructor() .getCrossParameterDescriptor(); Set<ConstraintDescriptor<?>> constraints = descriptor.findConstraints().getConstraintDescriptors(); assertEquals( constraints.size(), 1, "Should have constraints" ); ConstraintDescriptor<?> constraint = constraints.iterator().next(); assertEquals( constraint.getAnnotation().annotationType(), MyCrossParameterConstraint.class, "Wrong constraint type" ); }
@Test @SpecAssertion(section = Sections.CONSTRAINTMETADATA_ELEMENTDESCRIPTOR, id = "d") @SpecAssertion(section = Sections.CONSTRAINTMETADATA_EXECUTABLEDESCRIPTOR, id = "c") public void testFindConstraintsForConstructorWithoutCrossParameterConstraints() { CrossParameterDescriptor descriptor = Executables.returnValueConstrainedConstructor() .getCrossParameterDescriptor(); Set<ConstraintDescriptor<?>> constraints = descriptor.findConstraints().getConstraintDescriptors(); assertEquals( constraints.size(), 0, "Should have no constraints" ); } }
@Test @SpecAssertions({ @SpecAssertion(section = Sections.XML_MAPPING_CONSTRAINTDECLARATIONINXML_CONSTRUCTORLEVELOVERRIDING, id = "c"), @SpecAssertion(section = Sections.XML_MAPPING_CONSTRAINTDECLARATIONINXML_CONSTRUCTORLEVELOVERRIDING, id = "f"), @SpecAssertion(section = Sections.XML_MAPPING_CONSTRAINTDECLARATIONINXML_CONSTRUCTORLEVELOVERRIDING, id = "j") }) public void testConstructorCrossParameterConstraint() throws Exception { ConstructorDescriptor descriptor = TestUtil.getConstructorDescriptor( CustomerRepository.class, CustomerRepository.class, CustomerRepository.class ); assertNotNull( descriptor, "the specified constructor should be configured in xml" ); CrossParameterDescriptor crossParameterDescriptor = descriptor.getCrossParameterDescriptor(); assertTrue( crossParameterDescriptor.hasConstraints() ); Set<ConstraintDescriptor<?>> constraintDescriptors = crossParameterDescriptor.getConstraintDescriptors(); assertTrue( constraintDescriptors.size() == 1 ); ConstraintDescriptor<?> constraintDescriptor = constraintDescriptors.iterator().next(); assertEquals( constraintDescriptor.getAnnotation().annotationType(), CrossRepositoryConstraint.class, "Unexpected constraint type" ); }
@Test @SpecAssertion(section = Sections.XML_MAPPING_CONSTRAINTDECLARATIONINXML_CONSTRUCTORLEVELOVERRIDING, id = "k") public void testIgnoreAnnotationsOnReturnValueParameterAndCrossParameter() { ConstructorDescriptor descriptor = TestUtil.getConstructorDescriptor( IgnoreAnnotations.class, String.class, String.class ); CrossParameterDescriptor crossParameterDescriptor = descriptor.getCrossParameterDescriptor(); assertFalse( crossParameterDescriptor.hasConstraints(), "Cross parameter constraints should be ignored." ); ReturnValueDescriptor returnValueDescriptor = descriptor.getReturnValueDescriptor(); assertFalse( returnValueDescriptor.hasConstraints(), "Return value constraints should be ignored." ); ParameterDescriptor parameterDescriptor = descriptor.getParameterDescriptors().get( 0 ); assertFalse( parameterDescriptor.hasConstraints(), "First parameter constraints should be ignored." ); parameterDescriptor = descriptor.getParameterDescriptors().get( 1 ); assertTrue( parameterDescriptor.hasConstraints(), "Second parameter constraints should be applied." ); } }
@Test @SpecAssertions({ @SpecAssertion(section = Sections.XML_MAPPING_CONSTRAINTDECLARATIONINXML_CONSTRUCTORLEVELOVERRIDING, id = "k"), @SpecAssertion(section = Sections.XML_MAPPING_CONSTRAINTDECLARATIONINXML_CONSTRUCTORLEVELOVERRIDING, id = "l"), @SpecAssertion(section = Sections.XML_MAPPING_CONSTRAINTDECLARATIONINXML_CONSTRUCTORLEVELOVERRIDING, id = "m"), @SpecAssertion(section = Sections.XML_MAPPING_CONSTRAINTDECLARATIONINXML_CONSTRUCTORLEVELOVERRIDING, id = "o") }) public void testIgnoreAnnotationsOnConstructorLevel() { ConstructorDescriptor descriptor = TestUtil.getConstructorDescriptor( IgnoreAnnotations.class, String.class, String.class ); CrossParameterDescriptor crossParameterDescriptor = descriptor.getCrossParameterDescriptor(); assertFalse( crossParameterDescriptor.hasConstraints(), "Cross parameter constraints should be ignored." ); ReturnValueDescriptor returnValueDescriptor = descriptor.getReturnValueDescriptor(); assertFalse( returnValueDescriptor.hasConstraints(), "Return value constraints should be ignored." ); assertTrue( returnValueDescriptor.getGroupConversions().isEmpty(), "Group conversions should be ignored" ); ParameterDescriptor parameterDescriptor = descriptor.getParameterDescriptors().get( 0 ); assertFalse( parameterDescriptor.hasConstraints(), "First parameter constraints should be ignored." ); assertTrue( parameterDescriptor.getGroupConversions().isEmpty(), "Group conversions should be ignored" ); parameterDescriptor = descriptor.getParameterDescriptors().get( 1 ); assertTrue( parameterDescriptor.hasConstraints(), "Second parameter constraints should be applied." ); assertEquals( parameterDescriptor.getGroupConversions().size(), 2, "All group conversions should be combined" ); } }