@Test public void testBetweenFilterStringCase() throws IOException {
final Fixture f = new Fixture();
final List<RexNode> listRexNodes =
ImmutableList.of(f.rexBuilder.makeLiteral(false),
f.rexBuilder.makeInputRef(f.varcharRowType, 0),
f.rexBuilder.makeLiteral("lower-bound"),
f.rexBuilder.makeLiteral("upper-bound"));
RelDataType relDataType = f.typeFactory.createSqlType(SqlTypeName.BOOLEAN);
RexNode betweenRexNode = f.rexBuilder.makeCall(relDataType,
SqlStdOperatorTable.BETWEEN, listRexNodes);
DruidJsonFilter returnValue = DruidJsonFilter
.toDruidFilters(betweenRexNode, f.varcharRowType, druidQuery);
Assert.assertNotNull("Filter is null", returnValue);
JsonFactory jsonFactory = new JsonFactory();
final StringWriter sw = new StringWriter();
JsonGenerator jsonGenerator = jsonFactory.createGenerator(sw);
returnValue.write(jsonGenerator);
jsonGenerator.close();
Assert.assertThat(sw.toString(),
is("{\"type\":\"bound\",\"dimension\":\"dimensionName\",\"lower\":\"lower-bound\","
+ "\"lowerStrict\":false,\"upper\":\"upper-bound\",\"upperStrict\":false,"
+ "\"ordering\":\"lexicographic\"}"));
}