@Test public void testEntityManager() throws Exception { LOG.info("EntityManagerIT.testEntityManagerTest"); UUID applicationId = setup.createApplication("testOrganization", "testEntityManagerTest"); assertNotNull(applicationId); EntityManager em = setup.getEmf().getEntityManager(applicationId); assertNotNull(em); Map<String, Object> properties = new LinkedHashMap<String, Object>(); properties.put("username", "edanuff"); properties.put("email", "*****@*****.**"); Entity user = em.create("user", properties); assertNotNull(user); user = em.get(user); assertNotNull(user); assertEquals("user.username not expected value", "edanuff", user.getProperty("username")); assertEquals("user.email not expected value", "*****@*****.**", user.getProperty("email")); EntityRef userRef = em.getAlias(applicationId, "user", "edanuff"); assertNotNull(userRef); assertEquals("userRef.id not expected value", user.getUuid(), userRef.getUuid()); assertEquals("userRef.type not expected value", "user", userRef.getType()); LOG.info("user.username: "******"username")); LOG.info("user.email: " + user.getProperty("email")); Results results = em.searchCollection( em.getApplicationRef(), "users", new Query().addEqualityFilter("username", "edanuff")); assertNotNull(results); assertEquals(1, results.size()); user = results.getEntity(); assertNotNull(user); assertEquals("user.username not expected value", "edanuff", user.getProperty("username")); assertEquals("user.email not expected value", "*****@*****.**", user.getProperty("email")); LOG.info("user.username: "******"username")); LOG.info("user.email: " + user.getProperty("email")); results = em.searchCollection( em.getApplicationRef(), "users", new Query().addEqualityFilter("email", "*****@*****.**")); assertNotNull(results); assertEquals(1, results.size()); user = results.getEntity(); assertNotNull(user); assertEquals("user.username not expected value", "edanuff", user.getProperty("username")); assertEquals("user.email not expected value", "*****@*****.**", user.getProperty("email")); LOG.info("user.username: "******"username")); LOG.info("user.email: " + user.getProperty("email")); }
@Test public void testCreateAndDeleteUser() throws Exception { LOG.info("EntityDaoTest.testCreateAndDeleteUser"); UUID applicationId = setup.createApplication("testOrganization", "testCreateAndDeleteUser"); EntityManager em = setup.getEmf().getEntityManager(applicationId); String name = "test.thing" + UUIDUtils.newTimeUUID(); Map<String, Object> properties = new LinkedHashMap<String, Object>(); properties.put("username", name); properties.put("foo", "bar"); LOG.info("Starting entity create"); Entity user = em.create("user", properties); LOG.info("Entity created"); LOG.info("Starting entity delete"); em.delete(user); LOG.info("Entity deleted"); // now search by username, no results should be returned Results r = em.searchCollection( em.getApplicationRef(), "users", new Query().addEqualityFilter("username", name)); assertEquals(0, r.size()); // now re-create a new user with the same username properties = new LinkedHashMap<String, Object>(); properties.put("username", name); properties.put("foo", "bar"); LOG.info("Starting entity create"); user = em.create("user", properties); LOG.info("Entity created"); r = em.searchCollection( em.getApplicationRef(), "users", new Query().addEqualityFilter("username", name)); assertEquals(1, r.size()); assertEquals(user.getUuid(), r.getEntity().getUuid()); }
@Test public void testDeletes() throws Exception { EntityManager entityManager = this.app.getEntityManager(); Map<String, Object> map = new HashMap<>(); for (int i = 0; i < 10; i++) { map.put("somekey", UUID.randomUUID()); Entity entity = entityManager.create("tests", map); } this.app.refreshIndex(); Thread.sleep(500); ApplicationScope appScope = CpNamingUtils.getApplicationScope(entityManager.getApplicationId()); Observable<Id> ids = this.app.getApplicationService().deleteAllEntities(appScope, 5); int count = ids.count().toBlocking().last(); Assert.assertEquals(count, 5); ids = this.app.getApplicationService().deleteAllEntities(appScope, 5); count = ids.count().toBlocking().last(); Assert.assertEquals(count, 5); this.app.refreshIndex(); Thread.sleep(5000); Injector injector = SpringResource.getInstance().getBean(Injector.class); GraphManagerFactory factory = injector.getInstance(GraphManagerFactory.class); GraphManager graphManager = factory.createEdgeManager(appScope); SimpleSearchByEdgeType simpleSearchByEdgeType = new SimpleSearchByEdgeType( appScope.getApplication(), CpNamingUtils.getEdgeTypeFromCollectionName("tests"), Long.MAX_VALUE, SearchByEdgeType.Order.DESCENDING, Optional.<Edge>absent()); Iterator<Edge> results = graphManager.loadEdgesFromSource(simpleSearchByEdgeType).toBlocking().getIterator(); if (results.hasNext()) { Assert.fail("should be empty"); } else { Results searchCollection = entityManager.searchCollection(entityManager.getApplication(), "tests", Query.all()); Assert.assertEquals(searchCollection.size(), 0); AggregationServiceFactory aggregationServiceFactory = injector.getInstance(AggregationServiceFactory.class); long size = aggregationServiceFactory.getAggregationService().getCollectionSize(appScope, "tests"); Assert.assertEquals(size, 0); // success } }
@Test public void testCreateAndList() throws Exception { LOG.info("EntityDaoTest.testCreateAndDelete"); UUID applicationId = setup.createApplication("testOrganization", "testCreateAndList"); EntityManager em = setup.getEmf().getEntityManager(applicationId); String name = "test.thing" + UUIDUtils.newTimeUUID() + 1; Map<String, Object> properties = new LinkedHashMap<String, Object>(); properties.put("name", name); properties.put("foo", "bar"); LOG.info("Starting entity create"); Entity thing1 = em.create("thing", properties); LOG.info("Entity created"); String name2 = "test.thing" + UUIDUtils.newTimeUUID() + 2; properties = new LinkedHashMap<String, Object>(); properties.put("name", name2); properties.put("foo", "bar"); LOG.info("Starting entity create"); Entity thing2 = em.create("thing", properties); LOG.info("Entity created"); // now search by username, no results should be returned EntityRef appRef = em.getRef(applicationId); Results r = em.getCollection(appRef, "things", null, 10, Level.ALL_PROPERTIES, false); assertEquals(2, r.size()); assertEquals(thing1.getUuid(), r.getEntities().get(0).getUuid()); assertEquals(thing2.getUuid(), r.getEntities().get(1).getUuid()); }