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.Cache;
-import org.wamblee.general.BeanKernel;
+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.test.spring.TestTransactionCallbackWithoutResult;
import org.wamblee.usermgt.UserAdministration;
import org.wamblee.usermgt.UserAdministrationImplTest;
-import org.wamblee.usermgt.UsermgtHibernateMappingFiles;
-import org.wamblee.usermgt.UsermgtSpringConfigFiles;
/**
* User administration tests with persistence based on Hibernate. This executes
private static final Log LOG = LogFactory.getLog(HibernateUserAdministrationTest.class);
- public HibernateUserAdministrationTest() {
- super(UsermgtSpringConfigFiles.class,
- UsermgtHibernateMappingFiles.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));
+
+ _container.addComponent("databaseTester", DatabaseTesterComponent.class);
+
+ ObjectConfiguration config = new ObjectConfiguration(
+ HibernateUserAdministrationTest.class);
+ config.getSetterConfig().clear().add(
+ "userCache").add("databaseTester").add("userAdmin");
+ _container.addComponent("testcase", this, config);
+
+ _scope = _container.start();
+
+ _databaseTester.cleanDatabase();
+
super.setUp();
clearUserCache();
}
+
+ public void setUserCache(EhCache<Serializable, Serializable> aUserCache) {
+ _userCache = aUserCache;
+ }
+
+ public void setDatabaseTester(DatabaseTesterComponent aDatabaseTester) {
+ _databaseTester = aDatabaseTester;
+ }
+
+ public void setUserAdmin(UserAdministration aUserAdmin) {
+ _userAdmin = aUserAdmin;
+ }
/*
* (non-Javadoc)
*/
@Override
protected UserAdministration createAdmin() {
- return BeanKernel.getBeanFactory().find(UserAdministration.class);
+ return _userAdmin;
}
public void testAllTestsInASeparateTransaction() throws SQLException {
Method[] methods = UserAdministrationImplTest.class.getMethods();
for (final Method method : methods) {
if (method.getName().startsWith("test")) {
- cleanDatabase();
+ _databaseTester.cleanDatabase();
clearUserCache();
- executeTransaction(new TestTransactionCallbackWithoutResult() {
+ _databaseTester.executeTransaction(new TestTransactionCallbackWithoutResult() {
public void execute() throws Exception {
LOG.info("Running test " + method.getName());
try {
*
*/
private void clearUserCache() {
- BeanKernel.getBeanFactory().find("userCache", Cache.class).clear();
+ _userCache.clear();
}
}