caching framework cleanup and test extension

Change-Id: I472b0a465e3d2217835ffb1f49e07a1b65a08976
diff --git a/src/test/java/JerseyTest1.java b/src/test/java/JerseyTest1.java
deleted file mode 100644
index dc0ca87..0000000
--- a/src/test/java/JerseyTest1.java
+++ /dev/null
@@ -1,48 +0,0 @@
-import com.sun.jersey.api.client.ClientResponse;
-import com.sun.jersey.test.framework.JerseyTest;
-import com.sun.jersey.test.framework.spi.container.TestContainerFactory;
-import com.sun.jersey.test.framework.spi.container.grizzly.web.GrizzlyWebTestContainerFactory;
-import de.ids_mannheim.korap.config.BeansFactory;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-/**
- * @author hanl
- * @date 29/07/2015
- */
-@Deprecated
-public class JerseyTest1 extends JerseyTest {
-
-    public JerseyTest1 () {
-        super("de.ids_mannheim.korap.web.service",
-                "de.ids_mannheim.korap.web.utils");
-    }
-
-
-    @BeforeClass
-    public static void setup () {
-        BeansFactory.loadClasspathContext();
-    }
-
-
-    @AfterClass
-    public static void close () {
-        BeansFactory.closeApplication();
-    }
-
-
-    @Override
-    protected TestContainerFactory getTestContainerFactory () {
-        return new GrizzlyWebTestContainerFactory();
-    }
-
-
-    @Test
-    public void testFieldsInSearch () {
-        ClientResponse response = resource().path("v0.1/search")
-                .queryParam("q", "[base=Wort]").queryParam("ql", "poliqarp")
-                .get(ClientResponse.class);
-        System.out.println("response " + response);
-    }
-}
diff --git a/src/test/java/TestUtil.java b/src/test/java/TestUtil.java
deleted file mode 100644
index 1fb3ce7..0000000
--- a/src/test/java/TestUtil.java
+++ /dev/null
@@ -1,62 +0,0 @@
-import de.ids_mannheim.korap.config.Attributes;
-import de.ids_mannheim.korap.utils.SqlBuilder;
-import org.junit.Assert;
-import org.junit.Test;
-
-/**
- * @author hanl
- * @date 26/11/2015
- */
-public class TestUtil {
-
-    @Test
-    public void testSqlBuilderSELECT () {
-        SqlBuilder b = new SqlBuilder("users");
-        b.select(Attributes.USERNAME, Attributes.PASSWORD).where(
-                Attributes.USERNAME + "=?");
-        Assert.assertEquals("query does not match",
-                "SELECT username, password FROM users WHERE username=?;",
-                b.toString());
-    }
-
-
-    @Test
-    public void testSqlBuilderINSERT () {
-        SqlBuilder b = new SqlBuilder("users");
-        b.insert(Attributes.USERNAME, Attributes.PASSWORD).params("user",
-                "pass");
-        Assert.assertEquals("query does not match",
-                "INSERT INTO users (username, password) VALUES (user, pass);",
-                b.toString());
-    }
-
-
-    @Test
-    public void testSqlBuilderINSERTExcludeWhere () {
-        SqlBuilder b = new SqlBuilder("users");
-        b.insert(Attributes.USERNAME, Attributes.PASSWORD)
-                .params("user", "pass").where("some=?");
-        Assert.assertEquals("query does not match",
-                "INSERT INTO users (username, password) VALUES (user, pass);",
-                b.toString());
-    }
-
-
-    @Test
-    public void testSqlBuilderDELETE () {
-        SqlBuilder b = new SqlBuilder("users");
-        b.delete().where(Attributes.PERSISTENT_ID + "=?");
-        Assert.assertEquals("query does not match",
-                "DELETE FROM users WHERE persistent_id=?;", b.toString());
-    }
-
-
-    @Test
-    public void testSqlBuilderUPDATE () {
-        SqlBuilder b = new SqlBuilder("users");
-        b.update(Attributes.USERNAME, Attributes.PASSWORD).params("user",
-                "pass");
-        Assert.assertEquals("query does not match",
-                "UPDATE users SET username=user, password=pass;", b.toString());
-    }
-}
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 5070bfe..390ae00 100644
--- a/src/test/java/de/ids_mannheim/korap/config/ConfigTest.java
+++ b/src/test/java/de/ids_mannheim/korap/config/ConfigTest.java
@@ -5,20 +5,14 @@
 import de.ids_mannheim.korap.utils.ServiceInfo;
 import de.ids_mannheim.korap.utils.TimeUtils;
 import de.ids_mannheim.korap.web.service.BootableBeanInterface;
-import de.ids_mannheim.korap.web.service.full.AdminService;
-import org.apache.lucene.util.IOUtils;
 import org.codehaus.plexus.util.IOUtil;
 import org.junit.Assert;
+import org.junit.Ignore;
 import org.junit.Test;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
+import java.io.*;
 import java.security.NoSuchAlgorithmException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 
 import static org.junit.Assert.*;
 
@@ -30,6 +24,20 @@
 
 
     @Test
+    public void testConfigLoader () {
+        InputStream stream = ConfigLoader.loadConfigStream("kustvakt.conf");
+        assertNotNull(stream);
+    }
+
+
+    @Test
+    public void testPropertyLoader () throws IOException {
+        Properties p = ConfigLoader.loadProperties("kustvakt.conf");
+        assertNotNull(p);
+    }
+
+
+    @Test
     public void testAdminHash () throws IOException, KustvaktException,
             NoSuchAlgorithmException {
         AdminSetup setup = AdminSetup.getInstance();
@@ -64,16 +72,13 @@
 
 
     @Test(expected = KustvaktException.class)
+    @Ignore
     public void testBeanOverrideInjection () throws KustvaktException {
         helper().getContext()
                 .getConfiguration()
                 .setPropertiesAsStream(
                         ConfigTest.class.getClassLoader().getResourceAsStream(
                                 "kustvakt.conf"));
-
-        String v = "testmail_&234@ids-mannheim.de";
-        helper().getContext().getEncryption()
-                .validateEntry(v, Attributes.EMAIL);
     }
 
 
@@ -114,6 +119,16 @@
         assertEquals(check, tracker.size());
     }
 
+    // todo:
+    @Test
+    @Ignore
+    public void testKustvaktValueValidation() {
+        Map m = KustvaktConfiguration.KUSTVAKT_USER;
+        EncryptionIface crypto = helper().getContext().getEncryption();
+
+
+    }
+
 
     @Test
     public void testBootConfigDependencyOrder () {
@@ -121,7 +136,6 @@
 
     }
 
-
     @Override
     public void initMethod () throws KustvaktException {
 
diff --git a/src/test/java/de/ids_mannheim/korap/config/EsapiTest.java b/src/test/java/de/ids_mannheim/korap/config/EsapiTest.java
deleted file mode 100644
index 5d26cd7..0000000
--- a/src/test/java/de/ids_mannheim/korap/config/EsapiTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package de.ids_mannheim.korap.config;
-
-import de.ids_mannheim.korap.exceptions.KustvaktException;
-import de.ids_mannheim.korap.interfaces.EncryptionIface;
-import org.junit.Test;
-
-import java.util.Map;
-
-import static org.junit.Assert.*;
-
-/**
- * @author hanl
- * @date 08/01/2016
- */
-public class EsapiTest extends BeanConfigTest {
-
-    @Test
-    public void testInputPassword () throws KustvaktException {
-        String pass = TestHelper.getUserCredentials()[1];
-        EncryptionIface cr = helper().getContext().getEncryption();
-        String spass = cr.validateEntry(pass, Attributes.PASSWORD);
-        assertNotNull(spass);
-        assertFalse(spass.isEmpty());
-    }
-
-
-    @Test
-    public void testMapValidation () throws KustvaktException {
-        int exp_size = KustvaktConfiguration.KUSTVAKT_USER.size();
-        Map map = helper().getContext().getEncryption()
-                .validateMap(KustvaktConfiguration.KUSTVAKT_USER);
-        assertEquals(exp_size, map.size());
-    }
-
-
-    @Test
-    public void testUsernameValidation () throws KustvaktException {
-        String sus = helper()
-                .getContext()
-                .getEncryption()
-                .validateEntry(
-                        (String) KustvaktConfiguration.KUSTVAKT_USER
-                                .get(Attributes.USERNAME),
-                        Attributes.USERNAME);
-        assertNotNull(sus);
-        assertFalse(sus.isEmpty());
-    }
-
-
-    @Override
-    public void initMethod () throws KustvaktException {
-
-    }
-}
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 53404b6..0a9131e 100644
--- a/src/test/java/de/ids_mannheim/korap/config/TestHelper.java
+++ b/src/test/java/de/ids_mannheim/korap/config/TestHelper.java
@@ -14,7 +14,9 @@
 import de.ids_mannheim.korap.security.auth.BasicHttpAuth;
 import de.ids_mannheim.korap.security.auth.KustvaktAuthenticationManager;
 import de.ids_mannheim.korap.user.User;
+import de.ids_mannheim.korap.utils.TimeUtils;
 import de.ids_mannheim.korap.web.service.BootableBeanInterface;
+import org.apache.commons.collections.map.HashedMap;
 import org.apache.commons.dbcp2.BasicDataSource;
 import org.flywaydb.core.Flyway;
 import org.joda.time.DateTime;
@@ -47,12 +49,22 @@
 public class TestHelper {
 
     private static Logger jlog = LoggerFactory.getLogger(TestHelper.class);
-    private static final String[] credentials = new String[] { "test1",
-            "testPass2015" };
+    private static final Map<String, Object> data = new HashMap<>();
+    static  {
+        data.put(Attributes.ID, 2);
+        data.put(Attributes.USERNAME, "testUser1");
+        data.put(Attributes.PASSWORD, "testPass2015");
+        data.put(Attributes.FIRSTNAME, "test");
+        data.put(Attributes.LASTNAME, "user");
+        data.put(Attributes.EMAIL, "test@ids-mannheim.de");
+        data.put(Attributes.ADDRESS, "Mannheim");
+        data.put(Attributes.DEFAULT_LEMMA_FOUNDRY, "test_l");
+        data.put(Attributes.DEFAULT_POS_FOUNDRY, "test_p");
+        data.put(Attributes.DEFAULT_CONST_FOUNDRY, "test_const");
+    }
 
     private ContextHolder beansHolder;
 
-
     public static TestHelper newInstance (ApplicationContext ctx)
             throws Exception {
         TestHelper b = new TestHelper();
@@ -90,18 +102,7 @@
             // do nothing and continue
         }
 
-        Map m = new HashMap<>();
-        m.put(Attributes.ID, 2);
-        m.put(Attributes.USERNAME, credentials[0]);
-        m.put(Attributes.PASSWORD, credentials[1]);
-        m.put(Attributes.FIRSTNAME, "test");
-        m.put(Attributes.LASTNAME, "user");
-        m.put(Attributes.EMAIL, "test@ids-mannheim.de");
-        m.put(Attributes.ADDRESS, "Mannheim");
-        m.put(Attributes.DEFAULT_LEMMA_FOUNDRY, "test_l");
-        m.put(Attributes.DEFAULT_POS_FOUNDRY, "test_p");
-        m.put(Attributes.DEFAULT_CONST_FOUNDRY, "test_const");
-
+        Map m = getUserCredentials();
         assertNotNull("userdatabase handler must not be null", dao);
 
         try {
@@ -109,6 +110,7 @@
         }
         catch (KustvaktException e) {
             // do nothing
+            jlog.error("Error: {}", e.string());
             assertNotNull("Test user could not be set up", null);
         }
         assertNotEquals(0, dao.size());
@@ -148,7 +150,7 @@
 
             int i = edao.createAccount(User.UserFactory.toKorAPUser(m));
             assert BeansFactory.getKustvaktContext().getUserDBHandler()
-                    .getAccount(credentials[0]) != null;
+                    .getAccount((String) data.get(Attributes.USERNAME)) != null;
             assertEquals(1, i);
         }
         catch (KustvaktException e) {
@@ -162,7 +164,7 @@
     public User getUser () {
         try {
             return ((EntityHandlerIface) getBean(ContextHolder.KUSTVAKT_USERDB))
-                    .getAccount(credentials[0]);
+                    .getAccount((String) data.get(Attributes.USERNAME));
         }
         catch (KustvaktException e) {
             // do nothing
@@ -213,8 +215,8 @@
     }
 
 
-    public static final String[] getUserCredentials () {
-        return Arrays.copyOf(credentials, 2);
+    public static Map<String, Object> getUserCredentials () {
+        return new HashMap<>(data);
     }
 
 
@@ -322,7 +324,7 @@
             throws InterruptedException {
         SingleConnectionDataSource dataSource = new SingleConnectionDataSource();
         dataSource.setDriverClassName("org.sqlite.JDBC");
-        DateTime t = new DateTime();
+        DateTime t = TimeUtils.getNow();
         //String name = testclass != null ? testclass.getSimpleName() + "_" : "";
 
         if (memory)
@@ -354,7 +356,7 @@
         dataSource.setInitialSize(1);
         dataSource.setMaxIdle(1);
         dataSource.addConnectionProperty("lazy-init", "true");
-        DateTime t = new DateTime();
+        DateTime t = TimeUtils.getNow();
         if (memory)
             dataSource.setUrl("jdbc:sqlite::memory:");
         else {
@@ -419,8 +421,7 @@
         @Override
         public KustvaktConfiguration getConfig () {
             KustvaktConfiguration c = new KustvaktConfiguration();
-            InputStream s = TestHelper.class.getClassLoader()
-                    .getResourceAsStream("kustvakt.conf");
+            InputStream s = ConfigLoader.loadConfigStream("kustvakt.conf");
             if (s != null)
                 c.setPropertiesAsStream(s);
             else {
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 04d3eef..15bdd4f 100644
--- a/src/test/java/de/ids_mannheim/korap/handlers/ResourceDaoTest.java
+++ b/src/test/java/de/ids_mannheim/korap/handlers/ResourceDaoTest.java
@@ -1,5 +1,6 @@
 package de.ids_mannheim.korap.handlers;
 
+import de.ids_mannheim.korap.config.Attributes;
 import de.ids_mannheim.korap.config.BeanConfigTest;
 import de.ids_mannheim.korap.config.KustvaktClassLoader;
 import de.ids_mannheim.korap.config.TestHelper;
@@ -88,7 +89,7 @@
         c.addField("key_2", 2);
 
         User user = User.UserFactory
-                .getUser(TestHelper.getUserCredentials()[0]);
+                .getUser((String) TestHelper.getUserCredentials().get(Attributes.USERNAME));
 
         int id = dao.storeResource(c, user);
 
@@ -109,7 +110,7 @@
         c.addField("key_2", 2);
 
         User user = User.UserFactory
-                .getUser(TestHelper.getUserCredentials()[0]);
+                .getUser((String) TestHelper.getUserCredentials().get(Attributes.USERNAME));
 
         int id = dao.storeResource(c, user);
 
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 32e53d1..8e0616e 100644
--- a/src/test/java/de/ids_mannheim/korap/handlers/UserDaoTest.java
+++ b/src/test/java/de/ids_mannheim/korap/handlers/UserDaoTest.java
@@ -1,5 +1,6 @@
 package de.ids_mannheim.korap.handlers;
 
+import de.ids_mannheim.korap.config.Attributes;
 import de.ids_mannheim.korap.config.BeanConfigTest;
 import de.ids_mannheim.korap.config.BeansFactory;
 import de.ids_mannheim.korap.config.TestHelper;
@@ -27,7 +28,7 @@
     @Test
     public void userput () throws KustvaktException {
         User user1 = helper().getContext().getUserDBHandler()
-                .getAccount(TestHelper.getUserCredentials()[0]);
+                .getAccount((String) TestHelper.getUserCredentials().get(Attributes.USERNAME));
         assertEquals("user creation failed", true, user1.getId() != -1);
     }
 
@@ -41,9 +42,9 @@
     @Test
     public void userget () throws KustvaktException {
         User user1 = helper().getContext().getUserDBHandler()
-                .getAccount(TestHelper.getUserCredentials()[0]);
+                .getAccount((String) TestHelper.getUserCredentials().get(Attributes.USERNAME));
         assertEquals("User Retrieval does not work",
-                TestHelper.getUserCredentials()[0], user1.getUsername());
+                TestHelper.getUserCredentials().get(Attributes.USERNAME), user1.getUsername());
     }
 
 
@@ -85,7 +86,7 @@
     @Ignore
     public void updateUsername () throws KustvaktException {
         User user1 = helper().getContext().getUserDBHandler()
-                .getAccount(TestHelper.getUserCredentials()[0]);
+                .getAccount((String) TestHelper.getUserCredentials().get(Attributes.USERNAME));
         user1.setUsername("new_user");
         helper().getContext().getUserDBHandler().updateAccount(user1);
         User u2 = helper().getContext().getUserDBHandler()
@@ -97,7 +98,8 @@
     @Test
     public void userupdate () throws KustvaktException {
         EntityHandlerIface dao = helper().getContext().getUserDBHandler();
-        User user1 = dao.getAccount(TestHelper.getUserCredentials()[0]);
+        User user1 = dao.getAccount((String) TestHelper.getUserCredentials()
+                .get(Attributes.USERNAME));
         user1.setAccountLocked(true);
         dao.updateAccount(user1);
         assertEquals("not valid", true, dao.getAccount(user1.getUsername())
diff --git a/src/test/java/de/ids_mannheim/korap/resource/rewrite/FoundryRewriteTest.java b/src/test/java/de/ids_mannheim/korap/resource/rewrite/FoundryRewriteTest.java
index b667796..a122ac2 100644
--- a/src/test/java/de/ids_mannheim/korap/resource/rewrite/FoundryRewriteTest.java
+++ b/src/test/java/de/ids_mannheim/korap/resource/rewrite/FoundryRewriteTest.java
@@ -13,6 +13,7 @@
 import de.ids_mannheim.korap.user.User;
 import de.ids_mannheim.korap.user.UserSettings;
 import de.ids_mannheim.korap.utils.JsonUtils;
+import org.junit.Ignore;
 import org.junit.Test;
 
 import static org.junit.Assert.*;
@@ -194,11 +195,32 @@
         QuerySerializer s = new QuerySerializer();
         RewriteHandler handler = new RewriteHandler();
         handler.insertBeans(helper().getContext());
-        s.setQuery("[(base=laufen | base=gehen) & tt/pos=VVFIN]", "poliqarp");
+        s.setQuery("[(base=laufen | tt/pos=VVFIN)]", "poliqarp");
         assertTrue(handler.add(FoundryInject.class));
         String result = handler.processQuery(s.toJSON(), null);
         JsonNode node = JsonUtils.readTree(result);
+        System.out.println("NODDE "+ node);
+        assertNotNull(node);
+        assertEquals("koral:termGroup", node.at("/query/wrap/@type").asText());
+        assertFalse(node.at("/query/wrap/operands/0/foundry")
+                .isMissingNode());
+        assertFalse(node.at("/query/wrap/operands/0/rewrites")
+                .isMissingNode());
+        assertFalse(node.at("/query/wrap/operands/1/foundry").isMissingNode());
+        assertTrue(node.at("/query/wrap/operands/1/rewrites").isMissingNode());
+    }
 
+    @Test
+    @Ignore
+    public void testFoundyBaseRewrite() throws KustvaktException {
+        QuerySerializer s = new QuerySerializer();
+        RewriteHandler handler = new RewriteHandler();
+        handler.insertBeans(helper().getContext());
+        s.setQuery("[orth=laufen]", "poliqarp");
+        assertTrue(handler.add(FoundryInject.class));
+        String result = handler.processQuery(s.toJSON(), null);
+        JsonNode node = JsonUtils.readTree(result);
+        System.out.println("NODDE "+ node);
         assertNotNull(node);
         assertEquals("koral:termGroup", node.at("/query/wrap/@type").asText());
         assertFalse(node.at("/query/wrap/operands/0/operands/0/foundry")
diff --git a/src/test/java/de/ids_mannheim/korap/resource/rewrite/RewriteHandlerTest.java b/src/test/java/de/ids_mannheim/korap/resource/rewrite/RewriteHandlerTest.java
index 9458b0c..aa4f4cd 100644
--- a/src/test/java/de/ids_mannheim/korap/resource/rewrite/RewriteHandlerTest.java
+++ b/src/test/java/de/ids_mannheim/korap/resource/rewrite/RewriteHandlerTest.java
@@ -59,17 +59,15 @@
         RewriteHandler handler = new RewriteHandler();
         handler.insertBeans(helper().getContext());
         QuerySerializer s = new QuerySerializer();
-        s.setQuery("[(base=laufen | base=gehen) & tt/pos=VVFIN]", "poliqarp");
+        s.setQuery("[base=laufen | tt/pos=VVFIN]", "poliqarp");
         assertTrue(handler.add(FoundryInject.class));
         String res = handler.processQuery(s.toJSON(), null);
         JsonNode node = JsonUtils.readTree(res);
         assertNotNull(node);
-
-        assertEquals("tt", node.at("/query/wrap/operands/0/operands/0/foundry")
+        assertEquals("tt", node.at("/query/wrap/operands/0/foundry")
                 .asText());
-        assertEquals("tt", node.at("/query/wrap/operands/0/operands/1/foundry")
+        assertEquals("tt", node.at("/query/wrap/operands/1/foundry")
                 .asText());
-        assertEquals("tt", node.at("/query/wrap/operands/1/foundry").asText());
     }
 
 
@@ -78,17 +76,15 @@
         RewriteHandler handler = new RewriteHandler();
         handler.insertBeans(helper().getContext());
         QuerySerializer s = new QuerySerializer();
-        s.setQuery("[(base=laufen | base=gehen) & tt/pos=VVFIN]", "poliqarp");
+        s.setQuery("[base=laufen|tt/pos=VFIN]", "poliqarp");
         assertTrue(handler.add(FoundryInject.class));
         String res = handler.processQuery(s.toJSON(), helper().getUser());
         JsonNode node = JsonUtils.readTree(res);
         assertNotNull(node);
         assertEquals("tt_test",
-                node.at("/query/wrap/operands/0/operands/0/foundry").asText());
-        assertEquals("tt_test",
-                node.at("/query/wrap/operands/0/operands/1/foundry").asText());
-        assertNotEquals("tt_test", node.at("/query/wrap/operands/1/foundry")
-                .asText());
+                node.at("/query/wrap/operands/0/foundry").asText());
+        assertNotEquals("tt_test",
+                node.at("/query/wrap/operands/1/foundry").asText());
     }
 
 
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 35d06af..59b3053 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
@@ -9,6 +9,7 @@
 import de.ids_mannheim.korap.interfaces.db.EntityHandlerIface;
 import de.ids_mannheim.korap.user.*;
 import org.junit.After;
+import org.junit.Ignore;
 import org.junit.Test;
 
 import static org.junit.Assert.assertNotEquals;
@@ -110,6 +111,15 @@
         manager.getUserData(user, UserSettings.class);
     }
 
+    @Test
+    @Ignore
+    public void testUserUpdate() throws KustvaktException {
+        testCreateUser();
+        AuthenticationManagerIface manager = helper().getContext()
+                .getAuthenticationManager();
+        // todo:
+    }
+
 
     @Override
     public void initMethod () throws KustvaktException {
diff --git a/src/test/java/de/ids_mannheim/korap/web/service/FastJerseyTest.java b/src/test/java/de/ids_mannheim/korap/web/service/FastJerseyTest.java
index 3d36b6f..65c906c 100644
--- a/src/test/java/de/ids_mannheim/korap/web/service/FastJerseyTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/service/FastJerseyTest.java
@@ -19,6 +19,7 @@
 
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.UriBuilder;
+import java.io.IOException;
 import java.net.BindException;
 import java.net.URI;
 
diff --git a/src/test/java/de/ids_mannheim/korap/web/service/OAuth2HandlerTest.java b/src/test/java/de/ids_mannheim/korap/web/service/OAuth2HandlerTest.java
index 8a56efb..4bdb337 100644
--- a/src/test/java/de/ids_mannheim/korap/web/service/OAuth2HandlerTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/service/OAuth2HandlerTest.java
@@ -9,11 +9,11 @@
 import de.ids_mannheim.korap.interfaces.EncryptionIface;
 import de.ids_mannheim.korap.interfaces.db.PersistenceClient;
 import de.ids_mannheim.korap.user.TokenContext;
-import org.junit.BeforeClass;
 import org.junit.Test;
 
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
 
 /**
  * @author hanl
@@ -37,6 +37,7 @@
         OAuth2Handler handler = new OAuth2Handler(helper().getContext()
                 .getPersistenceClient());
         handler.authorize(codeInfo, helper().getUser());
+        assertTrue("couldn't find entry in cache", handler.hasCacheEntry(codeInfo.getCode()));
         codeInfo = handler.getAuthorization(auth_code);
         assertNotNull("client is null!", codeInfo);
     }
@@ -56,7 +57,7 @@
         String refresh = helper().getContext().getEncryption().createToken();
         handler.addToken(codeInfo.getCode(), t, refresh, 7200);
 
-        TokenContext ctx = handler.getContext(t);
+        TokenContext ctx = handler.getPersistenceHandler().getContext(t);
         assertNotNull("context is null", ctx);
 
         AuthCodeInfo c2 = handler.getAuthorization(codeInfo.getCode());
@@ -116,6 +117,6 @@
         info.setRedirect_uri("testwebsite/login");
         PersistenceClient cl = helper().getBean(ContextHolder.KUSTVAKT_DB);
         OAuth2Handler handler = new OAuth2Handler(cl);
-        handler.registerClient(info, helper().getUser());
+        handler.getPersistenceHandler().registerClient(info, helper().getUser());
     }
 }
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 b41ecd3..6da2bb5 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
@@ -31,6 +31,10 @@
     public void testBasicHttp () {
         User user = helper().getUser();
 
+    }
+
+    @Test
+    public void testBlockingFilterFail() {
 
     }
 
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
index 1da69b9..43986a2 100644
--- 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
@@ -7,9 +7,13 @@
 import de.ids_mannheim.korap.config.Attributes;
 import de.ids_mannheim.korap.web.service.FastJerseyTest;
 import org.eclipse.jetty.server.Response;
+import org.junit.Assert;
 import org.junit.BeforeClass;
+import org.junit.Ignore;
 import org.junit.Test;
 
+import static org.junit.Assert.assertEquals;
+
 /**
  * @author hanl
  * @date 08/02/2016
@@ -31,18 +35,19 @@
                 .path("user/info")
                 .header(Attributes.AUTHORIZATION,
                         BasicHttpAuth.encode(
-                                TestHelper.getUserCredentials()[0],
-                                TestHelper.getUserCredentials()[1]))
+                                (String) TestHelper.getUserCredentials().get(Attributes.USERNAME),
+                                (String) TestHelper.getUserCredentials().get(Attributes.PASSWORD)))
                 .get(ClientResponse.class);
         assert resp.getStatus() == Response.SC_OK;
     }
 
 
     @Test
+    @Ignore
     public void testDemoAuth () {
         ClientResponse resp = resource().path(getAPIVersion())
                 .path("user/info").get(ClientResponse.class);
-        assert resp.getStatus() == Response.SC_OK;
+        assertEquals(ClientResponse.Status.OK.getStatusCode(), resp.getStatus());
     }
 
 
@@ -54,7 +59,7 @@
                 .header(Attributes.AUTHORIZATION,
                         BasicHttpAuth.encode("kustvakt", "kustvakt2015"))
                 .get(ClientResponse.class);
-        assert resp.getStatus() == Response.SC_UNAUTHORIZED;
+        assertEquals(ClientResponse.Status.UNAUTHORIZED.getStatusCode(), resp.getStatus());
     }
 
 
diff --git a/src/test/java/de/ids_mannheim/korap/web/service/full/LightServiceTest.java b/src/test/java/de/ids_mannheim/korap/web/service/full/LightServiceTest.java
index 3ba4f31..ceb9a35 100644
--- a/src/test/java/de/ids_mannheim/korap/web/service/full/LightServiceTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/service/full/LightServiceTest.java
@@ -6,6 +6,7 @@
 import de.ids_mannheim.korap.query.serialize.QuerySerializer;
 import de.ids_mannheim.korap.utils.JsonUtils;
 import de.ids_mannheim.korap.web.service.FastJerseyTest;
+import org.apache.lucene.LucenePackage;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -168,6 +169,9 @@
                 .queryParam("context", "sentence").queryParam("count", "13")
                 .queryParam("cq", "textClass=Politik & corpus=WPD")
                 .get(ClientResponse.class);
+        String version = LucenePackage.get().getImplementationVersion();;
+        System.out.println("VERSION "+ version);
+        System.out.println("RESPONSE "+ response);
         assertEquals(ClientResponse.Status.OK.getStatusCode(),
                 response.getStatus());
         query = response.getEntity(String.class);
diff --git a/src/test/java/de/ids_mannheim/korap/web/service/full/OAuth2EndpointTest.java b/src/test/java/de/ids_mannheim/korap/web/service/full/OAuth2EndpointTest.java
index a1a5d5f..ea64938 100644
--- a/src/test/java/de/ids_mannheim/korap/web/service/full/OAuth2EndpointTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/service/full/OAuth2EndpointTest.java
@@ -8,10 +8,15 @@
 import de.ids_mannheim.korap.config.Attributes;
 import de.ids_mannheim.korap.utils.JsonUtils;
 import de.ids_mannheim.korap.web.service.FastJerseyTest;
+import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Test;
 
+import java.util.Map;
+
+import static org.junit.Assert.assertEquals;
+
 /**
  * @author hanl
  * @date 23/09/2015
@@ -21,18 +26,11 @@
 
     @BeforeClass
     public static void configure () throws Exception {
-        FastJerseyTest.setPackages("de.ids_mannheim.korap.web.service",
+        FastJerseyTest.setPackages("de.ids_mannheim.korap.web.service.full",
                 "de.ids_mannheim.korap.web.filter",
                 "de.ids_mannheim.korap.web.utils");
     }
 
-
-    @Test
-    public void init () {
-
-    }
-
-
     @Override
     public void initMethod () throws KustvaktException {
         helper().setupAccount();
@@ -40,26 +38,34 @@
 
 
     @Test
-    @Ignore
     public void testAuthorizeClient () {
-        ClientResponse response = resource().path("v0.1").path("oauth2")
+        String auth = BasicHttpAuth.encode(helper().getUser().getUsername(),
+                (String) TestHelper.getUserCredentials().get(Attributes.PASSWORD));
+        ClientResponse response = resource().path(getAPIVersion()).path("oauth2")
                 .path("register")
                 .queryParam("redirect_url", "korap.ids-mannheim.de/redirect")
                 .header("Host", "korap.ids-mannheim.de")
+                .header(Attributes.AUTHORIZATION, auth)
                 .post(ClientResponse.class);
-        assert response.getStatus() == ClientResponse.Status.OK.getStatusCode();
+
+        JsonNode node = JsonUtils.readTree(response.getEntity(String.class));
+        System.out.println(node);
+
+        assertEquals(ClientResponse.Status.OK.getStatusCode(),
+                response.getStatus());
     }
 
 
     @Test
     @Ignore
     public void testRevokeClient () {
-        ClientResponse response = resource().path("v0.1").path("oauth2")
+        ClientResponse response = resource().path(getAPIVersion()).path("oauth2")
                 .path("register")
                 .queryParam("redirect_url", "korap.ids-mannheim.de/redirect")
                 .header("Host", "korap.ids-mannheim.de")
                 .post(ClientResponse.class);
-        assert response.getStatus() == ClientResponse.Status.OK.getStatusCode();
+        assertEquals(ClientResponse.Status.OK.getStatusCode(),
+                response.getStatus());
         JsonNode node = JsonUtils.readTree(response.getEntity(String.class));
 
     }
@@ -68,22 +74,24 @@
     @Test
     @Ignore
     public void authenticate () {
-        String[] cred = TestHelper.getUserCredentials();
-        String enc = BasicHttpAuth.encode(cred[0], cred[1]);
-        ClientResponse response = resource().path("v0.1").path("oauth2")
+        Map<String, Object> cred = TestHelper.getUserCredentials();
+        String enc = BasicHttpAuth.encode((String) cred.get(Attributes.USERNAME), (String) cred.get(Attributes.PASSWORD));
+        ClientResponse response = resource().path(getAPIVersion()).path("oauth2")
                 .path("register")
                 .queryParam("redirect_url", "korap.ids-mannheim.de/redirect")
                 .header("Host", "korap.ids-mannheim.de")
                 .header(Attributes.AUTHORIZATION, enc)
                 .post(ClientResponse.class);
-        assert response.getStatus() == ClientResponse.Status.OK.getStatusCode();
+        assertEquals(ClientResponse.Status.OK.getStatusCode(),
+                response.getStatus());
+
         String e = response.getEntity(String.class);
         JsonNode node = JsonUtils.readTree(e);
 
         String cl_s = node.path("client_secret").asText();
         String cl_id = node.path("client_id").asText();
 
-        response = resource().path("v0.1").path("oauth2").path("authorize")
+        response = resource().path(getAPIVersion()).path("oauth2").path("authorize")
                 .queryParam("client_id", cl_id)
                 .queryParam("client_secret", cl_s)
                 .queryParam("response_type", "code")
@@ -93,16 +101,19 @@
                 .post(ClientResponse.class);
 
         e = response.getEntity(String.class);
-        assert response.getStatus() == ClientResponse.Status.OK.getStatusCode();
+        assertEquals(ClientResponse.Status.OK.getStatusCode(),
+                response.getStatus());
+
         node = JsonUtils.readTree(e);
 
-        response = resource().path("v0.1").path("oauth2").path("authorize")
+        response = resource().path(getAPIVersion()).path("oauth2").path("authorize")
                 .queryParam("code", node.path("authorization_code").asText())
                 .queryParam("grant_type", "authorization_code")
                 .queryParam("client_id", cl_id)
                 .queryParam("client_secret", cl_s).post(ClientResponse.class);
 
-        assert response.getStatus() == ClientResponse.Status.OK.getStatusCode();
+        assertEquals(ClientResponse.Status.OK.getStatusCode(),
+                response.getStatus());
     }
 
 }
diff --git a/src/test/java/de/ids_mannheim/korap/web/service/full/ResourceServiceTest.java b/src/test/java/de/ids_mannheim/korap/web/service/full/ResourceServiceTest.java
index c63280a..cc93a5a 100644
--- a/src/test/java/de/ids_mannheim/korap/web/service/full/ResourceServiceTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/service/full/ResourceServiceTest.java
@@ -2,7 +2,6 @@
 
 import com.fasterxml.jackson.databind.JsonNode;
 import com.sun.jersey.api.client.ClientResponse;
-import com.sun.jmx.snmp.SnmpOidTable;
 import de.ids_mannheim.korap.exceptions.KustvaktException;
 import de.ids_mannheim.korap.query.serialize.QuerySerializer;
 import de.ids_mannheim.korap.security.auth.BasicHttpAuth;