Additional tests

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

Branch: refs/heads/1.x
Commit: e525f4fa966b6f30911536cd20359514d9079701
Parents: bb6198f
Author: Dave Johnson <[email protected]>
Authored: Mon Jan 11 18:04:17 2016 -0500
Committer: Dave Johnson <[email protected]>
Committed: Mon Jan 11 18:04:17 2016 -0500

----------------------------------------------------------------------
 .../apache/usergrid/tools/UserOrgManager.java   | 42 ++++-----
 .../tools/DuplicateAdminUserRepairTest.java     | 95 ++++++++++++++++----
 .../usergrid/tools/MockUserOrgManager.java      | 26 +++++-
 3 files changed, 124 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/e525f4fa/stack/tools/src/main/java/org/apache/usergrid/tools/UserOrgManager.java
----------------------------------------------------------------------
diff --git 
a/stack/tools/src/main/java/org/apache/usergrid/tools/UserOrgManager.java 
b/stack/tools/src/main/java/org/apache/usergrid/tools/UserOrgManager.java
index b18b8ca..383fb9b 100644
--- a/stack/tools/src/main/java/org/apache/usergrid/tools/UserOrgManager.java
+++ b/stack/tools/src/main/java/org/apache/usergrid/tools/UserOrgManager.java
@@ -282,32 +282,34 @@ class UserOrgManager implements UserOrgInterface {
 
     @Override
     public Org getOrg(UUID uuid) throws Exception {
-
         EntityManager em = emf.getEntityManager( 
CassandraService.MANAGEMENT_APPLICATION_ID );
-        Entity entity = em.get( uuid );
-
-        Org org = new Org(
-                entity.getUuid(),
-                entity.getProperty( "path" ) + "",
-                entity.getCreated() );
-        org.sourceValue = entity;
-
-        return org;
+        Group entity = em.get( uuid , Group.class );
+        if ( entity != null ) {
+            Org org = new Org(
+                    entity.getUuid(),
+                    entity.getPath(),
+                    entity.getCreated() );
+            org.sourceValue = entity;
+            return org;
+        }
+        return null;
     }
 
+    
     @Override
     public OrgUser getOrgUser(UUID uuid) throws Exception {
         EntityManager em = emf.getEntityManager( 
CassandraService.MANAGEMENT_APPLICATION_ID );
-        Entity entity = em.get( uuid );
-        
-        OrgUser user = new OrgUser( 
-            entity.getUuid(),
-            entity.getType(),
-            entity.getProperty("email")+"",
-            entity.getCreated()
-        );
-       
-        return user;
+        User entity = em.get( uuid, User.class );
+        if ( entity != null ) {
+            OrgUser user = new OrgUser(
+                    entity.getUuid(),
+                    entity.getUsername(),
+                    entity.getEmail(),
+                    entity.getCreated()
+            );
+            return user;
+        }
+        return null;
     }
 
 

http://git-wip-us.apache.org/repos/asf/usergrid/blob/e525f4fa/stack/tools/src/test/java/org/apache/usergrid/tools/DuplicateAdminUserRepairTest.java
----------------------------------------------------------------------
diff --git 
a/stack/tools/src/test/java/org/apache/usergrid/tools/DuplicateAdminUserRepairTest.java
 
b/stack/tools/src/test/java/org/apache/usergrid/tools/DuplicateAdminUserRepairTest.java
index 1ba3766..6676b87 100644
--- 
a/stack/tools/src/test/java/org/apache/usergrid/tools/DuplicateAdminUserRepairTest.java
+++ 
b/stack/tools/src/test/java/org/apache/usergrid/tools/DuplicateAdminUserRepairTest.java
@@ -22,6 +22,7 @@ import org.apache.usergrid.ServiceITSetup;
 import org.apache.usergrid.ServiceITSetupImpl;
 import org.apache.usergrid.ServiceITSuite;
 import org.apache.usergrid.management.OrganizationOwnerInfo;
+import org.apache.usergrid.management.UserInfo;
 import org.junit.ClassRule;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -31,11 +32,12 @@ import java.util.UUID;
 import static junit.framework.Assert.assertNull;
 import static junit.framework.Assert.assertTrue;
 import static junit.framework.TestCase.assertNotNull;
+import static org.apache.usergrid.tools.UserOrgInterface.OrgUser;
 import static org.junit.Assert.assertEquals;
 
 
 /**
- * Test duplicate org repair.
+ * Test duplicate admin repair.
  */
 public class DuplicateAdminUserRepairTest {
     
@@ -63,12 +65,12 @@ public class DuplicateAdminUserRepairTest {
         assertNotNull( "user2_b", mockManager.getOrgUser( 
mockManager.user2_b.getId() ));
 
         // verify that correct users indexed
-        usersIndexed( mockManager );
+        assertUsersIndexed( mockManager );
         
         dor.startTool( new String[] {}, false ); // false means do not call 
System.exit()
 
         // verify that correct users indexed
-        usersIndexed( mockManager );
+        assertUsersIndexed( mockManager );
 
         // verify that duplicate users are gone (the "a" users were the first 
ones created)
         assertNull( "must remove user1_a", mockManager.getOrgUser( 
mockManager.user1_a.getId() ));
@@ -80,7 +82,7 @@ public class DuplicateAdminUserRepairTest {
     }
 
     
-    private void usersIndexed( MockManager mockManager ) {
+    private void assertUsersIndexed(MockManager mockManager ) {
         assertEquals("user1_b is in the index",
                 
mockManager.lookupOrgUserByUsername(mockManager.user1_b.getUsername()).getId(),
                 mockManager.user1_b.getId() );
@@ -114,12 +116,12 @@ public class DuplicateAdminUserRepairTest {
         assertNotNull( "user2_b", mockManager.getOrgUser( 
mockManager.user2_b.getId() ));
 
         // verify that correct users indexed
-        usersIndexed( mockManager );
+        assertUsersIndexed( mockManager );
 
         dor.startTool( new String[] { "-dryrun", "true" }, false ); // false 
means do not call System.exit()
 
         // verify that correct users indexed
-        usersIndexed( mockManager );
+        assertUsersIndexed( mockManager );
         
         // insure nothng was deleted by dry-run
         assertNotNull( "dryrun should not delete user1_a", 
mockManager.getOrgUser( mockManager.user1_a.getId() ));
@@ -156,14 +158,12 @@ public class DuplicateAdminUserRepairTest {
 
         dor.startTool( new String[]{}, false );  // false means do not call 
System.exit()
 
-        dor.startTool( new String[]{"dryrun", "true"}, false ); // false means 
do not call System.exit()
-
         assertTrue( true ); // we're happy if we get to this point
     }
 
     
     @org.junit.Test
-    public void testManagerMethods() throws Exception {
+    public void testManagerLookupMethods() throws Exception {
         
         // create two orgs each with owning user
 
@@ -183,17 +183,82 @@ public class DuplicateAdminUserRepairTest {
         // start the tool so that Spring, Cassandra, etc/ gets initialized
         dor.startTool( new String[]{"-dryrun", "true"}, false ); // false 
means do not call System.exit()
 
-        assertNotNull( dor.manager.getOrgUser( 
orgOwnerInfo1.getOwner().getUuid() ));
-        assertNotNull( dor.manager.getOrgUser( 
orgOwnerInfo2.getOwner().getUuid() ));
-
+        testManagerLookupMethods( dor, orgOwnerInfo1, orgOwnerInfo2, true );
+        
         dor.manager.removeOrgUser( dor.manager.getOrgUser( 
orgOwnerInfo1.getOwner().getUuid() )); 
         dor.manager.removeOrgUser( dor.manager.getOrgUser( 
orgOwnerInfo2.getOwner().getUuid() ));
-        
-        assertNotNull( dor.manager.getOrgUser( 
orgOwnerInfo1.getOwner().getUuid() ));
-        assertNotNull( dor.manager.getOrgUser( 
orgOwnerInfo2.getOwner().getUuid() ));
+
+        testManagerLookupMethods( dor, orgOwnerInfo1, orgOwnerInfo2, false );
     }
     
     
+    private void testManagerLookupMethods( DuplicateAdminUserRepair dor, 
+                                    OrganizationOwnerInfo info1, 
+                                    OrganizationOwnerInfo info2,
+                                    boolean usersExist ) throws Exception {
+        if ( usersExist ) {
+            
+            assertNotNull( dor.manager.getOrgUser( info1.getOwner().getUuid() 
));
+            assertNotNull( dor.manager.getOrgUser( info2.getOwner().getUuid() 
));
+
+            assertNotNull( dor.manager.lookupOrgUserByEmail( 
info1.getOwner().getEmail() ));
+            assertNotNull( dor.manager.lookupOrgUserByEmail( 
info2.getOwner().getEmail() ));
+
+            assertNotNull( dor.manager.lookupOrgUserByUsername( 
info1.getOwner().getUsername() ));
+            assertNotNull( dor.manager.lookupOrgUserByUsername( 
info2.getOwner().getUsername() )); 
+            
+        } else {
+
+            assertNull( dor.manager.getOrgUser( info1.getOwner().getUuid() ) );
+            assertNull( dor.manager.getOrgUser( info2.getOwner().getUuid() ) );
+
+            assertNull( dor.manager.lookupOrgUserByEmail( 
info1.getOwner().getEmail() ) );
+            assertNull( dor.manager.lookupOrgUserByEmail( 
info2.getOwner().getEmail() ) );
+
+            assertNull( dor.manager.lookupOrgUserByUsername( 
info1.getOwner().getUsername() ) );
+            assertNull( dor.manager.lookupOrgUserByUsername( 
info2.getOwner().getUsername() ) );
+        }
+    }
+
+
+    @org.junit.Test
+    public void testManagerOrgUserUpdateMethod() throws Exception {
+
+        // create an org with an admin user
+        final String random1 = 
org.apache.commons.lang.RandomStringUtils.randomAlphanumeric( 10 );
+        final OrganizationOwnerInfo orgOwnerInfo1 = 
setup.getMgmtSvc().createOwnerAndOrganization(
+                "org_" + random1, "user_" + random1, "user_" + random1,
+                "user_" + random1 + "@example.com", "password" );
+
+        DuplicateAdminUserRepair dor = new 
DuplicateAdminUserRepair(setup.getEmf(), setup.getMgmtSvc());
+        dor.manager = dor.createNewRepairManager(); // test the real manager 
+
+        // start the tool so that Spring, Cassandra, etc/ gets initialized
+        dor.startTool( new String[]{"-dryrun", "true"}, false ); // false 
means do not call System.exit()
+
+        UserInfo userInfo = setup.getMgmtSvc().getAdminUserByUuid( 
orgOwnerInfo1.getOwner().getUuid() );
+        OrgUser user = dor.manager.getOrgUser( 
orgOwnerInfo1.getOwner().getUuid() );
+        assertEquals( userInfo.getUsername(), user.getUsername());
+        assertEquals( userInfo.getEmail(), user.getEmail());
+
+        // change user's username using updateOrgUser()
+        String newUsername = "boom_" + random1;
+        user.setUsername(newUsername);
+        dor.manager.updateOrgUser( user );
+        user = dor.manager.getOrgUser( orgOwnerInfo1.getOwner().getUuid() );
+        assertEquals( newUsername, user.getUsername());
+        
+        // change user's username using setOrgUserName()
+        newUsername = "blammo_" + random1;
+        dor.manager.setOrgUserName( user, newUsername );
+        user = dor.manager.getOrgUser( orgOwnerInfo1.getOwner().getUuid() );
+        assertEquals( newUsername, user.getUsername());
+    }
+    
+
+    /**
+     * Extend mock manager to add a pair of duplicate users.
+     */
     static class MockManager extends MockUserOrgManager {
 
         OrgUser user1_a;

http://git-wip-us.apache.org/repos/asf/usergrid/blob/e525f4fa/stack/tools/src/test/java/org/apache/usergrid/tools/MockUserOrgManager.java
----------------------------------------------------------------------
diff --git 
a/stack/tools/src/test/java/org/apache/usergrid/tools/MockUserOrgManager.java 
b/stack/tools/src/test/java/org/apache/usergrid/tools/MockUserOrgManager.java
index e8323e4..4b50f43 100644
--- 
a/stack/tools/src/test/java/org/apache/usergrid/tools/MockUserOrgManager.java
+++ 
b/stack/tools/src/test/java/org/apache/usergrid/tools/MockUserOrgManager.java
@@ -1,12 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package org.apache.usergrid.tools;
 
 import com.google.common.collect.HashMultimap;
-import com.google.common.collect.Multimap;
 import com.google.common.collect.SetMultimap;
-import rx.*;
 
-import java.util.*;
-import java.util.Observable;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+
 
 /**
  * Mock manager implementation for mockTesting.

Reply via email to