summaryrefslogtreecommitdiffstats
path: root/predicate-search/src/test/java/com/yahoo/search/predicate/serialization/PredicateQuerySerializerTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'predicate-search/src/test/java/com/yahoo/search/predicate/serialization/PredicateQuerySerializerTest.java')
-rw-r--r--predicate-search/src/test/java/com/yahoo/search/predicate/serialization/PredicateQuerySerializerTest.java54
1 files changed, 54 insertions, 0 deletions
diff --git a/predicate-search/src/test/java/com/yahoo/search/predicate/serialization/PredicateQuerySerializerTest.java b/predicate-search/src/test/java/com/yahoo/search/predicate/serialization/PredicateQuerySerializerTest.java
new file mode 100644
index 00000000000..133834cc3fe
--- /dev/null
+++ b/predicate-search/src/test/java/com/yahoo/search/predicate/serialization/PredicateQuerySerializerTest.java
@@ -0,0 +1,54 @@
+// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.search.predicate.serialization;
+
+import com.yahoo.search.predicate.PredicateQuery;
+import com.yahoo.search.predicate.SubqueryBitmap;
+import org.junit.Test;
+
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * @author bjorncs
+ */
+public class PredicateQuerySerializerTest {
+
+ @Test
+ public void require_that_query_is_correctly_parsed_and_written_back_to_json() throws Exception {
+ String json =
+ "{\"features\":[" +
+ "{\"k\":\"k1\",\"v\":\"value1\",\"s\":\"0x1\"}," +
+ "{\"k\":\"k2\",\"v\":\"value2\",\"s\":\"0x3\"}" +
+ "],\"rangeFeatures\":[" +
+ "{\"k\":\"range1\",\"v\":123456789123,\"s\":\"0xffff\"}," +
+ "{\"k\":\"range2\",\"v\":0}" +
+ "]}";
+ PredicateQuerySerializer serializer = new PredicateQuerySerializer();
+ PredicateQuery query = serializer.fromJSON(json);
+ List<PredicateQuery.Feature> features = query.getFeatures();
+ PredicateQuery.Feature f1 = features.get(0);
+ PredicateQuery.Feature f2 = features.get(1);
+ List<PredicateQuery.RangeFeature> rangeFeatures = query.getRangeFeatures();
+ PredicateQuery.RangeFeature r1 = rangeFeatures.get(0);
+ PredicateQuery.RangeFeature r2 = rangeFeatures.get(1);
+
+ assertEquals("k1", f1.key);
+ assertEquals("value1", f1.value);
+ assertEquals(0x1, f1.subqueryBitmap);
+
+ assertEquals("k2", f2.key);
+ assertEquals("value2", f2.value);
+ assertEquals(0x3, f2.subqueryBitmap);
+
+ assertEquals("range1", r1.key);
+ assertEquals(123456789123l, r1.value);
+ assertEquals(0xFFFF, r1.subqueryBitmap);
+
+ assertEquals("range2", r2.key);
+ assertEquals(0l, r2.value);
+ assertEquals(SubqueryBitmap.DEFAULT_VALUE, r2.subqueryBitmap);
+
+ assertEquals(json, serializer.toJSON(query));
+ }
+}