GetterSetterPropertyDescriptor extends AbstractPropertyDescriptor { protected abstract Method getWriteMethod() throws NoSuchMethodException; GetterSetterPropertyDescriptor(Class<?> clazz, String fieldName, boolean isIndexed, int index,
                                          HintContainer srcDeepIndexHintContainer, HintContainer destDeepIndexHintContainer,
                                          BeanContainer beanContainer, DestBeanCreator destBeanCreator); Class<?> getWriteMethodPropertyType(); Class<?> getPropertyType(); Object getPropertyValue(Object bean); void setPropertyValue(Object bean, Object value, FieldMap fieldMap); Class<?> genericType();  }
@Test public void testGetWriteMethodRecoversFromWriteMethodGarbageCollection() throws Exception { initializePropertyDescriptor(); nullPropertyDescriptorMethod(true); Method method = javaBeanPropertyDescriptor.getWriteMethod(); assertEquals("incorrect method found", "setDestField", method.getName()); }
@Test(expected = NoSuchMethodException.class) public void testGetWriteMethodOnlyAttemptsRecoveryOnce() throws Exception { initializePropertyDescriptor(); nullPropertyDescriptorMethod(true); setRefreshAlreadyAttempted(); javaBeanPropertyDescriptor.getWriteMethod(); }