X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=security%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fusermgt%2FInMemoryUserSetTest.java;h=4b035819b7617dc1c0645559e544046cc159d695;hb=ddd261f331280640c5b53c7128230b629ebcd268;hp=76eadebb892aca74280273fe2581ffc69d6dddf8;hpb=92e23e5ecf9614f2ab770a8cdedc0b21ddf1e127;p=utils diff --git a/security/src/test/java/org/wamblee/usermgt/InMemoryUserSetTest.java b/security/src/test/java/org/wamblee/usermgt/InMemoryUserSetTest.java index 76eadebb..4b035819 100644 --- a/security/src/test/java/org/wamblee/usermgt/InMemoryUserSetTest.java +++ b/security/src/test/java/org/wamblee/usermgt/InMemoryUserSetTest.java @@ -1,309 +1,415 @@ /* * 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.sql.SQLException; -import java.util.Set; - import junit.framework.TestCase; import org.wamblee.security.encryption.Md5HexMessageDigester; + import org.wamblee.usermgt.UserMgtException.Reason; +import java.sql.SQLException; + +import java.util.Set; + + /** * Tests the inmemory user set. Intended to be subclassed for other - * implementations of user set. + * implementations of user set. */ public class InMemoryUserSetTest extends TestCase { - + /** + * DOCUMENT ME! + */ protected static final String PASSWORD = "abc123"; - + + /** + * DOCUMENT ME! + */ private UserSet users; + + /** + * DOCUMENT ME! + */ private GroupSet groups; - - private Group group; - + + /** + * DOCUMENT ME! + */ + private Group group; + /** - * This method must be overriden in subclasses. - * @return New user set object. + * This method must be overriden in subclasses. + * + * @return New user set object. */ - protected UserSet createUserSet() { - return new InMemoryUserSet( new RegexpNameValidator(RegexpNameValidator.PASSWORD_PATTERN, Reason.INVALID_PASSWORD, "Password must contain at least 6 characters"), - new Md5HexMessageDigester()); + protected UserSet createUserSet() { + return new InMemoryUserSet(new RegexpNameValidator( + RegexpNameValidator.PASSWORD_PATTERN, Reason.INVALID_PASSWORD, + "Password must contain at least 6 characters"), + new Md5HexMessageDigester()); } - + /** - * This method must be overriden in subclasses. - * @return New group set object. + * This method must be overriden in subclasses. + * + * @return New group set object. */ - protected GroupSet createGroupSet() { - return new InMemoryGroupSet(); + protected GroupSet createGroupSet() { + return new InMemoryGroupSet(); } - + /* (non-Javadoc) * @see org.wamblee.test.SpringTestCase#setUp() */ + /** + * DOCUMENT ME! + * + * @throws Exception DOCUMENT ME! + */ @Override protected void setUp() throws Exception { super.setUp(); - users = createUserSet(); - groups = createGroupSet(); - group = new Group("group0"); + users = createUserSet(); + groups = createGroupSet(); + group = new Group("group0"); groups.add(group); checkUserCount(0); - } - - protected UserSet getUsers() { - return users; + + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + protected UserSet getUsers() { + return users; } - - protected GroupSet getGroups() { - return groups; + + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + protected GroupSet getGroups() { + return groups; } - - protected Group createGroup(String aName) { + + /** + * DOCUMENT ME! + * + * @param aName DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + protected Group createGroup(String aName) { return new Group(aName); } - - protected User createUser(String aName, String aPassword, Group aGroup) throws UserMgtException { + + /** + * DOCUMENT ME! + * + * @param aName DOCUMENT ME! + * @param aPassword DOCUMENT ME! + * @param aGroup DOCUMENT ME! + * + * @return DOCUMENT ME! + * + * @throws UserMgtException DOCUMENT ME! + */ + protected User createUser(String aName, String aPassword, Group aGroup) + throws UserMgtException { return UsermgtTestUtils.createUser(aName, aPassword, aGroup); } - - protected void addUserToGroup(User aUser, Group aGroup) throws UserMgtException { - aUser.addGroup(aGroup); + + /** + * DOCUMENT ME! + * + * @param aUser DOCUMENT ME! + * @param aGroup DOCUMENT ME! + * + * @throws UserMgtException DOCUMENT ME! + */ + protected void addUserToGroup(User aUser, Group aGroup) + throws UserMgtException { + aUser.addGroup(aGroup); } - - protected void removeUserFromGroup(User aUser, Group aGroup ) throws UserMgtException { - aUser.removeGroup(aGroup); + + /** + * DOCUMENT ME! + * + * @param aUser DOCUMENT ME! + * @param aGroup DOCUMENT ME! + * + * @throws UserMgtException DOCUMENT ME! + */ + protected void removeUserFromGroup(User aUser, Group aGroup) + throws UserMgtException { + aUser.removeGroup(aGroup); } - + /** - * Additional check to be implemented by a subclass. - * @param aUser User to check for existence. + * Additional check to be implemented by a subclass. + * + * @param aUser User to check for existence. + * + * @throws SQLException DOCUMENT ME! */ - protected void checkUserExists(String aUser) throws SQLException { + protected void checkUserExists(String aUser) throws SQLException { // Empty } - + /** - * Additional check to be implemented by a subclass. - * @param aUser User to check for non-existence. + * Additional check to be implemented by a subclass. + * + * @param aUser User to check for non-existence. + * + * @throws SQLException DOCUMENT ME! */ - protected void checkUserNotExists(String aUser) throws SQLException { + protected void checkUserNotExists(String aUser) throws SQLException { // Empty } - + /** - * Additional check to be implemented by a subclass. - * @param aSize Expected number of users. + * Additional check to be implemented by a subclass. + * + * @param aSize Expected number of users. + * + * @throws SQLException DOCUMENT ME! */ - protected void checkUserCount(int aSize) throws SQLException { - assertEquals(aSize, users.size()); + protected void checkUserCount(int aSize) throws SQLException { + assertEquals(aSize, users.size()); } - + /** - * Additional check to be implemented by a subclass. - * @param aUser User to check for existence. + * Additional check to be implemented by a subclass. + * + * @param aUser User to check for existence. + * + * @throws SQLException DOCUMENT ME! */ - protected void checkGroupExists(String aUser) throws SQLException { + protected void checkGroupExists(String aUser) throws SQLException { // Empty } - + /** - * Additional check to be implemented by a subclass. - * @param aUser User to check for non-existence. + * Additional check to be implemented by a subclass. + * + * @param aUser User to check for non-existence. + * + * @throws SQLException DOCUMENT ME! */ - protected void checkGroupNotExists(String aUser) throws SQLException { + protected void checkGroupNotExists(String aUser) throws SQLException { // Empty } - + /** - * Additional check to be implemented by a subclass. - * @param aSize Expected number of users. + * Additional check to be implemented by a subclass. + * + * @param aSize Expected number of users. + * + * @throws SQLException DOCUMENT ME! */ - protected void checkGroupCount(int aSize) throws SQLException { + protected void checkGroupCount(int aSize) throws SQLException { // Empty } - - + /** - * Adds a user and verifies that the user is added using - * find(), list(), and contains(). + * Adds a user and verifies that the user is added using find(), + * list(), and contains(). * + * @throws SQLException DOCUMENT ME! + * @throws UserMgtException DOCUMENT ME! */ - public void testAdd() throws SQLException, UserMgtException { - User user = createUser("user1", PASSWORD, group); - assertTrue( users.add(user) ); - checkUserExists(user.getName()); - checkUserCount(1); - User user2 = users.find("user1"); - assertNotNull(user2); - assertEquals(user.getName(), user2.getName()); - Set set = users.list(); - assertEquals(1, set.size()); - assertTrue(set.contains(user)); + public void testAdd() throws SQLException, UserMgtException { + User user = createUser("user1", PASSWORD, group); + assertTrue(users.add(user)); + checkUserExists(user.getName()); + checkUserCount(1); + + User user2 = users.find("user1"); + assertNotNull(user2); + assertEquals(user.getName(), user2.getName()); + + Set set = users.list(); + assertEquals(1, set.size()); + assertTrue(set.contains(user)); } - + /** * Tries to find a non-existing user. Verifies that null is - * returned. + * returned. * + * @throws SQLException DOCUMENT ME! + * @throws UserMgtException DOCUMENT ME! */ - public void testFindUnknownUser() throws SQLException, UserMgtException { - User user1 = createUser("user1", PASSWORD, group); - User user2 = createUser("user2", PASSWORD, group); - users.add(user1); - users.add(user2); - checkUserExists(user1.getName()); - checkUserExists(user2.getName()); - - assertNull( users.find("user3") ); - checkUserNotExists("user3"); + public void testFindUnknownUser() throws SQLException, UserMgtException { + User user1 = createUser("user1", PASSWORD, group); + User user2 = createUser("user2", PASSWORD, group); + users.add(user1); + users.add(user2); + checkUserExists(user1.getName()); + checkUserExists(user2.getName()); + + assertNull(users.find("user3")); + checkUserNotExists("user3"); } - + /** - * Adds duplicate user. Verifies that the existing user is left untouched. + * Adds duplicate user. Verifies that the existing user is left + * untouched. + * + * @throws SQLException DOCUMENT ME! + * @throws UserMgtException DOCUMENT ME! */ - public void testAddDuplicateUser() throws SQLException, UserMgtException { - User user1 = createUser("user1", PASSWORD, group); - users.add(user1); - - assertEquals(1, users.list().size()); - assertTrue(users.contains(user1)); - user1 = createUser("user1", PASSWORD, group); - assertFalse(users.add(user1)); - assertEquals(1, users.list().size()); - - checkUserExists(user1.getName()); - checkUserCount(1); + public void testAddDuplicateUser() throws SQLException, UserMgtException { + User user1 = createUser("user1", PASSWORD, group); + users.add(user1); + + assertEquals(1, users.list().size()); + assertTrue(users.contains(user1)); + user1 = createUser("user1", PASSWORD, group); + assertFalse(users.add(user1)); + assertEquals(1, users.list().size()); + + checkUserExists(user1.getName()); + checkUserCount(1); } - + /** - * Removes a user. Verifies that the user is - * removed and the return value is true. + * Removes a user. Verifies that the user is removed and the + * return value is true. * + * @throws SQLException DOCUMENT ME! + * @throws UserMgtException DOCUMENT ME! */ - public void testRemoveUser() throws SQLException, UserMgtException { - User user1 = createUser("user1", PASSWORD, group); - users.add(user1); + public void testRemoveUser() throws SQLException, UserMgtException { + User user1 = createUser("user1", PASSWORD, group); + users.add(user1); assertTrue(users.contains(user1)); checkUserCount(1); - - assertTrue(users.remove(user1)); - assertFalse(users.contains(user1)); + + assertTrue(users.remove(user1)); + assertFalse(users.contains(user1)); assertNull(users.find(user1.getName())); assertEquals(0, users.list().size()); checkUserCount(0); } - + /** - * Removes a non-existing user. Verifies that no users are - * removed an that the return value is true. + * Removes a non-existing user. Verifies that no users are removed + * an that the return value is true. * + * @throws SQLException DOCUMENT ME! + * @throws UserMgtException DOCUMENT ME! */ - public void testRemoveNonExistingUser() throws SQLException, UserMgtException { - User user1 = createUser("user1", PASSWORD, group); - users.add(user1); + public void testRemoveNonExistingUser() + throws SQLException, UserMgtException { + User user1 = createUser("user1", PASSWORD, group); + users.add(user1); checkUserCount(1); + User nonExistingUser = createUser("user2", PASSWORD, group); nonExistingUser.setPrimaryKey(new Long(1000)); nonExistingUser.setPersistedVersion(10); assertFalse(users.remove(nonExistingUser)); - assertTrue(users.contains(user1)); + assertTrue(users.contains(user1)); assertEquals(1, users.list().size()); - checkUserCount(1); + checkUserCount(1); } - + /** - * Adds a number of users to the set and verifies that list() - * returns them all. + * Adds a number of users to the set and verifies that list() + * returns them all. * + * @throws SQLException DOCUMENT ME! + * @throws UserMgtException DOCUMENT ME! */ - public void testList() throws SQLException, UserMgtException { - User user1 = createUser("user1", PASSWORD, group); - User user2 = createUser("user2", PASSWORD, group); - User user3 = createUser("user3", PASSWORD, group); - assertTrue(users.add(user1)); - assertTrue(users.add(user2)); + public void testList() throws SQLException, UserMgtException { + User user1 = createUser("user1", PASSWORD, group); + User user2 = createUser("user2", PASSWORD, group); + User user3 = createUser("user3", PASSWORD, group); + assertTrue(users.add(user1)); + assertTrue(users.add(user2)); assertTrue(users.add(user3)); - - checkUserExists(user1.getName()); - checkUserExists(user2.getName()); - checkUserExists(user3.getName()); - - Set set = users.list(); - assertTrue(set.contains(user1)); - assertTrue(set.contains(user2)); + + checkUserExists(user1.getName()); + checkUserExists(user2.getName()); + checkUserExists(user3.getName()); + + Set set = users.list(); + assertTrue(set.contains(user1)); + assertTrue(set.contains(user2)); assertTrue(set.contains(user3)); - - checkUserCount(3); + + checkUserCount(3); } - + /** - * Adds several users to different groups and verifies that - * the correct users are returned when looking for users in - * different groups. + * Adds several users to different groups and verifies that the + * correct users are returned when looking for users in different groups. + * * @throws SQLException + * @throws UserMgtException DOCUMENT ME! */ public void testListByGroup() throws SQLException, UserMgtException { - Group group1 = new Group("group1"); + Group group1 = new Group("group1"); Group group2 = new Group("group2"); Group group3 = new Group("group3"); - groups.add(group1); - groups.add(group2); + groups.add(group1); + groups.add(group2); groups.add(group3); - + // user1 user2 user3 // group1 y // group2 y y // group3 y y y - User user1 = createUser("user1", PASSWORD, group1); - user1.addGroup(group2); + user1.addGroup(group2); user1.addGroup(group3); - User user2 = createUser("user2", PASSWORD, group2); - user2.addGroup(group3); + + User user2 = createUser("user2", PASSWORD, group2); + user2.addGroup(group3); + User user3 = createUser("user3", PASSWORD, group3); - users.add(user1); - users.add(user2); + users.add(user1); + users.add(user2); users.add(user3); - + checkUserExists(user1.getName()); - checkUserExists(user2.getName()); - checkUserExists(user3.getName()); - + checkUserExists(user2.getName()); + checkUserExists(user3.getName()); + checkGroupExists(group1.getName()); - checkGroupExists(group2.getName()); - checkGroupExists(group3.getName()); - - checkUserCount(3); - checkGroupCount(3+1); // also count the group that was created in the setUp(). - + checkGroupExists(group2.getName()); + checkGroupExists(group3.getName()); + + checkUserCount(3); + checkGroupCount(3 + 1); // also count the group that was created in the setUp(). + Set list = users.list(group1); - assertTrue(list.contains(user1)); + assertTrue(list.contains(user1)); assertEquals(1, list.size()); - - list = users.list(group2); + + list = users.list(group2); assertTrue(list.contains(user1)); assertTrue(list.contains(user2)); assertEquals(2, list.size()); - - list = users.list(group3); + + list = users.list(group3); assertTrue(list.contains(user1)); assertTrue(list.contains(user2)); assertTrue(list.contains(user3));