X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=security%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fusermgt%2Fhibernate%2FHibernateUserSetTest.java;h=6c5e095d4b33951cdeee14dfe24b233fb99f3273;hb=8de36ff0206c996baf3ee4adc3e2293b12ff5f39;hp=9d5e80b6f82d42408eb73b5eaae4b956becfd352;hpb=532f7219273021ef3652e0abe1326b7aeed1f30a;p=utils diff --git a/security/src/test/java/org/wamblee/usermgt/hibernate/HibernateUserSetTest.java b/security/src/test/java/org/wamblee/usermgt/hibernate/HibernateUserSetTest.java index 9d5e80b6..6c5e095d 100644 --- a/security/src/test/java/org/wamblee/usermgt/hibernate/HibernateUserSetTest.java +++ b/security/src/test/java/org/wamblee/usermgt/hibernate/HibernateUserSetTest.java @@ -1,184 +1,264 @@ /* * 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.hibernate; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.Set; +import org.wamblee.cache.EhCache; + +import org.wamblee.system.adapters.DefaultContainer; +import org.wamblee.system.adapters.ObjectConfiguration; +import org.wamblee.system.core.Scope; +import org.wamblee.system.spring.component.DatabaseTesterComponent; -import org.wamblee.cache.Cache; -import org.wamblee.general.BeanKernel; import org.wamblee.usermgt.Group; import org.wamblee.usermgt.GroupSet; import org.wamblee.usermgt.InMemoryUserSetTest; import org.wamblee.usermgt.User; import org.wamblee.usermgt.UserMgtException; import org.wamblee.usermgt.UserSet; -import org.wamblee.usermgt.UsermgtHibernateMappingFiles; -import org.wamblee.usermgt.UsermgtSpringConfigFiles; + +import java.io.Serializable; + +import java.sql.ResultSet; +import java.sql.SQLException; + +import java.util.Set; /** - * Tests for {@link org.wamblee.usermgt.hibernate.HibernateGroupSet} - * + * Tests for {@link org.wamblee.usermgt.hibernate.HibernateGroupSet} + * * @author Erik Brakkee */ public class HibernateUserSetTest extends InMemoryUserSetTest { - private static final String USER_TABLE = "USERS"; - private static final String GROUP_TABLE = "GROUPS"; - - private static final String USER_QUERY = "select * from " + USER_TABLE + " where name = ?"; - private static final String GROUP_QUERY = "select * from " + GROUP_TABLE + " where name = ?"; - public HibernateUserSetTest() { - super(UsermgtSpringConfigFiles.class, UsermgtHibernateMappingFiles.class); - } - - /* (non-Javadoc) + private static final String GROUP_TABLE = "GROUPS"; + + private static final String USER_QUERY = "select * from " + USER_TABLE + + " where name = ?"; + + private static final String GROUP_QUERY = "select * from " + GROUP_TABLE + + " where name = ?"; + + private DefaultContainer container; + + private Scope scope; + + private UserSet userset; + + private GroupSet groupset; + + private EhCache userCache; + + private DatabaseTesterComponent databaseTester; + + /* + * (non-Javadoc) + * * @see org.wamblee.usermgt.InMemoryUserSetTest#setUp() */ @Override protected void setUp() throws Exception { - super.setUp(); + container = new UserMgtRepositoryTestContainer("top"); + + ObjectConfiguration config = new ObjectConfiguration( + HibernateUserSetTest.class); + config.getSetterConfig().clear().add("setUserset").add("setGroupset") + .add("setDatabaseTester").add("setUserCache"); + container.addComponent("testcase", this, config); + + scope = container.start(); + clearUserCache(); + databaseTester.cleanDatabase(); + + super.setUp(); + } + + public void setUserset(UserSet aUserset) { + userset = aUserset; + } + + public void setGroupset(GroupSet aGroupset) { + groupset = aGroupset; + } + + public void setUserCache(EhCache aUserCache) { + userCache = aUserCache; + } + + public void setDatabaseTester(DatabaseTesterComponent aDatabaseTester) { + databaseTester = aDatabaseTester; + } + + @Override + protected void tearDown() throws Exception { + container.stop(scope); + super.tearDown(); } /** - * Clears the user cache. + * Clears the user cache. */ private void clearUserCache() { - BeanKernel.getBeanFactory().find("userCache", Cache.class).clear(); + userCache.clear(); } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.wamblee.usermgt.InMemoryGroupSetTest#checkGroupCount(int) */ @Override protected void checkUserCount(int aSize) throws SQLException { - super.flush(); + databaseTester.flush(); super.checkUserCount(aSize); - assertEquals(aSize, getTableSize(USER_TABLE)); + assertEquals(aSize, databaseTester.getTableSize(USER_TABLE)); } - - /* (non-Javadoc) - * @see org.wamblee.usermgt.InMemoryGroupSetTest#checkGroupExists(java.lang.String) + + /* + * (non-Javadoc) + * + * @see + * org.wamblee.usermgt.InMemoryGroupSetTest#checkGroupExists(java.lang.String + * ) */ @Override protected void checkUserExists(String aUser) throws SQLException { - flush(); - ResultSet result = executeQuery(USER_QUERY, aUser); - assertEquals(1, countResultSet(result)); + databaseTester.flush(); + + ResultSet result = databaseTester.executeQuery(USER_QUERY, aUser); + assertEquals(1, databaseTester.countResultSet(result)); } - - /* (non-Javadoc) - * @see org.wamblee.usermgt.InMemoryGroupSetTest#checkGroupNotExists(java.lang.String) + + /* + * (non-Javadoc) + * + * @see + * org.wamblee.usermgt.InMemoryGroupSetTest#checkGroupNotExists(java.lang + * .String) */ @Override protected void checkUserNotExists(String aUser) throws SQLException { - flush(); - ResultSet result = executeQuery(USER_QUERY, aUser); - assertEquals(0, countResultSet(result)); + databaseTester.flush(); + + ResultSet result = databaseTester.executeQuery(USER_QUERY, aUser); + assertEquals(0, databaseTester.countResultSet(result)); } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.wamblee.usermgt.InMemoryGroupSetTest#checkGroupCount(int) */ @Override protected void checkGroupCount(int aSize) throws SQLException { - super.flush(); - assertEquals(aSize, getTableSize(GROUP_TABLE)); + databaseTester.flush(); + assertEquals(aSize, databaseTester.getTableSize(GROUP_TABLE)); } - - /* (non-Javadoc) - * @see org.wamblee.usermgt.InMemoryGroupSetTest#checkGroupExists(java.lang.String) + + /* + * (non-Javadoc) + * + * @see + * org.wamblee.usermgt.InMemoryGroupSetTest#checkGroupExists(java.lang.String + * ) */ @Override protected void checkGroupExists(String aGroup) throws SQLException { - flush(); - - ResultSet result = executeQuery(GROUP_QUERY, aGroup); - assertEquals(1, countResultSet(result)); - } - - /* (non-Javadoc) - * @see org.wamblee.usermgt.InMemoryGroupSetTest#checkGroupNotExists(java.lang.String) + databaseTester.flush(); + + ResultSet result = databaseTester.executeQuery(GROUP_QUERY, aGroup); + assertEquals(1, databaseTester.countResultSet(result)); + } + + /* + * (non-Javadoc) + * + * @see + * org.wamblee.usermgt.InMemoryGroupSetTest#checkGroupNotExists(java.lang + * .String) */ @Override protected void checkGroupNotExists(String aGroup) throws SQLException { - flush(); - ResultSet result = executeQuery(GROUP_QUERY, aGroup); - assertEquals(0, countResultSet(result)); + databaseTester.flush(); + + ResultSet result = databaseTester.executeQuery(GROUP_QUERY, aGroup); + assertEquals(0, databaseTester.countResultSet(result)); } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.wamblee.usermgt.InMemoryGroupSetTest#createGroupSet() */ @Override protected UserSet createUserSet() { - return BeanKernel.getBeanFactory().find(UserSet.class); + return userset; } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.wamblee.usermgt.InMemoryUserSetTest#createGroupSet() */ @Override protected GroupSet createGroupSet() { - return BeanKernel.getBeanFactory().find(GroupSet.class); + return groupset; } /** - * Reproduction of a bug. - * Create a user which is in group1 - * Add it to a second group group2. - * Remove the user from group1. - * Verify the user is in group2. + * Reproduction of a bug. Create a user which is in group1 Add it to a + * second group group2. Remove the user from group1. Verify the user is in + * group2. + * */ public void testVerifyAddRemove() throws SQLException, UserMgtException { - cleanDatabase(); // just to be sure. - GroupSet groups = getGroups(); - assertEquals(0, groups.size()); + databaseTester.cleanDatabase(); // just to be sure. + + GroupSet groups = getGroups(); + assertEquals(0, groups.size()); + Group group1 = createGroup("group1"); Group group2 = createGroup("group2"); - groups.add(group1); - groups.add(group2); - checkGroupExists("group1"); + groups.add(group1); + groups.add(group2); + checkGroupExists("group1"); checkGroupExists("group2"); - + User user = createUser("user", PASSWORD, group1); - getUsers().add(user); + getUsers().add(user); checkUserExists("user"); - + addUserToGroup(user, group2); getUsers().userModified(user); - clearUserCache(); + clearUserCache(); + User user2 = getUsers().find("user"); Set userGroups = user2.getGroups(); - assertTrue(user2.isInGroup("group1")); + assertTrue(user2.isInGroup("group1")); assertTrue(user2.isInGroup("group2")); assertEquals(2, userGroups.size()); - - removeUserFromGroup(user, group1); - getUsers().userModified(user); - clearUserCache(); - user2 = getUsers().find("user"); + + removeUserFromGroup(user, group1); + getUsers().userModified(user); + clearUserCache(); + user2 = getUsers().find("user"); userGroups = user2.getGroups(); - assertFalse(user2.isInGroup("group1")); + assertFalse(user2.isInGroup("group1")); assertTrue(user2.isInGroup("group2")); assertEquals(1, userGroups.size()); } - }