EAddress address = new EAddress();
address.setStreet("92 Someplace Else");
address.setSuburb("Sandringham");
address.setCity("Auckland");
EPerson person = new EPerson();
person.setId(98989L);
person.setName("Rob");
person.setAddress(address);
CachedBeanData addressCacheData = (CachedBeanData)addressBeanProperty.getCacheDataValue((EntityBean) person);
EPerson newPersonCheck = new EPerson();
newPersonCheck.setId(98989L);
addressBeanProperty.setCacheDataValue((EntityBean) newPersonCheck, addressCacheData);
EAddress newAddress = newPersonCheck.getAddress();
Assert.assertEquals(address.getStreet(), newAddress.getStreet());
Assert.assertEquals(address.getCity(), newAddress.getCity());
Assert.assertEquals(address.getSuburb(), newAddress.getSuburb());
CachedBeanData cacheData = desc.cacheBeanExtractData((EntityBean)person);
Assert.assertNotNull(cacheData);
EPerson newPerson = new EPerson();
desc.cacheBeanLoadData((EntityBean)newPerson, cacheData);
Assert.assertNotNull(newPerson.getId());
Assert.assertNotNull(newPerson.getName());
Assert.assertNotNull(newPerson.getAddress());
Assert.assertEquals(person.getId(), newPerson.getId());
Assert.assertEquals(person.getName(), newPerson.getName());
Assert.assertEquals(person.getAddress().getStreet(), newPerson.getAddress().getStreet());
Assert.assertEquals(person.getAddress().getCity(), newPerson.getAddress().getCity());
}