tests
diff --git a/src/test/java/de/ids_mannheim/korap/config/CollectionLoaderTest.java b/src/test/java/de/ids_mannheim/korap/config/CollectionLoaderTest.java
new file mode 100644
index 0000000..1b3a4ea
--- /dev/null
+++ b/src/test/java/de/ids_mannheim/korap/config/CollectionLoaderTest.java
@@ -0,0 +1,46 @@
+package de.ids_mannheim.korap.config;
+
+import de.ids_mannheim.korap.exceptions.KustvaktException;
+import de.ids_mannheim.korap.handlers.ResourceDao;
+import de.ids_mannheim.korap.web.service.CollectionLoader;
+import de.ids_mannheim.korap.web.service.UserLoader;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * @author hanl
+ * @date 11/02/2016
+ */
+public class CollectionLoaderTest {
+
+    @AfterClass
+    public static void close() {
+        BeanConfiguration.closeApplication();
+    }
+
+    @BeforeClass
+    public static void create() {
+        BeanConfiguration.loadClasspathContext("default-config.xml");
+    }
+
+    @Test
+    public void testCollectionLoader() {
+        ResourceDao dao = new ResourceDao(
+                BeanConfiguration.getBeans().getPersistenceClient());
+
+        boolean error = false;
+        UserLoader u = new UserLoader();
+        CollectionLoader l = new CollectionLoader();
+        try {
+            u.load();
+            l.load();
+        }catch (KustvaktException e) {
+            error = true;
+        }
+        assert !error;
+        Assert.assertNotEquals("Is not supposed to be zero", 0, dao.size());
+
+    }
+}
diff --git a/src/test/java/de/ids_mannheim/korap/config/ConfigTest.java b/src/test/java/de/ids_mannheim/korap/config/ConfigTest.java
index d4f2ad5..9c10da4 100644
--- a/src/test/java/de/ids_mannheim/korap/config/ConfigTest.java
+++ b/src/test/java/de/ids_mannheim/korap/config/ConfigTest.java
@@ -1,13 +1,10 @@
 package de.ids_mannheim.korap.config;
 
 import de.ids_mannheim.korap.exceptions.KustvaktException;
-import de.ids_mannheim.korap.handlers.ResourceDao;
-import de.ids_mannheim.korap.resources.VirtualCollection;
-import de.ids_mannheim.korap.security.ac.ResourceFinder;
 import de.ids_mannheim.korap.user.Attributes;
-import de.ids_mannheim.korap.user.User;
 import de.ids_mannheim.korap.utils.ServiceVersion;
 import de.ids_mannheim.korap.utils.TimeUtils;
+import de.ids_mannheim.korap.web.Arg;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
@@ -32,20 +29,6 @@
     }
 
     @Test
-    public void testCollectionLoader() throws KustvaktException {
-        TestHelper.runBootInterfaces();
-        ResourceDao dao = new ResourceDao(
-                BeanConfiguration.getBeans().getPersistenceClient());
-        int size = dao.size();
-        Assert.assertNotEquals("Is not supposed to be zero", 0, size);
-
-        Set<VirtualCollection> set = ResourceFinder.search(User.UserFactory
-                        .toUser(KustvaktConfiguration.KUSTVAKT_USER),
-                VirtualCollection.class);
-        System.out.println("RESULTING SET: " + set);
-    }
-
-    @Test
     public void testServiceVersion() {
         String v = ServiceVersion.getAPIVersion();
         Assert.assertNotEquals("wrong version", "UNKNOWN", v);
@@ -76,6 +59,24 @@
         BeanConfiguration.getBeans().getEncryption()
                 .validateEntry(v, Attributes.EMAIL);
     }
+
+    @Test
+    public void testArgLoader() {
+        String[] args = new String[] { "--port", "8080", "--config",
+                "local.conf", "--init" };
+        Set<Arg> s = Arg.loadArgs(args);
+        assert s.size() == 3;
+
+        for (Arg arg : s) {
+            if (arg instanceof Arg.PortArg)
+                assert ((Arg.PortArg) arg).getValue() == 8080;
+            if (arg instanceof Arg.ConfigArg)
+                assert ((Arg.ConfigArg) arg).getValue().equals("local.conf");
+            if (arg instanceof Arg.InitArg)
+                assert ((Arg.InitArg) arg).getValue();
+        }
+    }
+
 }
 
 
diff --git a/src/test/java/de/ids_mannheim/korap/config/PolicyLoaderTest.java b/src/test/java/de/ids_mannheim/korap/config/PolicyLoaderTest.java
new file mode 100644
index 0000000..866a5e1
--- /dev/null
+++ b/src/test/java/de/ids_mannheim/korap/config/PolicyLoaderTest.java
@@ -0,0 +1,48 @@
+package de.ids_mannheim.korap.config;
+
+import de.ids_mannheim.korap.exceptions.KustvaktException;
+import de.ids_mannheim.korap.security.ac.PolicyDao;
+import de.ids_mannheim.korap.web.service.CollectionLoader;
+import de.ids_mannheim.korap.web.service.PolicyLoader;
+import de.ids_mannheim.korap.web.service.UserLoader;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * @author hanl
+ * @date 11/02/2016
+ */
+public class PolicyLoaderTest {
+
+    @AfterClass
+    public static void close() {
+        BeanConfiguration.closeApplication();
+    }
+
+    @BeforeClass
+    public static void create() {
+        BeanConfiguration.loadClasspathContext("default-config.xml");
+    }
+
+    @Test
+    public void testUserLoader() {
+        boolean error = false;
+        UserLoader u = new UserLoader();
+        CollectionLoader c = new CollectionLoader();
+        PolicyLoader l = new PolicyLoader();
+        try {
+            u.load();
+            c.load();
+            l.load();
+        }catch (KustvaktException e) {
+            error = true;
+        }
+        assert !error;
+
+        PolicyDao dao = new PolicyDao(
+                BeanConfiguration.getBeans().getPersistenceClient());
+        Assert.assertNotEquals("Is not supposed to be zero", 0, dao.size());
+    }
+}
diff --git a/src/test/java/de/ids_mannheim/korap/config/TestHelper.java b/src/test/java/de/ids_mannheim/korap/config/TestHelper.java
index cc180f3..faa38ac 100644
--- a/src/test/java/de/ids_mannheim/korap/config/TestHelper.java
+++ b/src/test/java/de/ids_mannheim/korap/config/TestHelper.java
@@ -1,8 +1,10 @@
 package de.ids_mannheim.korap.config;
 
 import de.ids_mannheim.korap.exceptions.KustvaktException;
+import de.ids_mannheim.korap.handlers.ResourceDao;
 import de.ids_mannheim.korap.interfaces.db.EntityHandlerIface;
 import de.ids_mannheim.korap.interfaces.db.PersistenceClient;
+import de.ids_mannheim.korap.resources.KustvaktResource;
 import de.ids_mannheim.korap.user.Attributes;
 import de.ids_mannheim.korap.user.User;
 import de.ids_mannheim.korap.web.service.BootupInterface;
@@ -29,7 +31,8 @@
 
     public static boolean setupAccount() {
         boolean r = BeanConfiguration.hasContext();
-        if (r && BeanConfiguration.getBeans().getUserDBHandler().size() == 0) {
+        if (r && ((KustvaktBaseDaoInterface) BeanConfiguration.getBeans()
+                .getUserDBHandler()).size() == 0) {
             EntityHandlerIface dao = BeanConfiguration.getBeans()
                     .getUserDBHandler();
             Map m = new HashMap<>();
@@ -57,7 +60,8 @@
 
     public static boolean setupSimpleAccount(String username, String password) {
         boolean r = BeanConfiguration.hasContext();
-        if (r && BeanConfiguration.getBeans().getUserDBHandler().size() == 0) {
+        if (r && ((KustvaktBaseDaoInterface) BeanConfiguration.getBeans()
+                .getUserDBHandler()).size() == 0) {
             EntityHandlerIface dao = BeanConfiguration.getBeans()
                     .getUserDBHandler();
             Map m = new HashMap<>();
@@ -184,12 +188,36 @@
                     iface.load();
                 }catch (KustvaktException e) {
                     // don't do anything!
+                    System.out.println(
+                            "Loader instance failed ... exiting programme!");
+                    System.exit(-1);
                 }
             }
         }else
             throw new RuntimeException("Client not setup properly!");
     }
 
+    public static void setupResource(KustvaktResource resource, User user)
+            throws KustvaktException {
+        ResourceDao dao = new ResourceDao(
+                BeanConfiguration.getBeans().getPersistenceClient());
+        dao.storeResource(resource, user);
+    }
+
+    public static KustvaktResource getResource(String name)
+            throws KustvaktException {
+        ResourceDao dao = new ResourceDao(
+                BeanConfiguration.getBeans().getPersistenceClient());
+        return dao.findbyId(name, getUser());
+    }
+
+    public static void dropResource(String name) throws KustvaktException {
+        ResourceDao dao = new ResourceDao(
+                BeanConfiguration.getBeans().getPersistenceClient());
+        dao.deleteResource(name, null);
+
+    }
+
     private TestHelper() {
     }
 
diff --git a/src/test/java/de/ids_mannheim/korap/config/UserLoaderTest.java b/src/test/java/de/ids_mannheim/korap/config/UserLoaderTest.java
new file mode 100644
index 0000000..8b33f2f
--- /dev/null
+++ b/src/test/java/de/ids_mannheim/korap/config/UserLoaderTest.java
@@ -0,0 +1,42 @@
+package de.ids_mannheim.korap.config;
+
+import de.ids_mannheim.korap.exceptions.KustvaktException;
+import de.ids_mannheim.korap.handlers.EntityDao;
+import de.ids_mannheim.korap.web.service.UserLoader;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * @author hanl
+ * @date 11/02/2016
+ */
+public class UserLoaderTest {
+
+    @AfterClass
+    public static void close() {
+        BeanConfiguration.closeApplication();
+    }
+
+    @BeforeClass
+    public static void create() {
+        BeanConfiguration.loadClasspathContext("default-config.xml");
+    }
+
+    @Test
+    public void testUserLoader() {
+        EntityDao dao = new EntityDao(
+                BeanConfiguration.getBeans().getPersistenceClient());
+
+        boolean error = false;
+        UserLoader l = new UserLoader();
+        try {
+            l.load();
+        }catch (KustvaktException e) {
+            error = true;
+        }
+        assert !error;
+        Assert.assertNotEquals("Is not supposed to be zero", 0, dao.size());
+    }
+}
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 0b11863..83d6de7 100644
--- a/src/test/java/de/ids_mannheim/korap/handlers/ResourceDaoTest.java
+++ b/src/test/java/de/ids_mannheim/korap/handlers/ResourceDaoTest.java
@@ -1,9 +1,9 @@
+package de.ids_mannheim.korap.handlers;
+
 import de.ids_mannheim.korap.config.BeanConfiguration;
 import de.ids_mannheim.korap.config.TestHelper;
 import de.ids_mannheim.korap.exceptions.KustvaktException;
-import de.ids_mannheim.korap.handlers.ResourceDao;
 import de.ids_mannheim.korap.resources.KustvaktResource;
-import de.ids_mannheim.korap.resources.ResourceFactory;
 import de.ids_mannheim.korap.resources.VirtualCollection;
 import de.ids_mannheim.korap.user.User;
 import org.junit.After;
@@ -25,7 +25,7 @@
 
     @AfterClass
     public static void drop() {
-//        TestHelper.dropUser();
+        //        TestHelper.dropUser();
         BeanConfiguration.closeApplication();
     }
 
@@ -39,7 +39,7 @@
     public void createCollection() throws KustvaktException {
         ResourceDao dao = new ResourceDao(
                 BeanConfiguration.getBeans().getPersistenceClient());
-        VirtualCollection c = ResourceFactory.createCollection("testColl", 1);
+        VirtualCollection c = new VirtualCollection("testColl");
         c.addField("key_1", "this is a test");
         c.addField("key_2", 2);
 
@@ -59,7 +59,7 @@
     public void ResourceDataUpdate() throws KustvaktException {
         ResourceDao dao = new ResourceDao(
                 BeanConfiguration.getBeans().getPersistenceClient());
-        VirtualCollection c = ResourceFactory.createCollection("testColl", 1);
+        VirtualCollection c = new VirtualCollection("testColl");
         c.addField("key_1", "this is a test");
         c.addField("key_2", 2);
 
diff --git a/src/test/java/de/ids_mannheim/korap/security/auth/KustvaktAuthenticationManagerTest.java b/src/test/java/de/ids_mannheim/korap/security/auth/KustvaktAuthenticationManagerTest.java
index efcf6c0..0c2adc1 100644
--- a/src/test/java/de/ids_mannheim/korap/security/auth/KustvaktAuthenticationManagerTest.java
+++ b/src/test/java/de/ids_mannheim/korap/security/auth/KustvaktAuthenticationManagerTest.java
@@ -1,6 +1,7 @@
 package de.ids_mannheim.korap.security.auth;
 
 import de.ids_mannheim.korap.config.BeanConfiguration;
+import de.ids_mannheim.korap.config.KustvaktBaseDaoInterface;
 import de.ids_mannheim.korap.config.KustvaktConfiguration;
 import de.ids_mannheim.korap.config.TestHelper;
 import de.ids_mannheim.korap.exceptions.KustvaktException;
@@ -47,7 +48,7 @@
         EntityHandlerIface dao = BeanConfiguration.getBeans()
                 .getUserDBHandler();
 
-        assert dao.size() > 0;
+        assert ((KustvaktBaseDaoInterface) dao).size() > 0;
         User check = dao.getAccount(user.getUsername());
         assert check != null;
     }
diff --git a/src/test/java/de/ids_mannheim/korap/web/service/full/AuthServiceTest.java b/src/test/java/de/ids_mannheim/korap/web/service/full/AuthServiceTest.java
index 0bed7ff..6ba0ddc 100644
--- a/src/test/java/de/ids_mannheim/korap/web/service/full/AuthServiceTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/service/full/AuthServiceTest.java
@@ -1,11 +1,6 @@
 package de.ids_mannheim.korap.web.service.full;
 
-import de.ids_mannheim.korap.config.BeanConfiguration;
-import de.ids_mannheim.korap.config.TestHelper;
 import de.ids_mannheim.korap.web.service.FastJerseyTest;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
 
 /**
  * @author hanl
@@ -15,36 +10,4 @@
 
     //todo: test basicauth via secure connection
 
-    @BeforeClass
-    public static void setup() {
-        BeanConfiguration.loadClasspathContext("default-config.xml");
-        FastJerseyTest.setPackages("de.ids_mannheim.korap.web.service.full",
-                "de.ids_mannheim.korap.web.filter",
-                "de.ids_mannheim.korap.web.utils");
-        TestHelper.setupAccount();
-    }
-
-    @AfterClass
-    public static void close() {
-        TestHelper.dropUser();
-        BeanConfiguration.closeApplication();
-    }
-
-    @Test
-    public void testKustvaktAuth() {
-
-    }
-
-    @Test
-    public void testDemoAuth() {
-
-    }
-
-    @Test
-    public void testUnauthorizedAuth() {
-
-    }
-
-
-
 }
diff --git a/src/test/java/de/ids_mannheim/korap/web/service/full/FilterTest.java b/src/test/java/de/ids_mannheim/korap/web/service/full/FilterTest.java
new file mode 100644
index 0000000..4b6f118
--- /dev/null
+++ b/src/test/java/de/ids_mannheim/korap/web/service/full/FilterTest.java
@@ -0,0 +1,61 @@
+package de.ids_mannheim.korap.web.service.full;
+
+import com.sun.jersey.api.client.ClientResponse;
+import de.ids_mannheim.korap.config.BeanConfiguration;
+import de.ids_mannheim.korap.config.TestHelper;
+import de.ids_mannheim.korap.security.auth.BasicHttpAuth;
+import de.ids_mannheim.korap.user.Attributes;
+import de.ids_mannheim.korap.web.service.FastJerseyTest;
+import org.eclipse.jetty.server.Response;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * @author hanl
+ * @date 08/02/2016
+ */
+public class FilterTest extends FastJerseyTest {
+
+    @BeforeClass
+    public static void setup() {
+        BeanConfiguration.loadClasspathContext("default-config.xml");
+        FastJerseyTest.setPackages("de.ids_mannheim.korap.web.service.full",
+                "de.ids_mannheim.korap.web.filter",
+                "de.ids_mannheim.korap.web.utils");
+        TestHelper.setupAccount();
+    }
+
+    @AfterClass
+    public static void close() {
+        TestHelper.dropUser();
+        BeanConfiguration.closeApplication();
+    }
+
+    @Test
+    public void testTestUserAuth() {
+        ClientResponse resp = resource().path(getAPIVersion()).path("user/info")
+                .header(Attributes.AUTHORIZATION, BasicHttpAuth
+                        .encode(TestHelper.getUserCredentials()[0],
+                                TestHelper.getUserCredentials()[1]))
+                .get(ClientResponse.class);
+        assert resp.getStatus() == Response.SC_OK;
+        System.out.println("entity '" + resp.getEntity(String.class) + "'");
+    }
+
+    @Test
+    public void testDemoAuth() {
+        ClientResponse resp = resource().path(getAPIVersion()).path("user/info")
+                .get(ClientResponse.class);
+        assert resp.getStatus() == Response.SC_OK;
+    }
+
+    @Test
+    public void testUnauthorizedAuth() {
+        ClientResponse resp = resource().path(getAPIVersion()).path("user/info")
+                .header(Attributes.AUTHORIZATION,
+                        BasicHttpAuth.encode("kustvakt", "kustvakt2015"))
+                .get(ClientResponse.class);
+        assert resp.getStatus() == Response.SC_UNAUTHORIZED;
+    }
+}
diff --git a/src/test/java/de/ids_mannheim/korap/web/service/full/KustvaktResourceServiceTest.java b/src/test/java/de/ids_mannheim/korap/web/service/full/KustvaktResourceServiceTest.java
index 377b4e8..45182a6 100644
--- a/src/test/java/de/ids_mannheim/korap/web/service/full/KustvaktResourceServiceTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/service/full/KustvaktResourceServiceTest.java
@@ -11,6 +11,7 @@
 import de.ids_mannheim.korap.web.service.FastJerseyTest;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
+import org.junit.Ignore;
 import org.junit.Test;
 
 /**
@@ -63,6 +64,7 @@
     }
 
     @Test
+    @Ignore
     public void testStats() {
         ClientResponse response = resource().path(getAPIVersion())
                 .path("collection").header(Attributes.AUTHORIZATION,
@@ -77,6 +79,8 @@
         System.out.println("NODE COLLECTIONS" + node);
         String id = node.path(0).path("id").asText();
 
+        System.out.println("ID IS " + id);
+        System.out.println("FROM NODE " + node);
         response = resource().path(getAPIVersion()).path("collection").path(id)
                 .path("stats").header(Attributes.AUTHORIZATION,
                         BasicHttpAuth.encode("kustvakt", "kustvakt2015"))
diff --git a/src/test/java/de/ids_mannheim/korap/web/service/full/ResourceRemoteApiTest.java b/src/test/java/de/ids_mannheim/korap/web/service/full/ResourceRemoteApiTest.java
new file mode 100644
index 0000000..bcf5f9a
--- /dev/null
+++ b/src/test/java/de/ids_mannheim/korap/web/service/full/ResourceRemoteApiTest.java
@@ -0,0 +1,17 @@
+package de.ids_mannheim.korap.web.service.full;
+
+import org.junit.Test;
+
+/**
+ * @author hanl
+ * @date 08/02/2016
+ */
+public class ResourceRemoteApiTest {
+
+
+
+    @Test
+    public void testResourceGetFromDemo() {
+
+    }
+}