/*
- * Copyright 2005 the original author or authors.
+ * 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.
* 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.io.Serializable;
-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.usermgt.Group;
import org.wamblee.usermgt.GroupSet;
import org.wamblee.usermgt.InMemoryUserSetTest;
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
*/
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 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;
/*
*/
@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");
+ 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();
}
/*
* (non-Javadoc)
*
- * @see org.wamblee.usermgt.InMemoryGroupSetTest#checkGroupExists(java.lang.String)
+ * @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)
+ * @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#checkGroupExists(java.lang.String)
+ * @see
+ * org.wamblee.usermgt.InMemoryGroupSetTest#checkGroupExists(java.lang.String
+ * )
*/
@Override
protected void checkGroupExists(String aGroup) throws SQLException {
/*
* (non-Javadoc)
*
- * @see org.wamblee.usermgt.InMemoryGroupSetTest#checkGroupNotExists(java.lang.String)
+ * @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));
}
* 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);
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(1, userGroups.size());
}
-
}