Remove user default settings from the database migration (close #810)

Change-Id: I76d825fb030c2e8eddf538e7c4281724ab85a69f
diff --git a/Changes b/Changes
index 13db6ce..b048dc5 100644
--- a/Changes
+++ b/Changes
@@ -5,6 +5,7 @@
 - Add pipe response rewriting (#794)
 - Fix datatype for query statistics (close #802)
 - Remove admin test data from database migration (close #808)
+- Remove user default settings from the database migration (close #810)
 
 # version 0.78.2
 
diff --git a/src/main/resources/db/test/V3.6__insert_default_settings.sql b/src/main/resources/db/test/V3.6__insert_default_settings.sql
index 5bd5264..4208ac4 100644
--- a/src/main/resources/db/test/V3.6__insert_default_settings.sql
+++ b/src/main/resources/db/test/V3.6__insert_default_settings.sql
@@ -1,2 +1,2 @@
-INSERT INTO default_setting(username,settings) 
-	VALUES ("bubbles",'{"pos-foundry":"corenlp", "lemma-foundry":"opennlp"}');
+--INSERT INTO default_setting(username,settings) 
+--	VALUES ("bubbles",'{"pos-foundry":"corenlp", "lemma-foundry":"opennlp"}');
diff --git a/src/test/java/de/ids_mannheim/korap/config/TestBase.java b/src/test/java/de/ids_mannheim/korap/config/TestBase.java
new file mode 100644
index 0000000..fab897b
--- /dev/null
+++ b/src/test/java/de/ids_mannheim/korap/config/TestBase.java
@@ -0,0 +1,49 @@
+package de.ids_mannheim.korap.config;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import java.util.Map;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.google.common.net.HttpHeaders;
+
+import de.ids_mannheim.korap.authentication.http.HttpAuthorizationHandler;
+import de.ids_mannheim.korap.exceptions.KustvaktException;
+import de.ids_mannheim.korap.exceptions.StatusCodes;
+import de.ids_mannheim.korap.utils.JsonUtils;
+import jakarta.ws.rs.client.Entity;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
+
+public abstract class TestBase extends SpringJerseyTest {
+
+	protected Response createUpdateDefaultSettings (String username, Map<String, Object> map)
+            throws KustvaktException {
+        Response response = target().path(API_VERSION).path("~" + username)
+                .path("setting").request()
+                .header(Attributes.AUTHORIZATION, HttpAuthorizationHandler
+                        .createBasicAuthorizationHeaderValue(username, "pass"))
+                .put(Entity.json(map));
+        return response;
+    }
+	
+	protected void testDeleteSetting (String username) throws KustvaktException {
+        Response response = target().path(API_VERSION).path("~" + username)
+                .path("setting").request()
+                .header(Attributes.AUTHORIZATION, HttpAuthorizationHandler
+                        .createBasicAuthorizationHeaderValue(username, "pass"))
+                .delete();
+        assertEquals(Status.OK.getStatusCode(), response.getStatus());
+        response = target().path(API_VERSION).path("~" + username)
+                .path("setting").request()
+                .header(Attributes.AUTHORIZATION, HttpAuthorizationHandler
+                        .createBasicAuthorizationHeaderValue(username, "pass"))
+                .header(HttpHeaders.X_FORWARDED_FOR, "149.27.0.32").get();
+        assertEquals(Status.NOT_FOUND.getStatusCode(), response.getStatus());
+        String entity = response.readEntity(String.class);
+        JsonNode node = JsonUtils.readTree(entity);
+        assertEquals(StatusCodes.NO_RESOURCE_FOUND,
+                node.at("/errors/0/0").asInt());
+        assertEquals(username, node.at("/errors/0/2").asText());
+    }
+}
diff --git a/src/test/java/de/ids_mannheim/korap/rewrite/FoundryRewriteTest.java b/src/test/java/de/ids_mannheim/korap/rewrite/FoundryRewriteTest.java
index 15c3d7a..3d543f3 100644
--- a/src/test/java/de/ids_mannheim/korap/rewrite/FoundryRewriteTest.java
+++ b/src/test/java/de/ids_mannheim/korap/rewrite/FoundryRewriteTest.java
@@ -5,14 +5,18 @@
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
+import java.util.HashMap;
+import java.util.Map;
+
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
+
 import com.fasterxml.jackson.databind.JsonNode;
 
 import de.ids_mannheim.korap.authentication.http.HttpAuthorizationHandler;
 import de.ids_mannheim.korap.config.Attributes;
 import de.ids_mannheim.korap.config.KustvaktConfiguration;
-import de.ids_mannheim.korap.config.SpringJerseyTest;
+import de.ids_mannheim.korap.config.TestBase;
 import de.ids_mannheim.korap.exceptions.KustvaktException;
 import de.ids_mannheim.korap.query.serialize.QuerySerializer;
 import de.ids_mannheim.korap.user.KorAPUser;
@@ -27,7 +31,7 @@
  * @date 18/06/2015
  */
 // MH todo: check position and information of rewrites!
-public class FoundryRewriteTest extends SpringJerseyTest {
+public class FoundryRewriteTest extends TestBase {
 
     // private static String simple_add_query = "[pos=ADJA]";
     // private static String simple_rewrite_query = "[base=Haus]";
@@ -74,8 +78,12 @@
     @Test
     public void testRewritePosFoundryWithUserSetting ()
             throws KustvaktException {
-        // EM: see
-        // full/src/main/resources/db/insert/V3.6__insert_default_settings.sql
+		Map<String, Object> map = new HashMap<>();
+		map.put("pos-foundry", "corenlp");
+		map.put("lemma-foundry", "opennlp");
+		Response response = createUpdateDefaultSettings("bubbles", map);
+		assertEquals(Status.CREATED.getStatusCode(), response.getStatus());
+
         String username = "bubbles";
         QuerySerializer s = new QuerySerializer();
         s.setQuery("[pos=ADJA]", "poliqarp");
@@ -85,12 +93,13 @@
         assertEquals(node.at("/query/wrap/foundry").asText(), "corenlp");
         assertEquals(node.at("/query/wrap/rewrites/0/scope").asText(),
                 "foundry");
+        
+        testRewriteLemmaFoundryWithUserSetting(username);
+        testDeleteSetting(username);
     }
 
-    @Test
-    public void testRewriteLemmaFoundryWithUserSetting ()
+    private void testRewriteLemmaFoundryWithUserSetting (String username)
             throws KustvaktException {
-        String username = "bubbles";
         QuerySerializer s = new QuerySerializer();
         s.setQuery("[base=Haus]", "poliqarp");
         String result = rewriteHandler.processQuery(s.toJSON(),
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/UserSettingControllerTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/UserSettingControllerTest.java
index 176e31b..e7e7ef3 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/UserSettingControllerTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/UserSettingControllerTest.java
@@ -6,40 +6,30 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import jakarta.ws.rs.client.Entity;
-
 import org.junit.jupiter.api.Test;
+
 import com.fasterxml.jackson.databind.JsonNode;
 import com.google.common.net.HttpHeaders;
-import jakarta.ws.rs.core.Response;
-import jakarta.ws.rs.core.Response.Status;
 
 import de.ids_mannheim.korap.authentication.http.HttpAuthorizationHandler;
 import de.ids_mannheim.korap.config.Attributes;
-import de.ids_mannheim.korap.config.SpringJerseyTest;
+import de.ids_mannheim.korap.config.TestBase;
 import de.ids_mannheim.korap.exceptions.KustvaktException;
 import de.ids_mannheim.korap.exceptions.StatusCodes;
 import de.ids_mannheim.korap.utils.JsonUtils;
+import jakarta.ws.rs.client.Entity;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
 
 /**
  * @author margaretha
  */
-public class UserSettingControllerTest extends SpringJerseyTest {
+public class UserSettingControllerTest extends TestBase {
 
     private String username = "UserSetting_Test";
 
     private String username2 = "UserSetting.Test2";
 
-    public Response sendPutRequest (String username, Map<String, Object> map)
-            throws KustvaktException {
-        Response response = target().path(API_VERSION).path("~" + username)
-                .path("setting").request()
-                .header(Attributes.AUTHORIZATION, HttpAuthorizationHandler
-                        .createBasicAuthorizationHeaderValue(username, "pass"))
-                .put(Entity.json(map));
-        return response;
-    }
-
     @Test
     public void testCreateSettingWithJson () throws KustvaktException {
         String json = "{\"pos-foundry\":\"opennlp\",\"metadata\":[\"author\", \"title\","
@@ -65,7 +55,7 @@
         map.put("pos-foundry", "opennlp");
         map.put("resultPerPage", 25);
         map.put("metadata", "author title textSigle availability");
-        Response response = sendPutRequest(username2, map);
+        Response response = createUpdateDefaultSettings(username2, map);
         assertEquals(Status.CREATED.getStatusCode(), response.getStatus());
         testRetrieveSettings(username2, "opennlp", 25,
                 "author title textSigle availability", false);
@@ -77,7 +67,7 @@
     public void testputRequestInvalidKey () throws KustvaktException {
         Map<String, Object> map = new HashMap<>();
         map.put("key/", "invalidKey");
-        Response response = sendPutRequest(username2, map);
+        Response response = createUpdateDefaultSettings(username2, map);
         assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus());
         JsonNode node = JsonUtils.readTree(response.readEntity(String.class));
         assertEquals(StatusCodes.INVALID_ARGUMENT,
@@ -159,26 +149,6 @@
                 node.at("/errors/0/0").asInt());
     }
 
-    private void testDeleteSetting (String username) throws KustvaktException {
-        Response response = target().path(API_VERSION).path("~" + username)
-                .path("setting").request()
-                .header(Attributes.AUTHORIZATION, HttpAuthorizationHandler
-                        .createBasicAuthorizationHeaderValue(username, "pass"))
-                .delete();
-        assertEquals(Status.OK.getStatusCode(), response.getStatus());
-        response = target().path(API_VERSION).path("~" + username)
-                .path("setting").request()
-                .header(Attributes.AUTHORIZATION, HttpAuthorizationHandler
-                        .createBasicAuthorizationHeaderValue(username, "pass"))
-                .header(HttpHeaders.X_FORWARDED_FOR, "149.27.0.32").get();
-        assertEquals(Status.NOT_FOUND.getStatusCode(), response.getStatus());
-        String entity = response.readEntity(String.class);
-        JsonNode node = JsonUtils.readTree(entity);
-        assertEquals(StatusCodes.NO_RESOURCE_FOUND,
-                node.at("/errors/0/0").asInt());
-        assertEquals(username, node.at("/errors/0/2").asText());
-    }
-
     // EM: deleting a non-existing key does not throw an error,
     // because
     // the purpose of the request has been achieved.
@@ -209,7 +179,7 @@
         map.put("pos-foundry", "malt");
         map.put("resultPerPage", 15);
         map.put("metadata", "author title");
-        Response response = sendPutRequest(username, map);
+        Response response = createUpdateDefaultSettings(username, map);
         assertEquals(Status.OK.getStatusCode(), response.getStatus());
         testRetrieveSettings(username, "malt", 15, "author title", false);
     }