Added tests for getting non-existent fields and changed test for parser eval error

This commit is contained in:
Owen Stephens 2018-05-10 16:37:11 -04:00
parent b1bfcb586c
commit 1e2c0c0a04

View File

@ -99,7 +99,7 @@ public class GrelTests extends RefineTest {
public void testEvalError() { public void testEvalError() {
String tests[] = { String tests[] = {
// "1=1", // TODO: Throws NullPointerException // "1=1", // TODO: Throws NullPointerException
"a.value", "value.datePart()",
}; };
for (String test : tests) { for (String test : tests) {
try { try {
@ -166,6 +166,26 @@ public class GrelTests extends RefineTest {
parseEval(bindings, test); parseEval(bindings, test);
} }
} }
@Test
public void testGetJsonFieldExists() throws ParsingException {
String test[] = { "\"[{\\\"one\\\": \\\"1\\\"}]\".parseJson()[0].one", "1" };
parseEval(bindings, test);
}
@Test
public void testGetJsonFieldAbsent() throws ParsingException {
String test = "\"[{\\\"one\\\": \\\"1\\\"}]\".parseJson()[0].two";
Evaluable eval = MetaParser.parse("grel:" + test);
Assert.assertNull(eval.evaluate(bindings));
}
@Test
public void testGetFieldFromNull() throws ParsingException {
String test = "null.value";
Evaluable eval = MetaParser.parse("grel:" + test);
Assert.assertNull(eval.evaluate(bindings));
}
// to demonstrate bug fixing for #1204 // to demonstrate bug fixing for #1204
@Test @Test
@ -182,11 +202,11 @@ public class GrelTests extends RefineTest {
} }
private void parseEval(Properties bindings, String[] test) private void parseEval(Properties bindings, String[] test)
throws ParsingException { throws ParsingException {
Evaluable eval = MetaParser.parse("grel:" + test[0]); Evaluable eval = MetaParser.parse("grel:" + test[0]);
Object result = eval.evaluate(bindings); Object result = eval.evaluate(bindings);
Assert.assertEquals(result.toString(), test[1], Assert.assertEquals(result.toString(), test[1],
"Wrong result for expression: "+test[0]); "Wrong result for expression: "+test[0]);
} }
} }