Property files are now being read by the property component
[utils] / security / src / test / java / org / wamblee / usermgt / hibernate / HibernateUserAdministrationTest.java
index 939b5153d6a4df38334e642a34abfb9ee1bfb8e1..a0fd837c10e689ee369eb235490df107ce7908a7 100644 (file)
 
 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.test.TestTransactionCallbackWithoutResult;
+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
@@ -41,19 +43,52 @@ public class HibernateUserAdministrationTest extends UserAdministrationImplTest
     
     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)
@@ -62,7 +97,7 @@ public class HibernateUserAdministrationTest extends UserAdministrationImplTest
      */
     @Override
     protected UserAdministration createAdmin() {
-        return BeanKernel.getBeanFactory().find(UserAdministration.class);
+        return _userAdmin;
     }
 
     public void testAllTestsInASeparateTransaction() throws SQLException {
@@ -70,9 +105,9 @@ public class HibernateUserAdministrationTest extends UserAdministrationImplTest
         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 {
@@ -95,6 +130,6 @@ public class HibernateUserAdministrationTest extends UserAdministrationImplTest
      * 
      */
     private void clearUserCache() {
-        BeanKernel.getBeanFactory().find("userCache", Cache.class).clear();
+        _userCache.clear();
     }
 }