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()));