package org.appfuse.dao;
import org.appfuse.model.User;
import org.springframework.dao.InvalidDataAccessApiUsageException;
import org.springframework.orm.ObjectRetrievalFailureException;
public class GenericDaoTest extends BaseDaoTestCase {
protected Dao dao;
public void onSetUpBeforeTransaction() throws Exception {
dao = (Dao) applicationContext.getBean("dao");
}
public void onTearDownAfterTransaction() throws Exception {
dao = null;
}
public void testCRUD() {
User user = new User();
user.setUsername("foo");
user.setPassword("bar");
user.setFirstName("first");
user.setLastName("last");
user.getAddress().setCity("Denver");
user.getAddress().setPostalCode("80465");
user.setEmail("[email protected]");
dao.saveObject(user);
assertNotNull(user.getId());
user = (User) dao.getObject(User.class, user.getId());
assertNotNull(user);
assertEquals(user.getLastName(), "last");
user.getAddress().setCountry("USA");
dao.saveObject(user);
assertEquals(user.getAddress().getCountry(), "USA");
dao.removeObject(User.class, user.getId());
try {
dao.getObject(User.class, user.getId());
fail("User 'foo' found in database");
} catch (ObjectRetrievalFailureException e) {
assertNotNull(e.getMessage());
} catch (InvalidDataAccessApiUsageException e) { assertNotNull(e.getMessage());
}
}
}