@Override public final boolean hasConstrainedParameters() { return parameters.stream().anyMatch(DescriptorManager::isConstrained) || getCrossParameterDescriptor().hasConstraints(); }
@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 = "b") @SpecAssertion(section = Sections.CONSTRAINTMETADATA_EXECUTABLEDESCRIPTOR, id = "c") public void testGetConstraintsForMethodWithoutCrossParameterConstraints() { CrossParameterDescriptor descriptor = Executables.returnValueConstrainedMethod() .getCrossParameterDescriptor(); Set<ConstraintDescriptor<?>> constraints = descriptor.getConstraintDescriptors(); assertEquals( constraints.size(), 0, "Should have no constraints" ); }
@Test @SpecAssertions({ @SpecAssertion(section = Sections.XML_MAPPING_CONSTRAINTDECLARATIONINXML_METHODLEVELOVERRIDING, id = "c"), @SpecAssertion(section = Sections.XML_MAPPING_CONSTRAINTDECLARATIONINXML_METHODLEVELOVERRIDING, id = "g"), @SpecAssertion(section = Sections.XML_MAPPING_CONSTRAINTDECLARATIONINXML_METHODLEVELOVERRIDING, id = "k") }) public void testMethodCrossParameterConstraint() throws Exception { MethodDescriptor descriptor = TestUtil.getMethodDescriptor( CustomerRepository.class, "notifyCustomer", Customer.class, String.class ); assertNotNull( descriptor, "the specified method 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.CONSTRAINTMETADATA_ELEMENTDESCRIPTOR, id = "a") @SpecAssertion(section = Sections.CONSTRAINTMETADATA_CROSSPARAMETERDESCRIPTOR, id = "a") public void testGetElementClass() { CrossParameterDescriptor descriptor = Executables.crossParameterConstrainedMethod() .getCrossParameterDescriptor(); assertEquals( descriptor.getElementClass(), Object[].class ); }
@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" ); }
@Override public final boolean hasConstrainedParameters() { return parameters.stream().anyMatch(DescriptorManager::isConstrained) || getCrossParameterDescriptor().hasConstraints(); }
@Test @SpecAssertion(section = Sections.CONSTRAINTMETADATA_ELEMENTDESCRIPTOR, id = "d") @SpecAssertion(section = Sections.CONSTRAINTMETADATA_EXECUTABLEDESCRIPTOR, id = "c") public void testFindConstraintsForMethod() { CrossParameterDescriptor descriptor = Executables.crossParameterConstrainedMethod() .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 = "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" ); }
@Override public boolean hasConstrainedParameters() { if ( crossParameterDescriptor.hasConstraints() ) { return true; } for ( ParameterDescriptor oneParameter : parameters ) { if ( oneParameter.hasConstraints() || oneParameter.isCascaded() ) { return true; } } return false; }
@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 @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 = "c") public void testHasConstraintsForConstructor() { CrossParameterDescriptor descriptor = Executables.crossParameterConstrainedConstructor() .getCrossParameterDescriptor(); assertTrue( descriptor.hasConstraints(), "Should have constraints" ); }
@Test @SpecAssertion(section = Sections.CONSTRAINTMETADATA_ELEMENTDESCRIPTOR, id = "d") @SpecAssertion(section = Sections.CONSTRAINTMETADATA_EXECUTABLEDESCRIPTOR, id = "c") public void testFindConstraintsForMethodWithoutCrossParameterConstraints() { CrossParameterDescriptor descriptor = Executables.returnValueConstrainedMethod() .getCrossParameterDescriptor(); Set<ConstraintDescriptor<?>> constraints = descriptor.findConstraints().getConstraintDescriptors(); assertEquals( constraints.size(), 0, "Should have no constraints" ); }
@Test @SpecAssertion(section = Sections.CONSTRAINTMETADATA_CONSTRAINTDESCRIPTOR, id = "a") @SpecAssertion(section = Sections.CONSTRAINTMETADATA_ELEMENTDESCRIPTOR, id = "b") @SpecAssertion(section = Sections.CONSTRAINTMETADATA_EXECUTABLEDESCRIPTOR, id = "c") public void testGetConstraintsForMethod() { CrossParameterDescriptor descriptor = Executables.crossParameterConstrainedMethod() .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 = "c") public void testHasConstraintsForConstructorWithoutCrossParameterConstraints() { CrossParameterDescriptor descriptor = Executables.returnValueConstrainedConstructor() .getCrossParameterDescriptor(); assertFalse( descriptor.hasConstraints(), "Should have no constraints" ); }
@Test @SpecAssertion(section = Sections.CONSTRAINTMETADATA_ELEMENTDESCRIPTOR, id = "g") @SpecAssertion(section = Sections.CONSTRAINTMETADATA_EXECUTABLEDESCRIPTOR, id = "c") public void testFindConstraintsForMethodDefinedOnSuperTypeLookingAt() { CrossParameterDescriptor descriptor = Executables.crossParameterConstrainedMethodFromSuperType() .getCrossParameterDescriptor(); Set<ConstraintDescriptor<?>> constraints = descriptor.findConstraints() .lookingAt( Scope.LOCAL_ELEMENT ) .getConstraintDescriptors(); assertEquals( constraints.size(), 0, "Should have no local constraints" ); constraints = descriptor.findConstraints() .lookingAt( Scope.HIERARCHY ) .getConstraintDescriptors(); assertEquals( constraints.size(), 1, "Should have constraints" ); ConstraintDescriptor<?> constraint = constraints.iterator().next(); assertEquals( constraint.getAnnotation().annotationType(), MyCrossParameterConstraint.class, "Wrong constraint type" ); }
@Override public boolean hasConstrainedParameters() { if ( crossParameterDescriptor.hasConstraints() ) { return true; } for ( ParameterDescriptor oneParameter : parameters ) { if ( oneParameter.hasConstraints() || oneParameter.isCascaded() ) { return true; } } return false; }
@Test @SpecAssertion(section = Sections.CONSTRAINTMETADATA_ELEMENTDESCRIPTOR, id = "g") @SpecAssertion(section = Sections.CONSTRAINTMETADATA_EXECUTABLEDESCRIPTOR, id = "c") public void testFindConstraintsForMethodLookingAt() { CrossParameterDescriptor descriptor = Executables.methodOverridingCrossParameterConstrainedMethod() .getCrossParameterDescriptor(); Set<ConstraintDescriptor<?>> constraints = descriptor.findConstraints() .lookingAt( Scope.LOCAL_ELEMENT ) .getConstraintDescriptors(); assertEquals( constraints.size(), 0, "Should have no local constraints" ); constraints = descriptor.findConstraints() .lookingAt( Scope.HIERARCHY ) .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 = "c") public void testHasConstraintsForMethod() { CrossParameterDescriptor descriptor = Executables.crossParameterConstrainedMethod() .getCrossParameterDescriptor(); assertTrue( descriptor.hasConstraints(), "Should have constraints" ); }