You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sf...@apache.org on 2015/11/06 00:54:27 UTC
usergrid git commit: add index test for geo
Repository: usergrid
Updated Branches:
refs/heads/master 38a7d6236 -> a7b6a9cdc
add index test for geo
Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/a7b6a9cd
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/a7b6a9cd
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/a7b6a9cd
Branch: refs/heads/master
Commit: a7b6a9cdcb0399d518365ec51d70874b7c37b92f
Parents: 38a7d62
Author: Shawn Feldman <sf...@apache.org>
Authored: Thu Nov 5 16:54:14 2015 -0700
Committer: Shawn Feldman <sf...@apache.org>
Committed: Thu Nov 5 16:54:14 2015 -0700
----------------------------------------------------------------------
.../usergrid/persistence/RebuildIndexTest.java | 118 ++++++++++++++++++-
1 file changed, 113 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/usergrid/blob/a7b6a9cd/stack/core/src/test/java/org/apache/usergrid/persistence/RebuildIndexTest.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/persistence/RebuildIndexTest.java b/stack/core/src/test/java/org/apache/usergrid/persistence/RebuildIndexTest.java
index cea6ada..7d80644 100644
--- a/stack/core/src/test/java/org/apache/usergrid/persistence/RebuildIndexTest.java
+++ b/stack/core/src/test/java/org/apache/usergrid/persistence/RebuildIndexTest.java
@@ -17,11 +17,7 @@
package org.apache.usergrid.persistence;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
+import java.util.*;
import org.apache.usergrid.corepersistence.index.IndexLocationStrategyFactory;
import org.junit.After;
@@ -300,6 +296,118 @@ public class RebuildIndexTest extends AbstractCoreIT {
readData( em, collectionName, ENTITIES_TO_INDEX, 3 );
}
+ @Test( timeout = 120000 )
+ public void rebuildIndexGeo() throws Exception {
+
+ logger.info( "Started rebuildIndex()" );
+
+ String rand = RandomStringUtils.randomAlphanumeric( 5 );
+ final UUID appId = setup.createApplication( "org_" + rand, "app_" + rand );
+
+ final EntityManager em = setup.getEmf().getEntityManager( appId );
+
+ final ReIndexService reIndexService = setup.getInjector().getInstance( ReIndexService.class );
+
+ // ----------------- create a bunch of entities
+
+ Map<String, Object> cat1map = new HashMap<String, Object>() {{
+ put( "name", "enzo" );
+ put( "color", "grey" );
+ put("location", new LinkedHashMap<String, Object>() {{
+ put("latitude", -35.746369);
+ put("longitude", 150.952183);
+ }});
+ }};
+ final double lat = -34.746369;
+ final double lon = 152.952183;
+ Map<String, Object> cat2map = new HashMap<String, Object>() {{
+ put( "name", "marquee" );
+ put( "color", "grey" );
+ put("location", new LinkedHashMap<String, Object>() {{
+ put("latitude", lat);
+ put("longitude", lon);
+ }});
+ }};
+ Map<String, Object> cat3map = new HashMap<String, Object>() {{
+ put( "name", "bertha" );
+ put( "color", "grey" );
+ put("location", new LinkedHashMap<String, Object>() {{
+ put("latitude", -33.746369);
+ put("longitude", 150.952183);
+ }});
+ }};
+
+ Entity cat1 = em.create( "cat", cat1map );
+ Entity cat2 = em.create( "cat", cat2map );
+ Entity cat3 = em.create( "cat", cat3map );
+
+
+ logger.info( "Created {} entities", ENTITIES_TO_INDEX );
+ app.refreshIndex();
+
+ // ----------------- test that we can read them, should work fine
+
+ logger.debug( "Read the data" );
+ final String collectionName = "cats";
+ Query q = Query.fromQL( "select * where color='grey'" ).withLimit( 1000 );
+ Results results = em.searchCollectionConsistent( em.getApplicationRef(), collectionName, q, 3 );
+ assertEquals(3,results.size());
+
+
+ // ----------------- delete the system and application indexes
+
+ logger.debug( "Deleting app index" );
+
+ deleteIndex( em.getApplicationId() );
+
+ // ----------------- test that we can read them, should fail
+
+ // deleting sytem app index will interfere with other concurrently running tests
+ //deleteIndex( CpNamingUtils.SYSTEM_APP_ID );
+
+ // ----------------- test that we can read them, should fail
+
+ logger.debug( "Reading data, should fail this time " );
+
+ results = em.searchCollectionConsistent( em.getApplicationRef(), collectionName, q, 0 );
+ assertEquals(results.size(),0);
+
+ // ----------------- rebuild index
+
+ logger.debug( "Preparing to rebuild all indexes" );
+
+
+ try {
+
+ final ReIndexRequestBuilder builder =
+ reIndexService.getBuilder().withApplicationId( em.getApplicationId() );
+
+ ReIndexService.ReIndexStatus status = reIndexService.rebuildIndex( builder );
+
+ assertNotNull( status.getJobId(), "JobId is present" );
+
+ logger.info( "Rebuilt index" );
+
+ waitForRebuild( status, reIndexService );
+
+ logger.info( "Rebuilt index" );
+
+ app.refreshIndex();
+ }
+ catch ( Exception ex ) {
+ logger.error( "Error rebuilding index", ex );
+ fail();
+ }
+
+ // ----------------- test that we can read them
+
+ Thread.sleep( 2000 );
+ results = em.searchCollectionConsistent( em.getApplicationRef(), collectionName, q, 3 );
+ assertEquals(results.size(),3);
+ q = Query.fromQL("select * where location within 100 of "+lat+", "+lon);
+ results = em.searchCollectionConsistent( em.getApplicationRef(), collectionName, q, 1 );
+ assertEquals(results.size(),1);
+ }
@Test( timeout = 120000 )