DATACOUCH-310 - Convert N1ql query parameter enums to string values

Original pull request: #148.
This commit is contained in:
Subhashni Balakrishnan
2017-06-08 17:09:05 -07:00
parent d9f094b6f4
commit 5a68130b53
2 changed files with 10 additions and 1 deletions

View File

@@ -172,6 +172,8 @@ public class N1qlQueryCreatorUtils {
Expression converted;
if (next instanceof String) {
converted = s((String) next);
} else if (next instanceof Enum) {
converted = s(String.valueOf(next));
} else {
converted = x(String.valueOf(next));
}

View File

@@ -467,20 +467,27 @@ public class N1qlQueryCreatorTest {
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
}
enum TestEnum {
TEST
}
@Test
public void testSIMPLE_PROPERTY() throws Exception {
Part.Type keyword = Part.Type.SIMPLE_PROPERTY;
Iterator<Object> values = Arrays.<Object>asList("a", 1, "b").iterator();
Iterator<Object> values = Arrays.<Object>asList("a", 1, "b", TestEnum.TEST).iterator();
String expected = "doc.field = \"a\"";
String expectedNum = "doc.field = 1";
String expectedIgnoreCase = "LOWER(doc.field) = LOWER(\"b\")";
String expectedEnum = "doc.field = \"TEST\"";
Expression exp = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
Expression expNum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
Expression expIgnoreCase = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", true, values);
Expression expEnum = N1qlQueryCreatorUtils.createExpression(keyword, "doc.field", false, values);
assertEquals(expected, exp.toString());
assertEquals(expectedNum, expNum.toString());
assertEquals(expectedIgnoreCase, expIgnoreCase.toString());
assertEquals(expectedEnum, expEnum.toString());
}
}