-/*
- * Copyright 2005-2010 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 org.junit.Ignore;
-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.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 java.io.Serializable;
-
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-import java.util.Set;
-
-/**
- * Tests for {@link org.wamblee.usermgt.hibernate.HibernateGroupSet}
- *
- * @author Erik Brakkee
- */
-@Ignore
-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 = ?";
-
- private DefaultContainer container;
-
- private Scope scope;
-
- private UserSet userset;
-
- private GroupSet groupset;
-
- private EhCache<Serializable, Serializable> userCache;
-
- private DatabaseTesterComponent databaseTester;
-
- /*
- * (non-Javadoc)
- *
- * @see org.wamblee.usermgt.InMemoryUserSetTest#setUp()
- */
- @Override
- protected void setUp() throws Exception {
- 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<Serializable, Serializable> 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.
- */
- private void clearUserCache() {
- userCache.clear();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.wamblee.usermgt.InMemoryGroupSetTest#checkGroupCount(int)
- */
- @Override
- protected void checkUserCount(int aSize) throws Exception {
- databaseTester.flush();
- super.checkUserCount(aSize);
- assertEquals(aSize, databaseTester.getTableSize(USER_TABLE));
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.wamblee.usermgt.InMemoryGroupSetTest#checkGroupExists(java.lang.String
- * )
- */
- @Override
- protected void checkUserExists(String aUser) throws SQLException {
- 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)
- */
- @Override
- protected void checkUserNotExists(String aUser) throws SQLException {
- databaseTester.flush();
-
- ResultSet result = databaseTester.executeQuery(USER_QUERY, aUser);
- assertEquals(0, databaseTester.countResultSet(result));
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.wamblee.usermgt.InMemoryGroupSetTest#checkGroupCount(int)
- */
- @Override
- protected void checkGroupCount(int aSize) throws SQLException {
- databaseTester.flush();
- assertEquals(aSize, databaseTester.getTableSize(GROUP_TABLE));
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.wamblee.usermgt.InMemoryGroupSetTest#checkGroupExists(java.lang.String
- * )
- */
- @Override
- protected void checkGroupExists(String aGroup) throws SQLException {
- 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 {
- databaseTester.flush();
-
- ResultSet result = databaseTester.executeQuery(GROUP_QUERY, aGroup);
- assertEquals(0, databaseTester.countResultSet(result));
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.wamblee.usermgt.InMemoryGroupSetTest#createGroupSet()
- */
- @Override
- protected UserSet createUserSet() {
- return userset;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.wamblee.usermgt.InMemoryUserSetTest#createGroupSet()
- */
- @Override
- protected GroupSet createGroupSet() {
- 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.
- *
- */
- public void testVerifyAddRemove() throws SQLException, UserMgtException {
- 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");
- checkGroupExists("group2");
-
- User user = createUser("user", PASSWORD, group1);
- getUsers().add(user);
- checkUserExists("user");
-
- addUserToGroup(user, group2);
- getUsers().userModified(user);
- clearUserCache();
-
- User user2 = getUsers().find("user");
- Set<Group> userGroups = user2.getGroups();
- assertTrue(user2.isInGroup("group1"));
- assertTrue(user2.isInGroup("group2"));
- assertEquals(2, userGroups.size());
-
- removeUserFromGroup(user, group1);
- getUsers().userModified(user);
- clearUserCache();
- user2 = getUsers().find("user");
- userGroups = user2.getGroups();
- assertFalse(user2.isInGroup("group1"));
- assertTrue(user2.isInGroup("group2"));
- assertEquals(1, userGroups.size());
- }
-}