diff options
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.java | 43 |
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"))); + } + +} |