assertNotNull(facet);
assertTrue(facet instanceof DisabledFacetAlwaysEverywhere);
}
public void testIfHaveSetterAndModifyFacetThenTheModifyFacetWinsOut() {
final PropertySetAndClearFacetFactory facetFactory = new PropertySetAndClearFacetFactory();
facetFactory.setSpecificationLookup(reflector);
final PropertyModifyFacetFactory facetFactoryForModify = new PropertyModifyFacetFactory();
facetFactoryForModify.setSpecificationLookup(reflector);
class Customer {
@SuppressWarnings("unused")
public String getFirstName() {
return null;
}
@SuppressWarnings("unused")
public void setFirstName(final String firstName) {
}
@SuppressWarnings("unused")
public void modifyFirstName(final String firstName) {
}
}
final Method propertyAccessorMethod = findMethod(Customer.class, "getFirstName");
final Method propertySetterMethod = findMethod(Customer.class, "setFirstName", new Class[] { String.class });
final Method propertyModifyMethod = findMethod(Customer.class, "modifyFirstName", new Class[] { String.class });
final ProcessMethodContext processMethodContext = new ProcessMethodContext(Customer.class, null, null, propertyAccessorMethod, methodRemover, facetedMethod);
facetFactory.process(processMethodContext);
facetFactoryForModify.process(processMethodContext);
final Facet facet = facetedMethod.getFacet(PropertySetterFacet.class);
assertNotNull(facet);
assertTrue(facet instanceof PropertySetterFacetViaModifyMethod);