Search in sources :

Example 46 with Group

use of com.haulmont.cuba.security.entity.Group in project cuba by cuba-platform.

the class EntityStateTest method testTransactions.

@Test
public void testTransactions() throws Exception {
    User user;
    Group group;
    // create and persist
    Transaction tx = cont.persistence().createTransaction();
    try {
        EntityManager em = cont.persistence().getEntityManager();
        user = new User();
        assertTrue(BaseEntityInternalAccess.isNew(user));
        assertFalse(BaseEntityInternalAccess.isManaged(user));
        assertFalse(BaseEntityInternalAccess.isDetached(user));
        userId = user.getId();
        user.setName("testUser");
        user.setLogin("testLogin");
        user.setGroup(em.find(Group.class, UUID.fromString("0fa2b1a5-1d68-4d69-9fbd-dff348347f93")));
        em.persist(user);
        assertTrue(BaseEntityInternalAccess.isNew(user));
        assertTrue(BaseEntityInternalAccess.isManaged(user));
        assertFalse(BaseEntityInternalAccess.isDetached(user));
        tx.commit();
    } finally {
        tx.end();
    }
    assertFalse(BaseEntityInternalAccess.isNew(user));
    assertFalse(BaseEntityInternalAccess.isManaged(user));
    assertTrue(BaseEntityInternalAccess.isDetached(user));
    // load from DB
    tx = cont.persistence().createTransaction();
    try {
        EntityManager em = cont.persistence().getEntityManager();
        // find
        user = em.find(User.class, userId);
        assertNotNull(user);
        assertFalse(BaseEntityInternalAccess.isNew(user));
        assertTrue(BaseEntityInternalAccess.isManaged(user));
        assertFalse(BaseEntityInternalAccess.isDetached(user));
        group = user.getGroup();
        assertNotNull(group);
        assertFalse(BaseEntityInternalAccess.isNew(user));
        assertTrue(BaseEntityInternalAccess.isManaged(user));
        assertFalse(BaseEntityInternalAccess.isDetached(user));
        tx.commit();
    } finally {
        tx.end();
    }
    tx = cont.persistence().createTransaction();
    try {
        EntityManager em = cont.persistence().getEntityManager();
        // query
        Query query = em.createQuery("select u from sec$User u where u.id = ?1").setParameter(1, userId);
        user = (User) query.getFirstResult();
        assertNotNull(user);
        assertFalse(BaseEntityInternalAccess.isNew(user));
        assertTrue(BaseEntityInternalAccess.isManaged(user));
        assertFalse(BaseEntityInternalAccess.isDetached(user));
        group = user.getGroup();
        assertNotNull(group);
        assertFalse(BaseEntityInternalAccess.isNew(group));
        assertTrue(BaseEntityInternalAccess.isManaged(group));
        assertFalse(BaseEntityInternalAccess.isDetached(group));
        tx.commit();
    } finally {
        tx.end();
    }
    assertFalse(BaseEntityInternalAccess.isNew(user));
    assertFalse(BaseEntityInternalAccess.isManaged(user));
    assertTrue(BaseEntityInternalAccess.isDetached(user));
    assertFalse(BaseEntityInternalAccess.isNew(group));
    assertFalse(BaseEntityInternalAccess.isManaged(user));
    assertTrue(BaseEntityInternalAccess.isDetached(user));
    user.setName("changed name");
    // merge changed
    tx = cont.persistence().createTransaction();
    try {
        EntityManager em = cont.persistence().getEntityManager();
        user = em.merge(user);
        assertFalse(BaseEntityInternalAccess.isNew(user));
        assertTrue(BaseEntityInternalAccess.isManaged(user));
        assertFalse(BaseEntityInternalAccess.isDetached(user));
        tx.commit();
    } finally {
        tx.end();
    }
    assertFalse(BaseEntityInternalAccess.isNew(user));
    assertFalse(BaseEntityInternalAccess.isManaged(user));
    assertTrue(BaseEntityInternalAccess.isDetached(user));
}
Also used : Group(com.haulmont.cuba.security.entity.Group) User(com.haulmont.cuba.security.entity.User) Test(org.junit.Test)

Example 47 with Group

use of com.haulmont.cuba.security.entity.Group in project cuba by cuba-platform.

the class HsqlLikeNullFailTest method setUp.

@Before
public void setUp() throws Exception {
    DataManager dataManager = AppBeans.get(DataManager.NAME);
    Group group = dataManager.load(new LoadContext<>(Group.class).setId(UUID.fromString("0fa2b1a5-1d68-4d69-9fbd-dff348347f93")));
    User user = new User();
    user.setGroup(group);
    user.setId(UUID.fromString("de0f39d2-e60a-11e1-9b55-3860770d7eaf"));
    user.setName("Test");
    user.setLogin("tEst");
    user.setLoginLowerCase("test");
    dataManager.commit(user);
}
Also used : Group(com.haulmont.cuba.security.entity.Group) User(com.haulmont.cuba.security.entity.User) LoadContext(com.haulmont.cuba.core.global.LoadContext) DataManager(com.haulmont.cuba.core.global.DataManager) Before(org.junit.Before)

Example 48 with Group

use of com.haulmont.cuba.security.entity.Group in project cuba by cuba-platform.

the class OrmBehaviorTest method testPersistWithUnManagedAttribute.

/*
     * Test that persist with un-managed attribute works (it didn't work in OpenJPA 2.2+ and worked in OpenJPA pre-2.2)
     */
@Test
public void testPersistWithUnManagedAttribute() throws Exception {
    Group group = new Group();
    groupId = group.getId();
    group.setName("Old Name");
    Transaction tx = cont.persistence().createTransaction();
    try {
        cont.persistence().getEntityManager().persist(group);
        tx.commit();
    } finally {
        tx.end();
    }
    // Let's imagine that this entity was loaded with MyBatis
    Group g = new Group();
    g.setId(groupId);
    g.setName("Old Name");
    User user = new User();
    userId = user.getId();
    user.setLogin("typednativesqlquery");
    user.setGroup(g);
    user.setName("Test");
    tx = cont.persistence().createTransaction();
    try {
        cont.persistence().getEntityManager().persist(user);
        tx.commitRetaining();
        user = cont.persistence().getEntityManager().find(User.class, userId, new View(User.class).addProperty("group"));
        tx.commit();
    } finally {
        tx.end();
    }
    user = reserialize(user);
    assertEquals(groupId, user.getGroup().getId());
}
Also used : Group(com.haulmont.cuba.security.entity.Group) User(com.haulmont.cuba.security.entity.User) View(com.haulmont.cuba.core.global.View) Test(org.junit.Test)

Example 49 with Group

use of com.haulmont.cuba.security.entity.Group in project cuba by cuba-platform.

the class PersistenceTest method testLoadByCombinedView.

@Test
public void testLoadByCombinedView() throws Exception {
    User user;
    Transaction tx = cont.persistence().createTransaction();
    try {
        // load by single view
        EntityManager em = cont.persistence().getEntityManager();
        user = em.find(User.class, UUID.fromString("60885987-1b61-4247-94c7-dff348347f93"), new View(User.class, false).addProperty("login").setLoadPartialEntities(true));
        assertTrue(cont.persistence().getTools().isLoaded(user, "login"));
        assertFalse(cont.persistence().getTools().isLoaded(user, "name"));
        tx.commitRetaining();
        // load by combined view
        em = cont.persistence().getEntityManager();
        user = em.find(User.class, UUID.fromString("60885987-1b61-4247-94c7-dff348347f93"), new View(User.class, false).addProperty("login").setLoadPartialEntities(true), new View(User.class, false).addProperty("name").setLoadPartialEntities(true));
        assertTrue(cont.persistence().getTools().isLoaded(user, "login"));
        assertTrue(cont.persistence().getTools().isLoaded(user, "name"));
        tx.commitRetaining();
        // load by complex combined view
        em = cont.persistence().getEntityManager();
        user = em.find(User.class, UUID.fromString("60885987-1b61-4247-94c7-dff348347f93"), new View(User.class, false).addProperty("login").setLoadPartialEntities(true), new View(User.class, false).addProperty("group", new View(Group.class).addProperty("name")).setLoadPartialEntities(true));
        assertTrue(cont.persistence().getTools().isLoaded(user, "login"));
        assertFalse(cont.persistence().getTools().isLoaded(user, "name"));
        assertTrue(cont.persistence().getTools().isLoaded(user, "group"));
        assertTrue(cont.persistence().getTools().isLoaded(user.getGroup(), "name"));
        tx.commit();
    } finally {
        tx.end();
    }
}
Also used : Group(com.haulmont.cuba.security.entity.Group) User(com.haulmont.cuba.security.entity.User) View(com.haulmont.cuba.core.global.View) Test(org.junit.Test)

Example 50 with Group

use of com.haulmont.cuba.security.entity.Group in project cuba by cuba-platform.

the class PersistenceTest method testMergeNotLoaded.

@Test
public void testMergeNotLoaded() throws Exception {
    User user;
    Group group;
    Transaction tx = cont.persistence().createTransaction();
    try {
        User transientUser = new User();
        transientUser.setId(userId);
        transientUser.setName("testUser1");
        EntityManager em = cont.persistence().getEntityManager();
        em.merge(transientUser);
        tx.commitRetaining();
        em = cont.persistence().getEntityManager();
        user = em.find(User.class, userId);
        assertNotNull(user);
        group = user.getGroup();
    } finally {
        tx.end();
    }
    assertEquals(userId, user.getId());
    assertEquals("testUser1", user.getName());
    assertEquals("testLogin", user.getLogin());
    assertNotNull(group);
}
Also used : Group(com.haulmont.cuba.security.entity.Group) User(com.haulmont.cuba.security.entity.User) Test(org.junit.Test)

Aggregations

Group (com.haulmont.cuba.security.entity.Group)79 User (com.haulmont.cuba.security.entity.User)65 Test (org.junit.Test)60 UUID (java.util.UUID)30 Datasource (com.haulmont.cuba.gui.data.Datasource)29 Ignore (org.junit.Ignore)29 Component (com.haulmont.cuba.gui.components.Component)24 ArrayList (java.util.ArrayList)24 Assert.assertEquals (org.junit.Assert.assertEquals)24 Assert.assertTrue (org.junit.Assert.assertTrue)24 CollectionDatasource (com.haulmont.cuba.gui.data.CollectionDatasource)23 List (java.util.List)20 View (com.haulmont.cuba.core.global.View)15 Assert.assertNotNull (org.junit.Assert.assertNotNull)12 DsBuilder (com.haulmont.cuba.gui.data.DsBuilder)11 DatasourceImpl (com.haulmont.cuba.gui.data.impl.DatasourceImpl)10 Before (org.junit.Before)10 LookupPickerField (com.haulmont.cuba.gui.components.LookupPickerField)9 EntityManager (com.haulmont.cuba.core.EntityManager)8 Transaction (com.haulmont.cuba.core.Transaction)7