Search in sources :

Example 1 with EntityDiff

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));
}
Also used : Server(com.haulmont.cuba.core.model.common.Server) UUID(java.util.UUID) EntityDiff(com.haulmont.cuba.core.model.common.EntityDiff) Test(org.junit.jupiter.api.Test) CoreTest(com.haulmont.cuba.core.testsupport.CoreTest)

Aggregations

EntityDiff (com.haulmont.cuba.core.model.common.EntityDiff)1 Server (com.haulmont.cuba.core.model.common.Server)1 CoreTest (com.haulmont.cuba.core.testsupport.CoreTest)1 UUID (java.util.UUID)1 Test (org.junit.jupiter.api.Test)1