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);
}