aboutsummaryrefslogtreecommitdiffstats
path: root/predicate-search-core/src/test/java/com/yahoo/search/predicate/PredicateQueryParserTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'predicate-search-core/src/test/java/com/yahoo/search/predicate/PredicateQueryParserTest.java')
-rw-r--r--predicate-search-core/src/test/java/com/yahoo/search/predicate/PredicateQueryParserTest.java43
1 files changed, 43 insertions, 0 deletions
diff --git a/predicate-search-core/src/test/java/com/yahoo/search/predicate/PredicateQueryParserTest.java b/predicate-search-core/src/test/java/com/yahoo/search/predicate/PredicateQueryParserTest.java
new file mode 100644
index 00000000000..dcee3a0c55d
--- /dev/null
+++ b/predicate-search-core/src/test/java/com/yahoo/search/predicate/PredicateQueryParserTest.java
@@ -0,0 +1,43 @@
+// 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;
+
+import org.junit.Test;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+/**
+ * @author bjorncs
+ */
+public class PredicateQueryParserTest {
+
+ @Test
+ public void require_that_json_is_correctly_parsed() {
+ 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,\"s\":\"0xffffffffffffffff\"}" +
+ " ]" +
+ "}";
+
+ PredicateQueryParser parser = new PredicateQueryParser();
+ List<String> result = new ArrayList<>();
+ parser.parseJsonQuery(
+ json,
+ (k, v, s) -> result.add(String.format("%s:%s:%#x", k, v, s)),
+ (k, v, s) -> result.add(String.format("%s:%d:%#x", k, v, s)));
+
+ assertThat(result, is(Arrays.asList(
+ "k1:value1:0x1", "k2:value2:0x3",
+ "range1:123456789123:0xffff", "range2:0:0xffffffffffffffff")));
+ }
+
+}