Update scope and add _comment as discussed in #782

Change-Id: I6b40f6208021151c48460797360b11eab6c33e62
diff --git a/src/test/java/de/ids_mannheim/korap/config/SpringJerseyTest.java b/src/test/java/de/ids_mannheim/korap/config/SpringJerseyTest.java
index a1baccb..4334b97 100644
--- a/src/test/java/de/ids_mannheim/korap/config/SpringJerseyTest.java
+++ b/src/test/java/de/ids_mannheim/korap/config/SpringJerseyTest.java
@@ -25,6 +25,13 @@
 
     public final static String API_VERSION = "v1.0";
 
+    protected final static String allCorpusAccess = "All corpus access policy "
+			+ "has been added.";
+	protected final static String freeCorpusAccess = "Free corpus access policy "
+			+ "has been added.";
+	protected final static String publicCorpusAccess = "Public corpus access "
+			+ "policy has been added.";
+    
     @Autowired
     protected GenericApplicationContext applicationContext;
 
diff --git a/src/test/java/de/ids_mannheim/korap/misc/KoralNodeTest.java b/src/test/java/de/ids_mannheim/korap/misc/KoralNodeTest.java
index dad58bd..08d71f5 100644
--- a/src/test/java/de/ids_mannheim/korap/misc/KoralNodeTest.java
+++ b/src/test/java/de/ids_mannheim/korap/misc/KoralNodeTest.java
@@ -3,9 +3,11 @@
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 import org.junit.jupiter.api.Test;
+
 import com.fasterxml.jackson.databind.node.ObjectNode;
+
 import de.ids_mannheim.korap.rewrite.KoralNode;
-import de.ids_mannheim.korap.rewrite.KoralNode.RewriteIdentifier;
+import de.ids_mannheim.korap.rewrite.RewriteIdentifier;
 import de.ids_mannheim.korap.utils.JsonUtils;
 
 /**
@@ -40,7 +42,7 @@
         node.put("value_1", "setting_1");
         KoralNode knode = KoralNode.wrapNode(node);
         knode.replace("value_1", "settings_2",
-                new RewriteIdentifier("value_1", "setting_1"));
+                new RewriteIdentifier("value_1", "setting_1", ""));
         assertEquals(knode.rawNode().toString(),
                 "{\"value_1\":\"settings_2\"}");
     }
diff --git a/src/test/java/de/ids_mannheim/korap/rewrite/AvailabilityRewriteTest.java b/src/test/java/de/ids_mannheim/korap/rewrite/AvailabilityRewriteTest.java
index d893540..2469746 100644
--- a/src/test/java/de/ids_mannheim/korap/rewrite/AvailabilityRewriteTest.java
+++ b/src/test/java/de/ids_mannheim/korap/rewrite/AvailabilityRewriteTest.java
@@ -183,9 +183,8 @@
         assertEquals(node.at("/collection/value").asText(), "CC.*");
         assertEquals(node.at("/collection/rewrites/0/@type").asText(),
                 "koral:rewrite");
-        assertEquals(node.at("/collection/rewrites/0/scope").asText(),
-                "availability(FREE)");
-        // todo:
+        assertEquals(freeCorpusAccess,
+        		node.at("/collection/rewrites/0/_comment").asText());
     }
 
     @Test
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/AvailabilityTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/AvailabilityTest.java
index ae9b93b..2500f17 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/AvailabilityTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/AvailabilityTest.java
@@ -33,8 +33,8 @@
 		assertEquals("operation:override",
 				node.at("/rewrites/0/operation").asText());
 		assertEquals(source, node.at("/rewrites/0/source"));
-		//        assertEquals(node.at("/collection/rewrites/0/scope").asText(),
-		//                "availability(FREE)");
+		assertEquals(freeCorpusAccess,
+				node.at("/rewrites/0/_comment").asText());
 	}
 
 	private void checkAndPublic (String json, JsonNode source)
@@ -46,6 +46,8 @@
 		assertEquals("Kustvakt", node.at("/rewrites/0/editor").asText());
 		assertEquals("operation:override", node.at("/rewrites/0/operation").asText());
 		assertEquals(source, node.at("/rewrites/0/source"));
+		assertEquals(publicCorpusAccess,
+				node.at("/rewrites/0/_comment").asText());
 		
 		node = node.at("/operands/0");
 		assertEquals("match:eq", node.at("/operands/0/match").asText());
@@ -71,6 +73,8 @@
 		assertEquals("Kustvakt", node.at("/rewrites/0/editor").asText());
 		assertEquals("operation:override", node.at("/rewrites/0/operation").asText());
 		assertEquals(source, node.at("/rewrites/0/source"));
+		assertEquals(allCorpusAccess,
+				node.at("/rewrites/0/_comment").asText());
 
 		assertEquals("match:eq", node.at("/operands/1/match").asText());
 		assertEquals("type:regex", node.at("/operands/1/type").asText());
@@ -122,6 +126,8 @@
 		assertEquals("CC.*", node.at("/value").asText());
 		assertEquals("operation:injection",
 				node.at("/rewrites/0/operation").asText());
+		assertEquals("Free corpus access policy has been added.",
+				node.at("/rewrites/0/_comment").asText());
     }
     
     @Test
@@ -169,7 +175,7 @@
                 "src" : "Kustvakt",
                 "editor" : "Kustvakt",
                 "operation" : "operation:injection",
-                "scope" : "availability(PUB)"
+                "_comment" : "Public corpus access policy has been added."
               } ]
             }
 			""";
@@ -232,7 +238,7 @@
                 "src" : "Kustvakt",
                 "editor" : "Kustvakt",
                 "operation" : "operation:injection",
-                "scope" : "availability(ALL)"
+                "_comment" : "All corpus access policy has been added."
               } ]
             }
    			""";
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/SearchControllerTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/SearchControllerTest.java
index a2ce70d..a8db188 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/SearchControllerTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/SearchControllerTest.java
@@ -119,8 +119,8 @@
         assertEquals("koral:doc", node.at("/collection/@type").asText());
         assertEquals("availability", node.at("/collection/key").asText());
         assertEquals("CC.*", node.at("/collection/value").asText());
-        assertEquals("availability(FREE)",
-                node.at("/collection/rewrites/0/scope").asText());
+        assertEquals(freeCorpusAccess,
+                node.at("/collection/rewrites/0/_comment").asText());
         assertEquals("operation:injection",
                 node.at("/collection/rewrites/0/operation").asText());
     }
@@ -182,8 +182,8 @@
         assertEquals("koral:doc", node.at("/collection/@type").asText());
         assertEquals("availability", node.at("/collection/key").asText());
         assertEquals("CC.*", node.at("/collection/value").asText());
-        assertEquals("availability(FREE)",
-                node.at("/collection/rewrites/0/scope").asText());
+        assertEquals(freeCorpusAccess,
+                node.at("/collection/rewrites/0/_comment").asText());
         assertEquals("operation:injection",
                 node.at("/collection/rewrites/0/operation").asText());
     }
@@ -202,8 +202,8 @@
         assertEquals("koral:doc", node.at("/collection/@type").asText());
         assertEquals("availability", node.at("/collection/key").asText());
         assertEquals("CC.*", node.at("/collection/value").asText());
-        assertEquals("availability(FREE)",
-                node.at("/collection/rewrites/0/scope").asText());
+        assertEquals(freeCorpusAccess,
+                node.at("/collection/rewrites/0/_comment").asText());
         assertEquals("operation:injection",
                 node.at("/collection/rewrites/0/operation").asText());
     }
@@ -231,8 +231,8 @@
         assertEquals("QAO-NC",
                 node.at("/collection/operands/1/operands/1/value").asText());
         assertEquals("operation:or", node.at("/collection/operation").asText());
-        assertEquals("availability(PUB)",
-                node.at("/collection/rewrites/0/scope").asText());
+        assertEquals(publicCorpusAccess,
+                node.at("/collection/rewrites/0/_comment").asText());
         assertEquals("operation:injection",
                 node.at("/collection/rewrites/0/operation").asText());
     }
@@ -264,8 +264,8 @@
                 node.at("/collection/operands/1/operands/1/operands/1/value")
                         .asText());
         assertEquals("operation:or", node.at("/collection/operation").asText());
-        assertEquals("availability(ALL)",
-                node.at("/collection/rewrites/0/scope").asText());
+        assertEquals(allCorpusAccess,
+                node.at("/collection/rewrites/0/_comment").asText());
         assertEquals("operation:injection",
                 node.at("/collection/rewrites/0/operation").asText());
     }
@@ -363,7 +363,7 @@
         assertEquals("CC.*", node.at("/collection/operands/0/value").asText());
         assertEquals("ACA.*", node.at("/collection/operands/1/value").asText());
         assertEquals("operation:or", node.at("/collection/operation").asText());
-        assertEquals("availability(PUB)",
+        assertEquals(publicCorpusAccess,
                 node.at("/collection/rewrites/0/scope").asText());
     }
 
@@ -420,7 +420,7 @@
         JsonNode node = JsonUtils.readTree(ent);
         assertNotNull(node);
         assertNotEquals(0, node.path("matches").size());
-        assertEquals("availability(FREE)",
+        assertEquals(freeCorpusAccess,
                 node.at("/collection/rewrites/0/scope").asText());
     }
 
@@ -440,7 +440,7 @@
         JsonNode node = JsonUtils.readTree(ent);
         assertNotNull(node);
         assertNotEquals(0, node.path("matches").size());
-        assertEquals("availability(ALL)",
+        assertEquals(allCorpusAccess,
                 node.at("/collection/rewrites/0/scope").asText());
     }
 
@@ -460,7 +460,7 @@
         JsonNode node = JsonUtils.readTree(ent);
         assertNotNull(node);
         assertNotEquals(0, node.path("matches").size());
-        assertEquals("availability(PUB)",
+        assertEquals(publicCorpusAccess,
                 node.at("/collection/rewrites/0/scope").asText());
     }
 }
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/SearchPipeTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/SearchPipeTest.java
index 39f1cf9..8ddebae 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/SearchPipeTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/SearchPipeTest.java
@@ -118,8 +118,8 @@
         assertEquals(1, node.at("/collection/rewrites").size());
         assertEquals(node.at("/collection/rewrites/0/operation").asText(),
                 "operation:injection");
-        assertEquals(node.at("/collection/rewrites/0/scope").asText(),
-                "availability(FREE)");
+		assertEquals(freeCorpusAccess,
+				node.at("/collection/rewrites/0/_comment").asText());
         node = node.at("/query/wrap/rewrites");
         assertEquals(2, node.size());
         assertEquals(node.at("/0/src").asText(), "Glemm");
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/SearchPublicMetadataTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/SearchPublicMetadataTest.java
index 2b85901..dfa3553 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/SearchPublicMetadataTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/SearchPublicMetadataTest.java
@@ -1,16 +1,14 @@
 package de.ids_mannheim.korap.web.controller;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import jakarta.ws.rs.client.Entity;
-import jakarta.ws.rs.core.Response.Status;
-
 import org.junit.jupiter.api.Disabled;
 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 de.ids_mannheim.korap.config.SpringJerseyTest;
 import de.ids_mannheim.korap.exceptions.KustvaktException;
@@ -18,6 +16,9 @@
 import de.ids_mannheim.korap.query.serialize.MetaQueryBuilder;
 import de.ids_mannheim.korap.query.serialize.QuerySerializer;
 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 class SearchPublicMetadataTest extends SpringJerseyTest {
 
@@ -29,9 +30,11 @@
         assertEquals(Status.OK.getStatusCode(), response.getStatus());
         String entity = response.readEntity(String.class);
         JsonNode node = JsonUtils.readTree(entity);
-        assertEquals(node.at("/collection/rewrites/0/scope").asText(),
-                "availability(ALL)");
-        assertTrue(node.at("/matches/0/snippet").isMissingNode());
+        assertTrue(node.at("/meta/snippet").isMissingNode());
+        assertEquals(allCorpusAccess,
+        		node.at("/collection/rewrites/0/_comment").asText());
+        assertFalse(node.at("/matches/0/snippet").asBoolean());
+        assertFalse(node.at("/matches/0/tokens").asBoolean());
     }
 
     @Test
@@ -43,8 +46,8 @@
         assertEquals(Status.OK.getStatusCode(), response.getStatus());
         String entity = response.readEntity(String.class);
         JsonNode node = JsonUtils.readTree(entity);
-        assertEquals(node.at("/collection/rewrites/0/scope").asText(),
-                "availability(ALL)");
+        assertEquals("All corpus access policy has been added.",
+        		node.at("/collection/rewrites/0/_comment").asText());
         assertTrue(node.at("/matches/0/snippet").isMissingNode());
     }
 
@@ -58,8 +61,8 @@
         assertEquals(Status.OK.getStatusCode(), response.getStatus());
         String entity = response.readEntity(String.class);
         JsonNode node = JsonUtils.readTree(entity);
-        assertEquals(node.at("/collection/rewrites/0/scope").asText(),
-                "availability(ALL)");
+		assertEquals(allCorpusAccess,
+				node.at("/collection/rewrites/0/_comment").asText());
         assertTrue(node.at("/matches/0/snippet").isMissingNode());
         assertEquals(node.at("/matches/0/author").asText(),
                 "Goethe, Johann Wolfgang von");
@@ -101,8 +104,8 @@
         assertEquals(Status.OK.getStatusCode(), response.getStatus());
         String ent = response.readEntity(String.class);
         JsonNode node = JsonUtils.readTree(ent);
-        assertEquals(node.at("/collection/rewrites/0/scope").asText(),
-                "availability(ALL)");
+        assertEquals(allCorpusAccess,
+        		node.at("/collection/rewrites/0/_comment").asText());
         assertTrue(node.at("/matches/0/snippet").isMissingNode());
     }