updated coding rules.
[utils] / security / src / test / java / org / wamblee / usermgt / hibernate / HibernateUserAdministrationTest.java
index 1af6e774849304270f707b028a148f27e12226f4..08ec4ae99bce41072161cd533a07b940018f80ee 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.cache.EhCache;
+import org.wamblee.system.adapters.ClassConfiguration;
+import org.wamblee.system.adapters.DefaultContainer;
+import org.wamblee.system.adapters.ObjectConfiguration;
+import org.wamblee.system.components.DatabaseComponentFactory;
+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 org.wamblee.usermgt.UsermgtHibernateMappingFiles;
-import org.wamblee.usermgt.UsermgtSpringConfigFiles;
 
 /**
  * User administration tests with persistence based on Hibernate. This executes
@@ -41,19 +46,60 @@ 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));
+        
+        ClassConfiguration dbtesterConfig = new ClassConfiguration(DatabaseTesterComponent.class); 
+        dbtesterConfig.getObjectConfig().getSetterConfig().initAllSetters();
+        container.addComponent("databaseTester", dbtesterConfig);
+        
+        ObjectConfiguration config = new ObjectConfiguration(
+                HibernateUserAdministrationTest.class);
+        config.getSetterConfig().clear().add(
+                "setUserCache").add("setDatabaseTester").add("setUserAdmin");
+        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;
+    }
+
+    @Override
+    protected void tearDown()  throws Exception { 
+        container.stop(scope);
+        super.tearDown();
+    }
 
     /*
      * (non-Javadoc)
@@ -62,7 +108,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 +116,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 +141,6 @@ public class HibernateUserAdministrationTest extends UserAdministrationImplTest
      * 
      */
     private void clearUserCache() {
-        BeanKernel.getBeanFactory().find("userCache", Cache.class).clear();
+        userCache.clear();
     }
 }