You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by gr...@apache.org on 2015/12/30 22:02:01 UTC

usergrid git commit: Adding tests and fix for duplicate org administrators for collection connections. Only service level verification

Repository: usergrid
Updated Branches:
  refs/heads/USERGRID-1187 [created] 5c70fbf86


Adding tests and fix for duplicate org administrators for collection connections. Only service level verification


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

Branch: refs/heads/USERGRID-1187
Commit: 5c70fbf86cc0aa7d8f0fd9558de56b58f3e169e9
Parents: 2867d26
Author: George Reyes <gr...@apache.org>
Authored: Wed Dec 30 13:01:54 2015 -0800
Committer: George Reyes <gr...@apache.org>
Committed: Wed Dec 30 13:01:54 2015 -0800

----------------------------------------------------------------------
 .../rest/management/OrganizationsIT.java        | 61 ++++++++++++++++++++
 .../cassandra/ManagementServiceImpl.java        |  6 ++
 2 files changed, 67 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/5c70fbf8/stack/rest/src/test/java/org/apache/usergrid/rest/management/OrganizationsIT.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/management/OrganizationsIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/management/OrganizationsIT.java
index 3acdfd5..cd3929d 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/management/OrganizationsIT.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/management/OrganizationsIT.java
@@ -18,8 +18,10 @@ package org.apache.usergrid.rest.management;
 
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.TreeMap;
 
 import org.apache.usergrid.java.client.exception.ClientException;
 import org.apache.usergrid.rest.test.resource.model.*;
@@ -385,6 +387,65 @@ public class OrganizationsIT extends AbstractRestIT {
 
     }
 
+    @Test
+    public void testOrganizationNoDuplicateConnectionsPUT() throws Exception {
+
+        RestClient restClient = clientSetup.getRestClient();
+
+        //Setup what will be interested into the organization
+        Map<String, Object> properties = new HashMap<String, Object>();
+        Entity entity = new Entity( properties );
+
+        Organization orgPayload = clientSetup.getOrganization();
+        orgPayload.put( "properties", properties );
+
+
+        //retrieve the organization
+        Organization orgResponse = management().orgs().org( clientSetup.getOrganizationName() ).get();
+
+
+        this.refreshIndex();
+        //attempt to post duplicate connection
+        Entity userPostResponse = management().orgs().org( clientSetup.getOrganizationName() ).users().user( clientSetup.getEmail() ).put( entity );
+
+        Entity duplicateConnectionAdmins = management().orgs().org( clientSetup.getOrganizationName() ).users().get( Entity.class );
+        ArrayList organizationAdminUsers = ( ArrayList ) duplicateConnectionAdmins.get( "data" );
+        assertEquals(1,organizationAdminUsers.size() );
+
+    }
+
+    @Test
+    public void testOrganizationNoDuplicateConnectionsPOST() throws Exception {
+
+        RestClient restClient = clientSetup.getRestClient();
+
+        //Setup what will be interested into the organization
+        Map<String, Object> properties = new HashMap<String, Object>();
+        properties.put( "email",clientSetup.getEmail() );
+        Entity entity = new Entity( properties );
+
+        Organization orgPayload = clientSetup.getOrganization();
+        orgPayload.put( "properties", properties );
+
+
+        //retrieve the organization
+        Organization orgResponse = management().orgs().org( clientSetup.getOrganizationName() ).get();
+
+
+        this.refreshIndex();
+        //attempt to post duplicate connection
+        try {
+            Entity userPostResponse = management().orgs().org( clientSetup.getOrganizationName() ).users().post( Entity.class, entity );
+        }catch(Exception e){
+            //nom nom nom
+        }
+
+        Entity duplicateConnectionAdmins = management().orgs().org( clientSetup.getOrganizationName() ).users().get( Entity.class );
+        ArrayList organizationAdminUsers = ( ArrayList ) duplicateConnectionAdmins.get( "data" );
+        assertEquals(1,organizationAdminUsers.size() );
+
+    }
+
     /**
      * Create an organization payload with almost the same value for everyfield.
      * @param baseName

http://git-wip-us.apache.org/repos/asf/usergrid/blob/5c70fbf8/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java b/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
index af70966..e1f36de 100644
--- a/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
+++ b/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
@@ -1608,6 +1608,12 @@ public class ManagementServiceImpl implements ManagementService {
         }
 
         EntityManager em = emf.getEntityManager( smf.getManagementAppId() );
+
+        if(em.getCollection(organization.getUuid() ,"users",Query.fromQL( "select * where uuid ="+user.getUuid() ),Level.IDS ).size() >0){
+            logger.trace( "Found value: {} already in collection",user.getName() );
+            return;
+        }
+
         em.addToCollection(new SimpleEntityRef(Group.ENTITY_TYPE, organization.getUuid()), "users",
             new SimpleEntityRef(User.ENTITY_TYPE, user.getUuid()));