Started work on componentizing the current user management.
[utils] / security / src / test / java / org / wamblee / usermgt / hibernate / HibernateUserSetTest.java
index 9d5e80b6f82d42408eb73b5eaae4b956becfd352..23403cc8f505f2aa429795088dbc63c7ea933b3b 100644 (file)
@@ -20,8 +20,14 @@ import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.Set;
 
+import javax.sql.DataSource;
+
 import org.wamblee.cache.Cache;
 import org.wamblee.general.BeanKernel;
+import org.wamblee.system.adapters.DefaultContainer;
+import org.wamblee.system.adapters.ObjectConfiguration;
+import org.wamblee.system.core.Component;
+import org.wamblee.system.core.Scope;
 import org.wamblee.usermgt.Group;
 import org.wamblee.usermgt.GroupSet;
 import org.wamblee.usermgt.InMemoryUserSetTest;
@@ -48,14 +54,42 @@ public class HibernateUserSetTest extends InMemoryUserSetTest {
         super(UsermgtSpringConfigFiles.class, UsermgtHibernateMappingFiles.class);
     }
     
+    private DefaultContainer _container;
+    private Scope _scope;
+    
+    private DataSource _datasource; 
+    
     /* (non-Javadoc)
      * @see org.wamblee.usermgt.InMemoryUserSetTest#setUp()
      */
     @Override
     protected void setUp() throws Exception {
         super.setUp();
+        
+        _container = new DefaultContainer("top");
+        Component ds = new ExternalDatasourceComponent("datasource");
+        _container.addComponent(ds);
+        
+        ObjectConfiguration config = new ObjectConfiguration(HibernateUserSetTest.class); 
+        config.getSetterConfig().clear().add("datasource");
+        _container.addComponent("testcase", this, config);
+        _scope = _container.start();
+        
+        Object my = _scope.getInterfaceImplementation(ds.getProvidedInterfaces()[0], Object.class);
+        
         clearUserCache();
     }
+    
+    public void setDatasource(DataSource aDatasource) { 
+        _datasource = aDatasource; 
+    }
+    
+    
+    @Override
+    protected void tearDown() throws Exception {
+        _container.stop(_scope);
+        super.tearDown();
+    }
 
     /**
      * Clears the user cache.