@Test
public void access_property_from_unimplemented_interface_in_abstract_base_class()
{
AbstractBean bean = new ConcreteBean(33);
PropertyAdapter valueAdapter = access.getAdapter(AbstractBean.class).getPropertyAdapter("value");
assertNotNull(valueAdapter);
assertFalse(valueAdapter.isField());
valueAdapter.set(bean, "Hello");
assertSame(valueAdapter.get(bean), "Hello");
assertSame(bean.getValue(), "Hello");
PropertyAdapter otherValueAdapter = access.getAdapter(AbstractBean.class).getPropertyAdapter("otherValue");
assertNotNull(otherValueAdapter);
assertFalse(otherValueAdapter.isField());
otherValueAdapter.set(bean, "Other Value");
assertSame(otherValueAdapter.get(bean), "Other Value");
assertSame(bean.getOtherValue(), "Other Value");
PropertyAdapter intValueAdapter = access.getAdapter(AbstractBean.class).getPropertyAdapter("intvalue");
assertNotNull(intValueAdapter);
assertEquals(intValueAdapter.get(bean), 33);
assertTrue(intValueAdapter.isRead());
assertFalse(intValueAdapter.isUpdate());
}