fixed running tests
diff --git a/src/test/java/de/ids_mannheim/korap/handlers/DocumentDaoTest.java b/src/test/java/de/ids_mannheim/korap/handlers/DocumentDaoTest.java
index 603aa53..9a13eb4 100644
--- a/src/test/java/de/ids_mannheim/korap/handlers/DocumentDaoTest.java
+++ b/src/test/java/de/ids_mannheim/korap/handlers/DocumentDaoTest.java
@@ -1,8 +1,11 @@
-import de.ids_mannheim.korap.config.BeanConfiguration;
+package de.ids_mannheim.korap.handlers;
+
+import de.ids_mannheim.korap.config.BeanConfigTest;
 import de.ids_mannheim.korap.exceptions.KustvaktException;
-import de.ids_mannheim.korap.handlers.DocumentDao;
 import de.ids_mannheim.korap.resources.Document;
-import org.junit.*;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Test;
 
 import java.util.List;
 
@@ -10,29 +13,13 @@
  * @author hanl
  * @date 12/11/2015
  */
-public class DocumentDaoTest {
+public class DocumentDaoTest extends BeanConfigTest {
 
     private static DocumentDao dao;
 
-    @BeforeClass
-    public static void setup() {
-        BeanConfiguration.loadClasspathContext("default-config.xml");
-        dao = new DocumentDao(
-                BeanConfiguration.getBeans().getPersistenceClient());
-    }
-
-    @AfterClass
-    public static void close() {
-        BeanConfiguration.closeApplication();
-    }
-
     @After
     public void clear() {
-        try {
-            dao.deleteAll();
-        }catch (KustvaktException e) {
-            e.printStackTrace();
-        }
+        dao.truncate();
     }
 
     @Test
@@ -109,4 +96,9 @@
         Assert.assertNotSame("should not be empty", 0, dc.size());
         Assert.assertEquals("not all found", length, dc.size());
     }
+
+    @Override
+    public void initMethod() throws KustvaktException {
+        dao = new DocumentDao(helper().getContext().getPersistenceClient());
+    }
 }
diff --git a/src/test/java/de/ids_mannheim/korap/handlers/ResourceDaoTest.java b/src/test/java/de/ids_mannheim/korap/handlers/ResourceDaoTest.java
index 83d6de7..20825a7 100644
--- a/src/test/java/de/ids_mannheim/korap/handlers/ResourceDaoTest.java
+++ b/src/test/java/de/ids_mannheim/korap/handlers/ResourceDaoTest.java
@@ -1,45 +1,81 @@
 package de.ids_mannheim.korap.handlers;
 
-import de.ids_mannheim.korap.config.BeanConfiguration;
+import de.ids_mannheim.korap.config.BeanConfigTest;
+import de.ids_mannheim.korap.config.KustvaktClassLoader;
 import de.ids_mannheim.korap.config.TestHelper;
 import de.ids_mannheim.korap.exceptions.KustvaktException;
 import de.ids_mannheim.korap.resources.KustvaktResource;
 import de.ids_mannheim.korap.resources.VirtualCollection;
 import de.ids_mannheim.korap.user.User;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
+import org.junit.Assert;
 import org.junit.Test;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import static org.junit.Assert.*;
+import static org.junit.Assert.assertNotEquals;
+
 /**
  * @author hanl
  * @date 26/01/2016
  */
-public class ResourceDaoTest {
+public class ResourceDaoTest extends BeanConfigTest {
 
-    @BeforeClass
-    public static void init() {
-        BeanConfiguration.loadClasspathContext("default-config.xml");
-        TestHelper.setupAccount();
+    private static List<Integer> ids = new ArrayList<>();
+
+    @Override
+    public void initMethod() {
+        helper().setupAccount();
+
+        List classes = new ArrayList<>(
+                KustvaktClassLoader.loadSubTypes(KustvaktResource.class));
+        int size = classes.size();
+        for (int i = 0; i < size; i++) {
+            Class s = (Class) classes.get(i < classes.size() ? i : 0);
+            try {
+                KustvaktResource r = (KustvaktResource) s.newInstance();
+                r.setName("resource_" + i);
+                r.setPersistentID(r.getName());
+                int id = helper().setupResource(r);
+                ids.add(id);
+                assertNotEquals(0,
+                        new ResourceDao<>(helper().getContext().getPersistenceClient())
+                                .size());
+            }catch (InstantiationException e) {
+                if (i < classes.size())
+                    classes.remove(i);
+            }catch (KustvaktException | IllegalAccessException e) {
+                e.printStackTrace();
+            }
+        }
     }
 
-    @AfterClass
-    public static void drop() {
-        //        TestHelper.dropUser();
-        BeanConfiguration.closeApplication();
+    @Test
+    public void testBatchGetResources() throws KustvaktException {
+        ResourceDao dao = new ResourceDao(helper().getContext().getPersistenceClient());
+        assertNotEquals(0, dao.size());
+        Collection res = dao.getResources(ids, User.UserFactory.getDemoUser());
+        assertEquals(ids.size(), res.size());
     }
 
-    @After
-    public void clear() throws KustvaktException {
-        new ResourceDao<>(BeanConfiguration.getBeans().getPersistenceClient())
-                .deleteAll();
+    @Test
+    public void testGetResource() throws KustvaktException {
+        ResourceDao dao = new ResourceDao(helper().getContext().getPersistenceClient());
+        assertEquals("sqlite",
+                helper().getContext().getPersistenceClient().getDatabase());
+
+        assertNotEquals(0, dao.size());
+        KustvaktResource res = dao
+                .findbyId(ids.get(0), User.UserFactory.getDemoUser());
+        assertNotNull(res);
     }
 
     @Test
     public void createCollection() throws KustvaktException {
-        ResourceDao dao = new ResourceDao(
-                BeanConfiguration.getBeans().getPersistenceClient());
-        VirtualCollection c = new VirtualCollection("testColl");
+        ResourceDao dao = new ResourceDao(helper().getContext().getPersistenceClient());
+        VirtualCollection c = new VirtualCollection("testColl1");
         c.addField("key_1", "this is a test");
         c.addField("key_2", 2);
 
@@ -49,17 +85,16 @@
         int id = dao.storeResource(c, user);
 
         KustvaktResource r = dao.findbyId(id, user);
-        assert dao.size() > 0;
-        assert r != null;
-        assert r.getField("key_1") instanceof String;
-        assert r.getField("key_2") instanceof Integer;
+        assertNotEquals(dao.size(),0);
+        assertNotNull(r);
+        assertEquals(r.getField("key_1") instanceof String,true);
+        assertEquals(r.getField("key_2") instanceof Integer,true);
     }
 
     @Test
     public void ResourceDataUpdate() throws KustvaktException {
-        ResourceDao dao = new ResourceDao(
-                BeanConfiguration.getBeans().getPersistenceClient());
-        VirtualCollection c = new VirtualCollection("testColl");
+        ResourceDao dao = new ResourceDao(helper().getContext().getPersistenceClient());
+        VirtualCollection c = new VirtualCollection("testColl2");
         c.addField("key_1", "this is a test");
         c.addField("key_2", 2);
 
diff --git a/src/test/java/de/ids_mannheim/korap/handlers/UserDaoTest.java b/src/test/java/de/ids_mannheim/korap/handlers/UserDaoTest.java
index 94abd81..0c9be7c 100644
--- a/src/test/java/de/ids_mannheim/korap/handlers/UserDaoTest.java
+++ b/src/test/java/de/ids_mannheim/korap/handlers/UserDaoTest.java
@@ -1,95 +1,98 @@
-import de.ids_mannheim.korap.config.BeanConfiguration;
+package de.ids_mannheim.korap.handlers;
+
+import de.ids_mannheim.korap.config.BeanConfigTest;
+import de.ids_mannheim.korap.config.BeansFactory;
 import de.ids_mannheim.korap.config.TestHelper;
 import de.ids_mannheim.korap.exceptions.KustvaktException;
 import de.ids_mannheim.korap.interfaces.db.EntityHandlerIface;
 import de.ids_mannheim.korap.interfaces.db.UserDataDbIface;
-import de.ids_mannheim.korap.user.*;
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
+import de.ids_mannheim.korap.user.User;
+import de.ids_mannheim.korap.user.UserDetails;
+import de.ids_mannheim.korap.user.UserSettings;
+import de.ids_mannheim.korap.user.Userdata;
 import org.junit.Test;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
 ;
 
 /**
  * @author hanl
  * @date 13/02/2015
  */
-public class UserDaoTest {
-
-    @BeforeClass
-    public static void create() {
-        BeanConfiguration.loadClasspathContext("default-config.xml");
-        TestHelper.setupAccount();
-        TestHelper.runBootInterfaces();
-    }
-
-    @AfterClass
-    public static void close() {
-        assert TestHelper.dropUser();
-        BeanConfiguration.closeApplication();
-    }
+public class UserDaoTest extends BeanConfigTest {
 
     @Test
     public void userput() throws KustvaktException {
-        User user1 = BeanConfiguration.getBeans().getUserDBHandler()
+        User user1 = helper().getContext().getUserDBHandler()
                 .getAccount(TestHelper.getUserCredentials()[0]);
-        Assert.assertEquals("user creation failed", true, user1.getId() != -1);
+        assertEquals("user creation failed", true, user1.getId() != -1);
+    }
+
+    @Test
+    public void userputBatch() {
+        //todo:
     }
 
     @Test
     public void userget() throws KustvaktException {
-        User user1 = BeanConfiguration.getBeans().getUserDBHandler()
+        User user1 = helper().getContext().getUserDBHandler()
                 .getAccount(TestHelper.getUserCredentials()[0]);
-        Assert.assertEquals("User Retrieval does not work",
+        assertEquals("User Retrieval does not work",
                 TestHelper.getUserCredentials()[0], user1.getUsername());
     }
 
     //    @Test
     public void testUserdetailsGetNonExistent() throws KustvaktException {
-        TestHelper.setupSimpleAccount("userdbtest", "userdbTest");
-        User user = BeanConfiguration.getBeans().getUserDBHandler()
+        helper().setupSimpleAccount("userdbtest", "userdbTest");
+        User user = helper().getContext().getUserDBHandler()
                 .getAccount("userdbtest");
-        UserDataDbIface dao = UserdataFactory.getDaoInstance(UserDetails.class);
+        UserDataDbIface dao = BeansFactory.getTypeFactory().getTypedBean(helper()
+                .getContext().getUserDataDaos(), UserDetails.class);
         Userdata data = dao.get(user);
-        assert data == null;
-        TestHelper.dropUser("userdbtest");
+        assertNull(data);
+        helper().dropUser("userdbtest");
     }
 
     //    @Test
     public void testUserSettingsGetNonExistent() throws KustvaktException {
-        TestHelper.setupSimpleAccount("userdbtest", "userdbTest");
-        User user = BeanConfiguration.getBeans().getUserDBHandler()
+        helper().setupSimpleAccount("userdbtest", "userdbTest");
+        User user = helper().getContext().getUserDBHandler()
                 .getAccount("userdbtest");
-        UserDataDbIface dao = UserdataFactory
-                .getDaoInstance(UserSettings.class);
+        UserDataDbIface dao = BeansFactory.getTypeFactory().getTypedBean(helper()
+                .getContext().getUserDataDaos(), UserSettings.class);
         Userdata data = dao.get(user);
-        assert data == null;
-        TestHelper.dropUser("userdbtest");
+        assertNull(data);
+        helper().dropUser("userdbtest");
 
     }
 
     // username cannot currently be changed
     //    @Test
     public void updateUsername() throws KustvaktException {
-        User user1 = BeanConfiguration.getBeans().getUserDBHandler()
+        User user1 = helper().getContext().getUserDBHandler()
                 .getAccount(TestHelper.getUserCredentials()[0]);
         user1.setUsername("new_user");
-        BeanConfiguration.getBeans().getUserDBHandler().updateAccount(user1);
-        User u2 = BeanConfiguration.getBeans().getUserDBHandler()
+        helper().getContext().getUserDBHandler().updateAccount(user1);
+        User u2 = helper().getContext().getUserDBHandler()
                 .getAccount("new_user");
-        Assert.assertEquals("not found", user1.getUsername(), u2.getUsername());
+        assertEquals("not found", user1.getUsername(), u2.getUsername());
     }
 
     @Test
     public void userupdate() throws KustvaktException {
-        EntityHandlerIface dao = BeanConfiguration.getBeans()
-                .getUserDBHandler();
+        EntityHandlerIface dao = helper().getContext().getUserDBHandler();
         User user1 = dao.getAccount(TestHelper.getUserCredentials()[0]);
         user1.setAccountLocked(true);
         dao.updateAccount(user1);
-        Assert.assertEquals("not valid", true,
+        assertEquals("not valid", true,
                 dao.getAccount(user1.getUsername()).isAccountLocked());
     }
 
+    @Override
+    public void initMethod() throws KustvaktException {
+        helper().setupAccount();
+        helper().runBootInterfaces();
+    }
 }