Search in sources :

Example 21 with Group

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

the class EntityStateTest method testSerialization.

@Test
public void testSerialization() throws Exception {
    User user;
    Group group;
    // serialize new
    user = new User();
    assertTrue(BaseEntityInternalAccess.isNew(user));
    assertFalse(BaseEntityInternalAccess.isManaged(user));
    assertFalse(BaseEntityInternalAccess.isDetached(user));
    user = reserialize(user);
    assertTrue(BaseEntityInternalAccess.isNew(user));
    assertFalse(BaseEntityInternalAccess.isManaged(user));
    assertFalse(BaseEntityInternalAccess.isDetached(user));
    // serialize managed
    Transaction tx = cont.persistence().createTransaction();
    try {
        EntityManager em = cont.persistence().getEntityManager();
        user = new 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);
        tx.commit();
    } finally {
        tx.end();
    }
    tx = cont.persistence().createTransaction();
    try {
        EntityManager em = cont.persistence().getEntityManager();
        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(group));
        assertTrue(BaseEntityInternalAccess.isManaged(group));
        assertFalse(BaseEntityInternalAccess.isDetached(group));
        user = reserialize(user);
        assertFalse(BaseEntityInternalAccess.isNew(user));
        assertFalse(BaseEntityInternalAccess.isManaged(user));
        assertTrue(BaseEntityInternalAccess.isDetached(user));
        tx.commit();
    } finally {
        tx.end();
    }
    user.setName("changed name");
    // merge changed and serialize
    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));
    user = reserialize(user);
    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 22 with Group

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

the class GetReferenceIdTest method testWithFetchGroup.

@Test
public void testWithFetchGroup() throws Exception {
    User user = null;
    // not in a view
    try (Transaction tx = cont.persistence().createTransaction()) {
        EntityManager em = cont.persistence().getEntityManager();
        Query q = em.createQuery("select u from sec$User u where u.id = ?1");
        q.setView(new View(User.class, false).addProperty("login").addProperty("userRoles", new View(UserRole.class).addProperty("role", new View(Role.class).addProperty("name"))).setLoadPartialEntities(true));
        q.setParameter(1, this.user.getId());
        List<User> list = q.getResultList();
        if (!list.isEmpty()) {
            user = list.get(0);
            PersistenceTools.RefId refId = cont.persistence().getTools().getReferenceId(user, "group");
            assertFalse(refId.isLoaded());
            try {
                refId.getValue();
                fail();
            } catch (IllegalStateException e) {
            // ok
            }
        }
        tx.commit();
    }
    user = reserialize(user);
    assertNotNull(user);
    assertNotNull(user.getUserRoles());
    user.getUserRoles().size();
    // in a view
    try (Transaction tx = cont.persistence().createTransaction()) {
        EntityManager em = cont.persistence().getEntityManager();
        Query q = em.createQuery("select u from sec$User u where u.id = ?1");
        q.setView(new View(User.class, false).addProperty("login").addProperty("group", new View(Group.class).addProperty("name")).addProperty("userRoles", new View(UserRole.class).addProperty("role", new View(Role.class).addProperty("name"))).setLoadPartialEntities(true));
        q.setParameter(1, this.user.getId());
        List<User> list = q.getResultList();
        if (!list.isEmpty()) {
            user = list.get(0);
            PersistenceTools.RefId refId = cont.persistence().getTools().getReferenceId(user, "group");
            assertTrue(refId.isLoaded());
            assertEquals(TestSupport.COMPANY_GROUP_ID, refId.getValue());
        }
        tx.commit();
    }
    user = reserialize(user);
    assertNotNull(user);
    assertNotNull(user.getUserRoles());
    user.getUserRoles().size();
}
Also used : Role(com.haulmont.cuba.security.entity.Role) UserRole(com.haulmont.cuba.security.entity.UserRole) 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 23 with Group

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

the class TestBeforeCommitTxListener method createEntity.

private void createEntity(Collection<Entity> managedEntities, EntityManager entityManager) {
    Group companyGroup = entityManager.find(Group.class, TestSupport.COMPANY_GROUP_ID);
    User u = metadata.create(User.class);
    createdEntityId = u.getId();
    u.setLogin("TxLstnrTst-" + u.getId());
    u.setLoginLowerCase(u.getLogin().toLowerCase());
    u.setGroup(companyGroup);
    entityManager.persist(u);
}
Also used : Group(com.haulmont.cuba.security.entity.Group) User(com.haulmont.cuba.security.entity.User)

Example 24 with Group

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

the class NonDetachedTest method testCreateNew_DM.

@Test
public void testCreateNew_DM() throws Exception {
    // check versioned entity
    Group companyGroupCopy = metadata.getTools().copy(companyGroup);
    assertTrue(PersistenceHelper.isNew(companyGroupCopy));
    PersistenceHelper.makeDetached(companyGroupCopy);
    User user = persistence.callInTransaction((em) -> em.find(User.class, this.user.getId()));
    User userCopy = metadata.getTools().copy(user);
    assertNull(userCopy.getGroup());
    assertTrue(PersistenceHelper.isNew(userCopy));
    PersistenceHelper.makeDetached(userCopy);
    userCopy.setId(UuidProvider.createUuid());
    userCopy.setVersion(null);
    userCopy.setGroup(companyGroupCopy);
    userCopy.setName("new name");
    try {
        AppBeans.get(DataManager.class).commit(userCopy);
        user = persistence.callInTransaction((em) -> em.find(User.class, userCopy.getId()));
        assertEquals("new name", user.getName());
    } finally {
        cont.deleteRecord(userCopy);
    }
    // check non-versioned entity
    Server server = metadata.create(Server.class);
    server.setName("server-" + server.getId());
    assertTrue(PersistenceHelper.isNew(server));
    PersistenceHelper.makeDetached(server);
    try {
        AppBeans.get(DataManager.class).commit(server);
        Server loaded = persistence.callInTransaction(em -> em.find(Server.class, server.getId()));
        assertNotNull(loaded);
    } finally {
        cont.deleteRecord(server);
    }
}
Also used : Customer(com.haulmont.cuba.testmodel.sales.Customer) Server(com.haulmont.cuba.core.entity.Server) TestSupport(com.haulmont.cuba.testsupport.TestSupport) Date(java.util.Date) Test(org.junit.Test) BaseGenericIdEntity(com.haulmont.cuba.core.entity.BaseGenericIdEntity) User(com.haulmont.cuba.security.entity.User) com.haulmont.cuba.core.global(com.haulmont.cuba.core.global) HashSet(java.util.HashSet) Group(com.haulmont.cuba.security.entity.Group) BigDecimal(java.math.BigDecimal) DateUtils(org.apache.commons.lang.time.DateUtils) Order(com.haulmont.cuba.testmodel.sales.Order) After(org.junit.After) CascadeEntity(com.haulmont.cuba.testmodel.cascadedelete.CascadeEntity) ClassRule(org.junit.ClassRule) Assert(org.junit.Assert) TestContainer(com.haulmont.cuba.testsupport.TestContainer) Before(org.junit.Before) Group(com.haulmont.cuba.security.entity.Group) User(com.haulmont.cuba.security.entity.User) Server(com.haulmont.cuba.core.entity.Server) Test(org.junit.Test)

Example 25 with Group

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

the class NonDetachedTest method testSaveNotDetached_DM.

@Test
public void testSaveNotDetached_DM() throws Exception {
    Group companyGroupCopy = metadata.getTools().copy(companyGroup);
    assertTrue(PersistenceHelper.isNew(companyGroupCopy));
    PersistenceHelper.makeDetached(companyGroupCopy);
    User user = persistence.callInTransaction((em) -> em.find(User.class, this.user.getId()));
    User userCopy = metadata.getTools().copy(user);
    assertNull(userCopy.getGroup());
    assertTrue(PersistenceHelper.isNew(userCopy));
    PersistenceHelper.makeDetached(userCopy);
    userCopy.setGroup(companyGroupCopy);
    userCopy.setName("new name");
    AppBeans.get(DataManager.class).commit(userCopy);
    user = persistence.callInTransaction((em) -> em.find(User.class, this.user.getId()));
    assertEquals("new name", user.getName());
}
Also used : Customer(com.haulmont.cuba.testmodel.sales.Customer) Server(com.haulmont.cuba.core.entity.Server) TestSupport(com.haulmont.cuba.testsupport.TestSupport) Date(java.util.Date) Test(org.junit.Test) BaseGenericIdEntity(com.haulmont.cuba.core.entity.BaseGenericIdEntity) User(com.haulmont.cuba.security.entity.User) com.haulmont.cuba.core.global(com.haulmont.cuba.core.global) HashSet(java.util.HashSet) Group(com.haulmont.cuba.security.entity.Group) BigDecimal(java.math.BigDecimal) DateUtils(org.apache.commons.lang.time.DateUtils) Order(com.haulmont.cuba.testmodel.sales.Order) After(org.junit.After) CascadeEntity(com.haulmont.cuba.testmodel.cascadedelete.CascadeEntity) ClassRule(org.junit.ClassRule) Assert(org.junit.Assert) TestContainer(com.haulmont.cuba.testsupport.TestContainer) Before(org.junit.Before) 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