1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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));
}
}
|