You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sn...@apache.org on 2014/01/30 19:20:33 UTC
[2/7] git commit: Issues fix for USERGRID-3011. Added test cases
proving issue by deleting entities with preexisting connections.
Issues fix for USERGRID-3011.
Added test cases proving issue by deleting entities with preexisting connections.
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/443438fc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/443438fc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/443438fc
Branch: refs/pull/44/merge
Commit: 443438fc3072e6ca70a22e6f6a485c209c2d632f
Parents: 304cd69
Author: GERey <gr...@apigee.com>
Authored: Thu Jan 30 09:32:57 2014 -0800
Committer: GERey <gr...@apigee.com>
Committed: Thu Jan 30 09:32:57 2014 -0800
----------------------------------------------------------------------
.../cassandra/RelationManagerImpl.java | 28 ++++++++-----
.../users/ConnectionResourceTest.java | 43 ++++++++++++++++++++
2 files changed, 61 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/443438fc/stack/core/src/main/java/org/usergrid/persistence/cassandra/RelationManagerImpl.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/usergrid/persistence/cassandra/RelationManagerImpl.java b/stack/core/src/main/java/org/usergrid/persistence/cassandra/RelationManagerImpl.java
index 4f565c7..3414139 100644
--- a/stack/core/src/main/java/org/usergrid/persistence/cassandra/RelationManagerImpl.java
+++ b/stack/core/src/main/java/org/usergrid/persistence/cassandra/RelationManagerImpl.java
@@ -1086,22 +1086,30 @@ public class RelationManagerImpl implements RelationManager {
PagingResultsIterator itr =
- new PagingResultsIterator( getConnectingEntities( headEntity, null, null, Level.REFS ) );
+ new PagingResultsIterator( getConnectedEntities( headEntity, null, null, Level.REFS ) );
- ConnectionRefImpl connection;
+ ConnectionRefImpl connection = null;
while ( itr.hasNext() ) {
- connection = ( ConnectionRefImpl ) itr.next();
+ Object itrObj = itr.next();
+ if ( itrObj instanceof ConnectionRefImpl ) {
+ connection = (ConnectionRefImpl) itrObj;
+ }
+ else if ( itrObj instanceof SimpleEntityRef ) {
+ connection = new ConnectionRefImpl( (SimpleEntityRef) itrObj );
+ }
+ else {
+ if ( itrObj instanceof EntityRef ) {
+ connection = new ConnectionRefImpl( new SimpleEntityRef((EntityRef) itr.next()));
+ }
+ else if ( itrObj instanceof UUID ) {
+ connection = new ConnectionRefImpl( new SimpleEntityRef((UUID)itr.next()));
+ }
+ }
+
batchUpdateEntityConnection( batch, true, connection, timestampUuid );
}
- //
- // List<ConnectionRefImpl> connections = getConnectionsWithEntity(headEntity.getUuid());
- // if (connections != null) {
- // for (ConnectionRefImpl connection : connections) {
- // batchUpdateEntityConnection(batch, true, connection, timestampUuid);
- // }
- // }
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/443438fc/stack/rest/src/test/java/org/usergrid/rest/applications/users/ConnectionResourceTest.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/usergrid/rest/applications/users/ConnectionResourceTest.java b/stack/rest/src/test/java/org/usergrid/rest/applications/users/ConnectionResourceTest.java
index ab29ea8..af8e8b0 100644
--- a/stack/rest/src/test/java/org/usergrid/rest/applications/users/ConnectionResourceTest.java
+++ b/stack/rest/src/test/java/org/usergrid/rest/applications/users/ConnectionResourceTest.java
@@ -17,6 +17,7 @@ import org.usergrid.rest.test.resource.CustomCollection;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.UniformInterfaceException;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.usergrid.utils.MapUtils.hashMap;
@@ -190,4 +191,46 @@ public class ConnectionResourceTest extends AbstractRestIT {
assertEquals( "Should point to thing2 as an entity connection", thing2Id, returned );
}
+
+ @Test //USERGRID-3011
+ public void connectionsDeleteSecondEntityInConnectionTest() {
+
+ CustomCollection things = context.collection( "things" );
+
+ UUID thing1Id = getEntityId( things.create( hashMap( "name", "thing1" ) ), 0 );
+
+ UUID thing2Id = getEntityId( things.create( hashMap( "name", "thing2" ) ), 0 );
+
+ //create the connection
+ things.entity( thing1Id ).connection( "likes" ).entity( thing2Id ).post();
+
+ JsonNode response = things.entity( "thing2" ).delete();
+
+ JsonNode node = things.entity ( "thing2" ).get();
+
+ assertNull(node);
+
+ }
+
+ @Test //USERGRID-3011
+ public void connectionsDeleteFirstEntityInConnectionTest() {
+
+ CustomCollection things = context.collection( "things" );
+
+ UUID thing1Id = getEntityId( things.create( hashMap( "name", "thing1" ) ), 0 );
+
+ UUID thing2Id = getEntityId( things.create( hashMap( "name", "thing2" ) ), 0 );
+
+ //create the connection
+ things.entity( thing1Id ).connection( "likes" ).entity( thing2Id ).post();
+
+ JsonNode response = things.entity( "thing1" ).delete();
+
+ JsonNode node = things.entity ( "thing1" ).get();
+
+ assertNull(node);
+
+ }
+
+
}