Added maximum number of user persistent virtual corpora and queries
Change-Id: I6bbf17ed9cc68203908208c0bc46f81e55fe0d8a
diff --git a/full/src/test/java/de/ids_mannheim/korap/web/controller/VirtualCorpusControllerTest.java b/full/src/test/java/de/ids_mannheim/korap/web/controller/VirtualCorpusControllerTest.java
index 3c67974..4106a7a 100644
--- a/full/src/test/java/de/ids_mannheim/korap/web/controller/VirtualCorpusControllerTest.java
+++ b/full/src/test/java/de/ids_mannheim/korap/web/controller/VirtualCorpusControllerTest.java
@@ -381,6 +381,47 @@
"Cannot deserialize value of type `de.ids_mannheim.korap.constant."
+ "ResourceType` from String \"PRIVAT\""));
}
+
+ @Test
+ public void testMaxNumberOfVC () throws KustvaktException {
+ String json = "{\"type\": \"PRIVATE\""
+ + ",\"queryType\": \"VIRTUAL_CORPUS\""
+ + ",\"corpusQuery\": \"corpusSigle=GOE\"}";
+
+ for (int i=1; i<6; i++) {
+ createVC(authHeader,testUser, "new_vc_"+i, json);
+ }
+
+ Response response = target().path(API_VERSION).path("vc")
+ .path("~" + testUser).path("new_vc_6").request()
+ .header(Attributes.AUTHORIZATION, authHeader)
+ .header(HttpHeaders.CONTENT_TYPE, ContentType.APPLICATION_JSON)
+ .put(Entity.json(json));
+
+ assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus());
+
+ String entity = response.readEntity(String.class);
+ JsonNode node = JsonUtils.readTree(entity);
+
+ assertEquals(StatusCodes.NOT_ALLOWED,
+ node.at("/errors/0/0").asInt());
+ assertEquals("Cannot create virtual corpus. The maximum number of "
+ + "virtual corpus has been reached.",
+ node.at("/errors/0/1").asText());
+
+ // list user VC
+ node = listVC(testUser);
+ assertEquals(6, node.size()); // including 1 system-vc
+
+ // delete new VC
+ for (int i=1; i<6; i++) {
+ deleteVC("new_vc_"+i, testUser, testUser);
+ }
+
+ // list VC
+ node = listVC(testUser);
+ assertEquals(1, node.size()); // system-vc
+ }
@Test
public void testDeleteVC_unauthorized () throws KustvaktException {
diff --git a/full/src/test/resources/kustvakt-test.conf b/full/src/test/resources/kustvakt-test.conf
index 430ad5f..893d04b 100644
--- a/full/src/test/resources/kustvakt-test.conf
+++ b/full/src/test/resources/kustvakt-test.conf
@@ -52,6 +52,9 @@
delete.group = soft
delete.group.member = soft
+# Virtual corpus and queries
+max.user.persistent.queries = 5
+
# Availability regex only support |
# It should be removed/commented when the data doesn't contain availability field.
#