public void testIncrementAndAssignWithInputs() { ExpressionCompiler compiler = new ExpressionCompiler("total += cheese"); compiler.compile(); assertTrue(compiler.getParserContextState().getInputs().containsKey("total")); assertTrue(compiler.getParserContextState().getInputs().containsKey("cheese")); }
public void testVarInputs4() { ExpressionCompiler compiler = new ExpressionCompiler("System.out.println( message );"); compiler.compile(); assertTrue(compiler.getParserContextState().getInputs().keySet().contains("message")); }
public void testVarInputs3() { ExpressionCompiler compiler = new ExpressionCompiler("addresses['home'].street"); compiler.compile(); assertFalse(compiler.getParserContextState().getInputs().keySet().contains("home")); }
public void testEvaluationRegression() { ExpressionCompiler compiler = new ExpressionCompiler("(p.age * 2)"); compiler.compile(); assertTrue(compiler.getParserContextState().getInputs().containsKey("p")); }
public void testMapsWithVariableAsKey() { String ex = "aMap[aKey] == 'aValue'"; ParserContext ctx = new ParserContext(); ctx.setStrongTyping(false); ExpressionCompiler compiler = new ExpressionCompiler(ex, ctx); compiler.setVerifyOnly(true); compiler.compile(); Set<String> requiredInputs = compiler.getParserContextState().getInputs().keySet(); assertTrue(requiredInputs.contains("aMap")); assertTrue(requiredInputs.contains("aKey")); }
public void testDetermineRequiredInputsInConstructor() throws Exception { ParserContext ctx = new ParserContext(); ctx.setStrictTypeEnforcement(false); ctx.setStrongTyping(false); ctx.addImport(Foo.class); ExpressionCompiler compiler = new ExpressionCompiler("new Foo244( $bar, $bar.age );", ctx); Serializable compiled = compiler.compile(); Set<String> requiredInputs = compiler.getParserContextState().getInputs().keySet(); assertEquals(1, requiredInputs.size()); assertTrue(requiredInputs.contains("$bar")); }
public void testTypeRegression() { ParserContext ctx = new ParserContext(); ctx.setStrictTypeEnforcement(true); ExpressionCompiler compiler = new ExpressionCompiler("total = 0", ctx); compiler.compile(); assertEquals(Integer.class, compiler.getParserContextState().getVarOrInputType("total")); }