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));
}
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);
}
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());
}
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();
}
}
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);
}
Aggregations