X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=security%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fusermgt%2FUserAdministrationImplTest.java;h=d3990a2e762ff92873b938688065ccf1f10ddd8d;hb=8de36ff0206c996baf3ee4adc3e2293b12ff5f39;hp=bdf4f2058fc8a1d1645549697226f548d4c0c9f9;hpb=0d8d8f24656e585ee75558cfd6a4c661f8f14985;p=utils diff --git a/security/src/test/java/org/wamblee/usermgt/UserAdministrationImplTest.java b/security/src/test/java/org/wamblee/usermgt/UserAdministrationImplTest.java index bdf4f205..d3990a2e 100644 --- a/security/src/test/java/org/wamblee/usermgt/UserAdministrationImplTest.java +++ b/security/src/test/java/org/wamblee/usermgt/UserAdministrationImplTest.java @@ -1,38 +1,38 @@ /* * Copyright 2005 the original author or authors. - * + * * Licensed 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.wamblee.usermgt; -import java.util.Set; - import junit.framework.TestCase; import org.apache.log4j.Logger; + import org.wamblee.security.encryption.Md5HexMessageDigester; + import org.wamblee.usermgt.UserMgtException.Reason; +import java.util.Set; + /** * Test of user administration implementation. - * + * * @author Erik Brakkee */ public class UserAdministrationImplTest extends TestCase { - private static final Logger LOGGER = Logger - .getLogger(UserAdministrationImplTest.class); + .getLogger(UserAdministrationImplTest.class); private static final String USER1 = "piet"; @@ -48,7 +48,6 @@ public class UserAdministrationImplTest extends TestCase { private UserAdministration admin; - /* * (non-Javadoc) * @@ -61,17 +60,21 @@ public class UserAdministrationImplTest extends TestCase { } protected UserAdministration createAdmin() { - UserSet users = new InMemoryUserSet( new RegexpNameValidator(RegexpNameValidator.PASSWORD_PATTERN, Reason.INVALID_PASSWORD, "Password must contain at least 6 characters"), - new Md5HexMessageDigester()); + UserSet users = new InMemoryUserSet(new RegexpNameValidator( + RegexpNameValidator.PASSWORD_PATTERN, Reason.INVALID_PASSWORD, + "Password must contain at least 6 characters"), + new Md5HexMessageDigester()); GroupSet groups = new InMemoryGroupSet(); + return new UserAdministrationImpl(users, groups, - new RegexpNameValidator(RegexpNameValidator.ID_PATTERN, - Reason.INVALID_USERNAME, "Invalid user"), - new RegexpNameValidator(RegexpNameValidator.ID_PATTERN, - Reason.INVALID_GROUPNAME, "Invalid group")); + new RegexpNameValidator(RegexpNameValidator.ID_PATTERN, + Reason.INVALID_USERNAME, "Invalid user"), + new RegexpNameValidator(RegexpNameValidator.ID_PATTERN, + Reason.INVALID_GROUPNAME, "Invalid group")); } - - protected User createUser(String aName, String aPassword, Group aGroup) throws UserMgtException { + + protected User createUser(String aName, String aPassword, Group aGroup) + throws UserMgtException { return UsermgtTestUtils.createUser(aName, aPassword, aGroup); } @@ -107,7 +110,7 @@ public class UserAdministrationImplTest extends TestCase { fail(); } catch (UserMgtException e) { assertEquals(UserMgtException.Reason.INVALID_GROUPNAME, e - .getReason()); + .getReason()); assertEquals(0, admin.getGroupCount()); } } @@ -133,13 +136,16 @@ public class UserAdministrationImplTest extends TestCase { */ public void testCreateDuplicateGroup() throws UserMgtException { admin.createGroup(GROUP1); + try { admin.createGroup(GROUP1); } catch (UserMgtException e) { assertEquals(UserMgtException.Reason.DUPLICATE_GROUP, e.getReason()); assertEquals(1, admin.getGroupCount()); + return; } + fail(); } @@ -167,7 +173,7 @@ public class UserAdministrationImplTest extends TestCase { fail(); } catch (UserMgtException e) { assertEquals(UserMgtException.Reason.INVALID_USERNAME, e - .getReason()); + .getReason()); assertEquals(0, admin.getUserCount()); } } @@ -194,6 +200,7 @@ public class UserAdministrationImplTest extends TestCase { public void testCreateDuplicateUser() throws UserMgtException { Group group = admin.createGroup(GROUP1); admin.createUser(USER1, PASS1, group); + try { admin.createUser(USER1, PASS2, group); fail(); @@ -235,7 +242,6 @@ public class UserAdministrationImplTest extends TestCase { * */ public void testAddUserToGroup() throws UserMgtException { - Group group = admin.createGroup(GROUP1); User user = admin.createUser(USER1, PASS1, group); Group group2 = admin.createGroup(GROUP2); @@ -244,6 +250,7 @@ public class UserAdministrationImplTest extends TestCase { admin.addUserToGroup(user, group2); assertTrue(user.isInGroup(group)); assertTrue(user.isInGroup(group2)); + Set users = admin.getUsers(group2); assertNotNull(users); assertEquals(1, users.size()); @@ -253,9 +260,11 @@ public class UserAdministrationImplTest extends TestCase { admin.addUserToGroup(user, group); } catch (UserMgtException e) { assertEquals(UserMgtException.Reason.USER_ALREADY_IN_GROUP, e - .getReason()); + .getReason()); + return; } + fail(); } @@ -267,12 +276,15 @@ public class UserAdministrationImplTest extends TestCase { public void testAddUserToGroupUnknownUser() throws UserMgtException { Group group = admin.createGroup(GROUP1); User user = createUser(USER1, PASS1, group); + try { admin.addUserToGroup(user, group); } catch (UserMgtException e) { assertEquals(UserMgtException.Reason.UNKNOWN_USER, e.getReason()); + return; } + fail(); } @@ -285,12 +297,15 @@ public class UserAdministrationImplTest extends TestCase { Group group = admin.createGroup(GROUP1); User user = admin.createUser(USER1, PASS1, group); Group group2 = new Group(GROUP2); + try { admin.addUserToGroup(user, group2); } catch (UserMgtException e) { assertEquals(UserMgtException.Reason.UNKNOWN_GROUP, e.getReason()); + return; } + fail(); } @@ -298,6 +313,7 @@ public class UserAdministrationImplTest extends TestCase { * Removes a user from a group. Verifies that the user is removed from the * group using several API calls. Verifies that an exception occurs if the * user not part of the group or if the user is only part of one group. + * */ public void testRemoveUserFromGroup() throws UserMgtException { Group group = admin.createGroup(GROUP1); @@ -305,6 +321,7 @@ public class UserAdministrationImplTest extends TestCase { User user = admin.createUser(USER1, PASS1, group); Group group2 = admin.createGroup(GROUP2); admin.addUserToGroup(user, group2); + Set groups = user.getGroups(); assertEquals(2, groups.size()); assertTrue(groups.contains(group)); @@ -325,6 +342,7 @@ public class UserAdministrationImplTest extends TestCase { public void testRemoveUserFromGroupUnknownUser() throws UserMgtException { Group group = admin.createGroup(GROUP1); User user = createUser(USER1, GROUP1, group); + try { admin.removeUserFromGroup(user, group); } catch (UserMgtException e) { @@ -341,6 +359,7 @@ public class UserAdministrationImplTest extends TestCase { Group group = admin.createGroup(GROUP1); User user = admin.createUser(USER1, PASS1, group); Group group2 = new Group(GROUP2); + try { admin.removeUserFromGroup(user, group2); } catch (UserMgtException e) { @@ -351,15 +370,17 @@ public class UserAdministrationImplTest extends TestCase { /** * Removes a user from a group where the user is only part of one group. * Verifies that an exception is thrown. + * */ public void testRemoveUserFromGroupOnlyGroup() throws UserMgtException { Group group = admin.createGroup(GROUP1); User user = admin.createUser(USER1, PASS1, group); + try { admin.removeUserFromGroup(user, group); } catch (UserMgtException e) { assertEquals(UserMgtException.Reason.USER_MUST_BE_IN_A_GROUP, e - .getReason()); + .getReason()); } } @@ -375,6 +396,7 @@ public class UserAdministrationImplTest extends TestCase { User user1 = admin.createUser(USER1, PASS1, group1); admin.addUserToGroup(user1, group2); + User user2 = admin.createUser(USER2, PASS2, group2); Set users = admin.getUsers(); @@ -424,11 +446,14 @@ public class UserAdministrationImplTest extends TestCase { admin.renameUser(user1, user1.getName()); } catch (UserMgtException e2) { assertEquals(UserMgtException.Reason.TRIVIAL_RENAME, e2 - .getReason()); + .getReason()); + return; } + fail(); } + fail(); } @@ -440,6 +465,7 @@ public class UserAdministrationImplTest extends TestCase { public void testRenameUserInvalidUsername() throws UserMgtException { Group group = admin.createGroup(GROUP1); User user1 = admin.createUser(USER1, PASS1, group); + try { admin.renameUser(user1, USER2); } catch (UserMgtException e) { @@ -460,6 +486,7 @@ public class UserAdministrationImplTest extends TestCase { assertEquals(group, admin.getGroup(GROUP2)); admin.createGroup(GROUP1); + try { admin.renameGroup(group, GROUP1); } catch (UserMgtException e) { @@ -470,12 +497,16 @@ public class UserAdministrationImplTest extends TestCase { admin.renameGroup(group, group.getName()); } catch (UserMgtException e2) { assertEquals(UserMgtException.Reason.TRIVIAL_RENAME, e2 - .getReason()); + .getReason()); + return; } + fail(); + return; } + fail(); } @@ -486,6 +517,7 @@ public class UserAdministrationImplTest extends TestCase { */ public void testRenameGroupInvalidGroupname() throws UserMgtException { Group group = admin.createGroup(GROUP1); + try { admin.renameGroup(group, "a b"); } catch (UserMgtException e) { @@ -532,13 +564,16 @@ public class UserAdministrationImplTest extends TestCase { group1 = admin.createGroup(GROUP1); admin.createUser(USER1, PASS1, group1); + try { admin.removeGroup(group1); } catch (UserMgtException e) { assertEquals(UserMgtException.Reason.GROUP_STILL_OCCUPIED, e - .getReason()); + .getReason()); + return; } + fail(); } @@ -549,6 +584,7 @@ public class UserAdministrationImplTest extends TestCase { public void testRemoveGroupUnknownGroup() throws UserMgtException { Group group = admin.createGroup(GROUP1); Group group2 = new Group(GROUP2); + try { admin.removeGroup(group2); } catch (UserMgtException e) { @@ -568,6 +604,7 @@ public class UserAdministrationImplTest extends TestCase { // retrieve the user and verifies the password hasn't changed. User user2 = admin.getUser(USER1); + try { user2.checkPassword(PASS2); fail(); // password should not have changed already. @@ -580,7 +617,6 @@ public class UserAdministrationImplTest extends TestCase { user2 = admin.getUser(USER1); user2.checkPassword(PASS2); // this time it should succeed. - } /** @@ -593,11 +629,12 @@ public class UserAdministrationImplTest extends TestCase { int n = 1000; long time = System.currentTimeMillis(); + for (int i = 0; i < n; i++) { admin.getUser(USER1); } - LOGGER.info("Looked up a user " + n + " times in " - + (float) (System.currentTimeMillis() - time) / 1000.0); - } + LOGGER.info("Looked up a user " + n + " times in " + + ((float) (System.currentTimeMillis() - time) / 1000.0)); + } }