string to json bug hot fix
diff --git a/src/test/java/CollectionQueryBuilderTest.java b/src/test/java/CollectionQueryBuilderTest.java
index 38a5ac4..407608d 100644
--- a/src/test/java/CollectionQueryBuilderTest.java
+++ b/src/test/java/CollectionQueryBuilderTest.java
@@ -2,6 +2,7 @@
import de.ids_mannheim.korap.query.serialize.QuerySerializer;
import de.ids_mannheim.korap.utils.KoralCollectionQueryBuilder;
import de.ids_mannheim.korap.utils.JsonUtils;
+import org.junit.Ignore;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
@@ -84,12 +85,19 @@
c.with("corpusSigle=WPD");
JsonNode node = JsonUtils.readTree(c.toJSON());
-
assertNotNull(node);
- assertEquals("koral:doc", node.at("/collection/operands/0/@type")
+ assertEquals("koral:doc", node.at("/collection/operands/1/@type")
.asText());
- assertEquals("WPD", node.at("/collection/operands/0/value").asText());
+ assertEquals("koral:docGroup", node.at("/collection/operands/0/@type")
+ .asText());
assertEquals(2, node.at("/collection/operands").size());
+ assertEquals(2, node.at("/collection/operands/0/operands").size());
+ assertEquals(2, node.at("/collection/operands/0/operands/0/operands").size());
+
+ assertEquals("operation:and", node.at("/collection/operation").asText());
+ assertEquals("operation:or", node.at("/collection/operands/0/operation").asText());
+ assertEquals("operation:and", node.at("/collection/operands/0/operands/0/operation").asText());
+ assertEquals("WPD", node.at("/collection/operands/1/value").asText());
}
@@ -109,13 +117,13 @@
assertEquals("koral:docGroup", node.at("/collection/operands/1/@type")
.asText());
assertEquals("BRZ13", node
- .at("/collection/operands/0/operands/0/value").asText());
- assertEquals("AZPS", node.at("/collection/operands/0/operands/1/value")
+ .at("/collection/operands/1/operands/0/value").asText());
+ assertEquals("AZPS", node.at("/collection/operands/1/operands/1/value")
.asText());
assertEquals("random title",
- node.at("/collection/operands/1/operands/0/value").asText());
+ node.at("/collection/operands/0/operands/0/value").asText());
assertEquals("wissenschaft",
- node.at("/collection/operands/1/operands/1/value").asText());
+ node.at("/collection/operands/0/operands/1/value").asText());
}
@@ -137,14 +145,14 @@
assertEquals("operation:and", res.at("/collection/operation").asText());
assertEquals("koral:doc", res.at("/collection/operands/0/@type")
.asText());
- assertEquals("freizeit", res.at("/collection/operands/0/value")
+ assertEquals("freizeit", res.at("/collection/operands/1/value")
.asText());
- assertEquals("textClass", res.at("/collection/operands/0/key").asText());
+ assertEquals("textClass", res.at("/collection/operands/1/key").asText());
assertEquals("koral:doc", res.at("/collection/operands/1/@type")
.asText());
- assertEquals("WPD", res.at("/collection/operands/1/value").asText());
- assertEquals("corpusSigle", res.at("/collection/operands/1/key").asText());
+ assertEquals("WPD", res.at("/collection/operands/0/value").asText());
+ assertEquals("corpusSigle", res.at("/collection/operands/0/key").asText());
// check also that query is still there
assertEquals("koral:token", res.at("/query/@type").asText());
@@ -166,12 +174,12 @@
JsonNode base = (JsonNode) c.rebaseCollection();
assertNotNull(base);
assertEquals(base.at("/collection/@type").asText(), "koral:docGroup");
- assertEquals(base.at("/collection/operands/0/@type").asText(),
- "koral:doc");
- assertEquals(base.at("/collection/operands/0/value").asText(), "BRZ13");
assertEquals(base.at("/collection/operands/1/@type").asText(),
+ "koral:doc");
+ assertEquals(base.at("/collection/operands/1/value").asText(), "BRZ13");
+ assertEquals(base.at("/collection/operands/0/@type").asText(),
"koral:docGroup");
- assertEquals(base.at("/collection/operands/1/operands").size(), 2);
+ assertEquals(base.at("/collection/operands/0/operands").size(), 2);
}
@Test
@@ -201,4 +209,80 @@
}
+ @Test
+ public void testAddOROperator() {
+ String coll = "corpusSigle=WPD";
+ String query = "[base=Haus]";
+ QuerySerializer check = new QuerySerializer();
+ check.setQuery(query, "poliqarp");
+ check.setCollection(coll);
+
+ KoralCollectionQueryBuilder test = new KoralCollectionQueryBuilder();
+ test.setBaseQuery(check.toJSON());
+ test.or().with("textClass=wissenschaft | textClass=politik");
+ JsonNode node = (JsonNode) test.rebaseCollection();
+ assertNotNull(node);
+ assertEquals("koral:docGroup", node.at("/collection/@type").asText());
+ assertEquals("operation:or", node.at("/collection/operation").asText());
+ assertEquals(2, node.at("/collection/operands/1/operands").size());
+ }
+
+ @Test
+ public void testAddANDOperator() {
+ String coll = "corpusSigle=WPD";
+ String query = "[base=Haus]";
+ QuerySerializer check = new QuerySerializer();
+ check.setQuery(query, "poliqarp");
+ check.setCollection(coll);
+
+ KoralCollectionQueryBuilder test = new KoralCollectionQueryBuilder();
+ test.setBaseQuery(check.toJSON());
+ test.and().with("textClass=wissenschaft | textClass=politik");
+ JsonNode node = (JsonNode) test.rebaseCollection();
+ assertNotNull(node);
+ assertEquals("koral:docGroup", node.at("/collection/@type").asText());
+ assertEquals("operation:and", node.at("/collection/operation").asText());
+ assertEquals(2, node.at("/collection/operands/1/operands").size());
+ }
+
+ @Test
+ public void testAddDefaultOperator() {
+ String coll = "corpusSigle=WPD";
+ String query = "[base=Haus]";
+ QuerySerializer check = new QuerySerializer();
+ check.setQuery(query, "poliqarp");
+ check.setCollection(coll);
+
+ KoralCollectionQueryBuilder test = new KoralCollectionQueryBuilder();
+ test.setBaseQuery(check.toJSON());
+ test.with("textClass=wissenschaft | textClass=politik");
+ JsonNode node = (JsonNode) test.rebaseCollection();
+ assertNotNull(node);
+ assertEquals("koral:docGroup", node.at("/collection/@type").asText());
+ assertEquals("operation:and", node.at("/collection/operation").asText());
+ assertEquals(2, node.at("/collection/operands/1/operands").size());
+ }
+
+ @Test
+ @Ignore
+ public void testMergeOperator() {
+ String coll = "corpusSigle=WPD";
+ String query = "[base=Haus]";
+ QuerySerializer check = new QuerySerializer();
+ check.setQuery(query, "poliqarp");
+ check.setCollection(coll);
+
+ KoralCollectionQueryBuilder b = new KoralCollectionQueryBuilder();
+ b.setBaseQuery(check.toJSON());
+
+ KoralCollectionQueryBuilder test = new KoralCollectionQueryBuilder();
+ test.with("textClass=wissenschaft | textClass=politik");
+ JsonNode node = (JsonNode) test.rebaseCollection();
+ node = b.mergeWith(node);
+ assertNotNull(node);
+ assertEquals("koral:docGroup", node.at("/collection/@type").asText());
+ assertEquals("operation:and", node.at("/collection/operation").asText());
+ assertEquals(2, node.at("/collection/operands").size());
+ }
+
}