/*
* 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.io.Serializable;
-import java.lang.reflect.Method;
-import java.sql.SQLException;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+
import org.wamblee.cache.EhCache;
+
import org.wamblee.system.adapters.ClassConfiguration;
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.system.spring.component.DatasourceComponent;
+
import org.wamblee.test.spring.TestTransactionCallbackWithoutResult;
+
import org.wamblee.usermgt.UserAdministration;
import org.wamblee.usermgt.UserAdministrationImplTest;
+import java.io.Serializable;
+
+import java.lang.reflect.Method;
+
+import java.sql.SQLException;
+
/**
* User administration tests with persistence based on Hibernate. This executes
* the same test cases as {@link org.wamblee.usermgt.UserAdministrationImplTest}
* with in addition, one test case that executes all Hibernate test cases
* separately with each test case in its own transaction.
- *
+ *
* @author Erik Brakkee
*/
public class HibernateUserAdministrationTest extends UserAdministrationImplTest {
-
- private static final Log LOG = LogFactory.getLog(HibernateUserAdministrationTest.class);
-
- private DefaultContainer _container;
- private Scope _scope;
-
- private DatabaseTesterComponent _databaseTester;
- private EhCache<Serializable, Serializable> _userCache;
- private UserAdministration _userAdmin;
-
-
- /* (non-Javadoc)
+ private static final Log LOG = LogFactory
+ .getLog(HibernateUserAdministrationTest.class);
+
+ private DefaultContainer container;
+
+ private Scope scope;
+
+ private DatabaseTesterComponent databaseTester;
+
+ private EhCache<Serializable, Serializable> userCache;
+
+ private UserAdministration userAdmin;
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.wamblee.usermgt.UserAdministrationImplTest#setUp()
*/
@Override
protected void setUp() throws Exception {
-
- _container = new DefaultContainer("top");
- DatabaseComponentFactory.addDatabaseConfig(_container);
- _container.addComponent(new DatasourceComponent("datasource"));
- _container.addComponent(new UserAdministrationComponent("admin", true));
-
- ClassConfiguration dbtesterConfig = new ClassConfiguration(DatabaseTesterComponent.class);
+ container = new DefaultContainer("top");
+ DatabaseComponentFactory.addDatabaseConfig(container);
+ container.addComponent(new DatasourceComponent("datasource"));
+ container.addComponent(new UserAdministrationComponent("admin", true));
+
+ ClassConfiguration dbtesterConfig = new ClassConfiguration(
+ DatabaseTesterComponent.class);
dbtesterConfig.getObjectConfig().getSetterConfig().initAllSetters();
- _container.addComponent("databaseTester", dbtesterConfig);
-
+ container.addComponent("databaseTester", dbtesterConfig);
+
ObjectConfiguration config = new ObjectConfiguration(
- HibernateUserAdministrationTest.class);
- config.getSetterConfig().clear().add(
- "userCache").add("databaseTester").add("userAdmin");
- _container.addComponent("testcase", this, config);
+ HibernateUserAdministrationTest.class);
+ config.getSetterConfig().clear().add("setUserCache").add(
+ "setDatabaseTester").add("setUserAdmin");
+ container.addComponent("testcase", this, config);
- _scope = _container.start();
+ scope = container.start();
+
+ databaseTester.cleanDatabase();
- _databaseTester.cleanDatabase();
-
super.setUp();
clearUserCache();
}
-
+
public void setUserCache(EhCache<Serializable, Serializable> aUserCache) {
- _userCache = aUserCache;
+ userCache = aUserCache;
}
-
+
public void setDatabaseTester(DatabaseTesterComponent aDatabaseTester) {
- _databaseTester = aDatabaseTester;
+ databaseTester = aDatabaseTester;
}
-
+
public void setUserAdmin(UserAdministration aUserAdmin) {
- _userAdmin = aUserAdmin;
+ userAdmin = aUserAdmin;
}
@Override
- protected void tearDown() throws Exception {
- _container.stop(_scope);
+ protected void tearDown() throws Exception {
+ container.stop(scope);
super.tearDown();
}
*/
@Override
protected UserAdministration createAdmin() {
- return _userAdmin;
+ return userAdmin;
}
public void testAllTestsInASeparateTransaction() throws SQLException {
-
Method[] methods = UserAdministrationImplTest.class.getMethods();
+
for (final Method method : methods) {
if (method.getName().startsWith("test")) {
- _databaseTester.cleanDatabase();
+ databaseTester.cleanDatabase();
clearUserCache();
- _databaseTester.executeTransaction(new TestTransactionCallbackWithoutResult() {
- public void execute() throws Exception {
- LOG.info("Running test " + method.getName());
- try {
- method.invoke(HibernateUserAdministrationTest.this);
- } catch (Throwable t) {
- LOG.error("Test " + method.getName() + " failed");
- throw new RuntimeException(t.getMessage(), t);
- }
- finally {
- LOG.info("Test " + method.getName() + " finished");
- }
+ databaseTester
+ .executeTransaction(new TestTransactionCallbackWithoutResult() {
+ public void execute() throws Exception {
+ LOG.info("Running test " + method.getName());
- }
- });
+ try {
+ method
+ .invoke(HibernateUserAdministrationTest.this);
+ } catch (Throwable t) {
+ LOG.error("Test " + method.getName() +
+ " failed");
+ throw new RuntimeException(t.getMessage(), t);
+ } finally {
+ LOG.info("Test " + method.getName() +
+ " finished");
+ }
+ }
+ });
}
}
}
- /**
- *
- */
private void clearUserCache() {
- _userCache.clear();
+ userCache.clear();
}
}