use of com.haulmont.cuba.core.model.common.EntityDiff in project jmix by jmix-framework.
the class PersistenceHelperTest method testEntityStates.
@Test
public void testEntityStates() {
try {
entityStates.isNew(null);
fail("isNew() should not accept null");
} catch (Exception e) {
//
}
try {
entityStates.isManaged(null);
fail("isManaged() should not accept null");
} catch (Exception e) {
//
}
try {
entityStates.isDetached(null);
fail("isDetached() should not accept null");
} catch (Exception e) {
//
}
assertTrue(entityStates.isNew(new EntityDiff(null)));
UUID id;
Server server;
Transaction tx = persistence.createTransaction();
try {
EntityManager em = persistence.getEntityManager();
assertNotNull(em);
server = new Server();
assertTrue(entityStates.isNew(server));
assertFalse(entityStates.isManaged(server));
assertFalse(entityStates.isDetached(server));
id = server.getId();
server.setName("localhost");
server.setRunning(true);
em.persist(server);
assertTrue(entityStates.isNew(server));
assertTrue(entityStates.isManaged(server));
assertFalse(entityStates.isDetached(server));
tx.commit();
} finally {
tx.end();
}
assertFalse(entityStates.isNew(server));
assertFalse(entityStates.isManaged(server));
assertTrue(entityStates.isDetached(server));
tx = persistence.createTransaction();
try {
EntityManager em = persistence.getEntityManager();
server = em.find(Server.class, id);
assertNotNull(server);
assertEquals(id, server.getId());
assertFalse(entityStates.isNew(server));
assertTrue(entityStates.isManaged(server));
assertFalse(entityStates.isDetached(server));
server.setRunning(false);
tx.commit();
} finally {
tx.end();
}
assertFalse(entityStates.isNew(server));
assertFalse(entityStates.isManaged(server));
assertTrue(entityStates.isDetached(server));
tx = persistence.createTransaction();
try {
EntityManager em = persistence.getEntityManager();
server = em.merge(server);
assertFalse(entityStates.isNew(server));
assertTrue(entityStates.isManaged(server));
assertFalse(entityStates.isDetached(server));
tx.commit();
} finally {
tx.end();
}
tx = persistence.createTransaction();
try {
EntityManager em = persistence.getEntityManager();
server = em.find(Server.class, id);
assertNotNull(server);
assertEquals(id, server.getId());
em.remove(server);
assertFalse(entityStates.isNew(server));
// is it correct?
assertTrue(entityStates.isManaged(server));
assertFalse(entityStates.isDetached(server));
tx.commit();
} finally {
tx.end();
}
assertFalse(entityStates.isNew(server));
assertFalse(entityStates.isManaged(server));
// is it correct?
assertTrue(entityStates.isDetached(server));
}
Aggregations