Added the decrement call to delete so that entity counters are decremented.
Added test proving that entity counters are decremented.


Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/f76aeaf5
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/f76aeaf5
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/f76aeaf5

Branch: refs/heads/master
Commit: f76aeaf56e4b12516415db52da388eabc3ba20de
Parents: f064c49
Author: George Reyes <g...@apache.org>
Authored: Fri Apr 15 14:40:27 2016 -0700
Committer: George Reyes <g...@apache.org>
Committed: Fri Apr 15 14:40:27 2016 -0700

----------------------------------------------------------------------
 .../corepersistence/CpEntityManager.java        |  4 +-
 .../events/ApplicationRequestCounterIT.java     | 48 ++++++++++++++++++++
 2 files changed, 50 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/f76aeaf5/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
----------------------------------------------------------------------
diff --git 
a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
 
b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
index b2330f3..93f9b64 100644
--- 
a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
+++ 
b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
@@ -649,15 +649,15 @@ public class CpEntityManager implements EntityManager {
      */
     @Override
     public void delete( EntityRef entityRef ) throws Exception {
-        //TODO: since we want the user to mark it and we sweep it later. It 
should be marked by the graph manager here.
         //Step 1 & 2 Currently to block so we ensure that marking is done 
immediately
         //If this returns null then nothing was marked null so the entity 
doesn't exist
         markEntity( entityRef ).toBlocking().lastOrDefault( null );
 
-        //TODO: figure out how to return async call to service tier? Do I not 
need to?
         //Step 3
         deleteAsync( entityRef );
 
+        decrementEntityCollection( Schema.defaultCollectionName( 
entityRef.getType() ));
+
     }
 
 

http://git-wip-us.apache.org/repos/asf/usergrid/blob/f76aeaf5/stack/rest/src/test/java/org/apache/usergrid/rest/applications/events/ApplicationRequestCounterIT.java
----------------------------------------------------------------------
diff --git 
a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/events/ApplicationRequestCounterIT.java
 
b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/events/ApplicationRequestCounterIT.java
index a1c07c5..cf07dff 100644
--- 
a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/events/ApplicationRequestCounterIT.java
+++ 
b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/events/ApplicationRequestCounterIT.java
@@ -27,6 +27,7 @@ import org.slf4j.LoggerFactory;
 import org.apache.usergrid.rest.test.resource.AbstractRestIT;
 import org.apache.usergrid.rest.test.resource.model.ApiResponse;
 import org.apache.usergrid.rest.test.resource.model.Collection;
+import org.apache.usergrid.rest.test.resource.model.Entity;
 import org.apache.usergrid.rest.test.resource.model.QueryParameters;
 
 import static org.junit.Assert.assertEquals;
@@ -62,4 +63,51 @@ public class ApplicationRequestCounterIT extends 
AbstractRestIT {
         assertEquals( 2, ( ( LinkedHashMap ) ( ( ArrayList)counters.get( 
"values" )).get( 0 )).get( "value" ));
 
     }
+
+    @Test
+    public void testDecrementingEntityCounters() throws Exception {
+
+        //Create test collection with test entity that is full text indexed.
+        int numberOfEntitiesToCreate = 10;
+
+        Entity[] entities = new Entity[numberOfEntitiesToCreate];
+        Entity testEntity = new Entity();
+        for(int i = 0; i < numberOfEntitiesToCreate; i++){
+            testEntity.put( "one","value"+i );
+            testEntity.put( "two","valuetwo"+i );
+            entities[i]= this.app().collection( "testCollection" ).post( 
testEntity );
+        }
+
+        //get default application
+       // ApiResponse defaultApp = org().app( clientSetup.getAppName() ).get();
+
+        QueryParameters queryParameters = new QueryParameters();
+        queryParameters.addParam( "resolution", "all" ).addParam( "counter", 
"application.collection.testcollections" );
+        Collection countersResponse = org().app( clientSetup.getAppName() 
).collection( "counters" ).get( queryParameters ,true );
+
+        assertNotNull( countersResponse );
+        ArrayList counterValues = ( ArrayList ) 
countersResponse.getResponse().getProperties().get( "counters" );
+        LinkedHashMap counters = ( LinkedHashMap ) counterValues.get( 0 );
+        assertEquals( "application.collection.testcollections", counters.get( 
"name" ) );
+
+        //Since it was accessed twice above.
+        assertEquals( 10, ( ( LinkedHashMap ) ( ( ArrayList)counters.get( 
"values" )).get( 0 )).get( "value" ));
+
+        for(int i = 0; i < numberOfEntitiesToCreate; i++){
+            this.app().collection( "testCollection" ).entity( entities[i] 
).delete( );
+        }
+        
+        queryParameters.addParam( "resolution", "all" ).addParam( "counter", 
"application.collection.testcollections" );
+        countersResponse = org().app( clientSetup.getAppName() ).collection( 
"counters" ).get( queryParameters ,true );
+
+        assertNotNull( countersResponse );
+        counterValues = ( ArrayList ) 
countersResponse.getResponse().getProperties().get( "counters" );
+        counters = ( LinkedHashMap ) counterValues.get( 0 );
+        assertEquals( "application.collection.testcollections", counters.get( 
"name" ) );
+
+        //Since it was accessed twice above.
+        assertEquals( 0, ( ( LinkedHashMap ) ( ( ArrayList)counters.get( 
"values" )).get( 0 )).get( "value" ));
+
+
+    }
 }

Reply via email to