HibernateUserAdministrationTest now based on the component mechanism.
[utils] / security / src / test / java / org / wamblee / usermgt / hibernate / HibernateUserAdministrationTest.java
index e9aa46889f1bad74755aa4bbb501d83e24b83b37..d0fc434ab11f4f06196d496dbd19e6a3e29f2c59 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.cache.EhCache;
 import org.wamblee.general.BeanKernel;
+import org.wamblee.system.adapters.DefaultContainer;
+import org.wamblee.system.adapters.ObjectConfiguration;
+import org.wamblee.system.core.Scope;
+import org.wamblee.system.spring.DatabaseTesterComponent;
 import org.wamblee.test.spring.TestTransactionCallbackWithoutResult;
 import org.wamblee.usermgt.UserAdministration;
+import org.wamblee.usermgt.UserAdministrationComponent;
 import org.wamblee.usermgt.UserAdministrationImplTest;
 import org.wamblee.usermgt.UsermgtSpringConfigFiles;
 
@@ -40,19 +47,51 @@ 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");
+        _container.addComponent(new ExternalDatasourceComponent("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)
@@ -61,7 +100,7 @@ public class HibernateUserAdministrationTest extends UserAdministrationImplTest
      */
     @Override
     protected UserAdministration createAdmin() {
-        return BeanKernel.getBeanFactory().find(UserAdministration.class);
+        return _userAdmin;
     }
 
     public void testAllTestsInASeparateTransaction() throws SQLException {
@@ -69,9 +108,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 {
@@ -94,6 +133,6 @@ public class HibernateUserAdministrationTest extends UserAdministrationImplTest
      * 
      */
     private void clearUserCache() {
-        BeanKernel.getBeanFactory().find("userCache", Cache.class).clear();
+        _userCache.clear();
     }
 }