public void testModifyMethodWithNoSetterInstallsNotPersistedFacetButDoesNotInstallADisabledFacets() {
final PropertySetAndClearFacetFactory facetFactory = new PropertySetAndClearFacetFactory();
facetFactory.setSpecificationLookup(reflector);
final PropertyModifyFacetFactory facetFactoryForModify = new PropertyModifyFacetFactory();
facetFactoryForModify.setSpecificationLookup(reflector);
final DisabledFacetOnPropertyInferredFactory disabledFacetOnPropertyInferredFactory = new DisabledFacetOnPropertyInferredFactory();
disabledFacetOnPropertyInferredFactory.setSpecificationLookup(reflector);
class Customer {
@SuppressWarnings("unused")
public String getFirstName() {
return null;
}
@SuppressWarnings("unused")
public void modifyFirstName(final String firstName) {
}
}
final Method propertyAccessorMethod = findMethod(Customer.class, "getFirstName");
final ProcessMethodContext processMethodContext = new ProcessMethodContext(Customer.class, null, null, propertyAccessorMethod, methodRemover, facetedMethod);
facetFactory.process(processMethodContext);
facetFactoryForModify.process(processMethodContext);
disabledFacetOnPropertyInferredFactory.process(processMethodContext);
Facet facet = facetedMethod.getFacet(NotPersistedFacet.class);
assertNotNull(facet);
assertTrue(facet instanceof NotPersistableFacetInferred);