public void testNoScopeLeakageCompiled() { String ex = "if (true) { var i = 0 }; i"; try { MVEL.compileExpression(ex, ParserContext.create().stronglyTyped()); fail("should have failed"); } catch (Exception e) { e.printStackTrace(); } } }
public void testTypeCalculation() { ParserContext ctx = ParserContext.create().stronglyTyped(); ctx.addInput("foo", Foo.class); Class cls = MVEL.analyze("foo.bar.testList.get(0)", ctx); assertTrue(Integer.class.isAssignableFrom(cls)); }
public void testJIRA158() { // Serializable s = MVEL.compileExpression("4/2 + Math.sin(1)"); // // assertEquals(4 / 2 + Math.sin(1), MVEL.executeExpression(s)); Serializable s = MVEL.compileExpression("(float) (4/2 + Math.sin(1))", ParserContext.create().stronglyTyped()); assertEquals((float) (4 / 2 + Math.sin(1)), MVEL.executeExpression(s)); }
public void testInExpressionComment() { Serializable s1 = MVEL.compileExpression("new String /*XXX*/(\"foo\")", ParserContext.create().stronglyTyped()); MVEL.executeExpression(s1); Serializable s2 = MVEL.compileExpression("new String/*XXX*/(\"foo\")", ParserContext.create().stronglyTyped()); MVEL.executeExpression(s2); }
public void testWithMultipleMethodCalls() { ParserContext ctx = ParserContext.create().stronglyTyped().withInput("foo", Foo.class); MVEL.compileExpression("with (foo) { setName('foo'), setBar(null) }", ctx); }
public void testMVEL190a() { Serializable compiled = MVEL.compileExpression("a.toString()", ParserContext.create().stronglyTyped().withInput("a", String.class)); }
public void testShouldFail10() { try { MVEL.compileExpression("foo = [1,1,qq,zz]", ParserContext.create().stronglyTyped()); } catch (CompileException e) { e.printStackTrace(); return; } shouldThrowException(); }
public void testRandomSomething() { Foo foo = new Foo(); foo.setName("foo1"); Foo foo2 = new Foo(); foo2.setName("foo2"); MVEL.setProperty(foo, "name", 5); Serializable s = MVEL.compileExpression("name.toUpperCase()", ParserContext.create().stronglyTyped().withInput("name", String.class)); Object _return = executeExpression(s, foo); System.out.println("returned value: " + String.valueOf(_return)); _return = executeExpression(s, foo2); System.out.println("returned value: " + String.valueOf(_return)); }
public void testNarrowToWideCompare() { Serializable s = MVEL.compileExpression("new String('foo') == new Object()", ParserContext.create().stronglyTyped()); assertFalse((Boolean) MVEL.executeExpression(s)); }
public void testJIRA164g() { Serializable s = MVEL.compileExpression("1 - 2 + (3 * var1) * var1", ParserContext.create().stronglyTyped().withInput("var1", double.class)); Map vars = new HashMap(); double var1 = 1d; vars.put("var1", var1); OptimizerFactory.setDefaultOptimizer("reflective"); assertEquals((float) (1 - 2 + (3 * var1) * var1), ((Double) MVEL.executeExpression(s, vars)).floatValue()); s = MVEL.compileExpression("1 - 2 + (3 * var1) * var1", ParserContext.create().withInput("var1", double.class)); OptimizerFactory.setDefaultOptimizer("ASM"); assertEquals((float) (1 - 2 + (3 * var1) * var1), ((Double) MVEL.executeExpression(s, vars)).floatValue()); }
public void testGenericInference2() { ParserContext ctx; MVEL.analysisCompile("$result = person.maptributes['fooey'].name", ctx = ParserContext.create().stronglyTyped().withInput("person", Person.class)); assertEquals(String.class, ctx.getVarOrInputTypeOrNull("$result")); }
public void testEgressTypeCorrect() { ExecutableStatement stmt = (ExecutableStatement) MVEL.compileExpression("type", ParserContext.create().stronglyTyped() .withInput("this", Cheese.class)); assertEquals(String.class, stmt.getKnownEgressType()); }
public void testJIRA164e() { Serializable s = MVEL.compileExpression("10 + 11 + 12 / (var1 + var1 + 51 + 71) * var1 + 13 + 14", ParserContext.create().stronglyTyped().withInput("var1", double.class)); Map vars = new HashMap(); double var1 = 1d; vars.put("var1", var1); OptimizerFactory.setDefaultOptimizer("reflective"); assertEquals((float) (10 + 11 + 12 / (var1 + var1 + 51 + 71) * var1 + 13 + 14), ((Double) MVEL.executeExpression(s, vars)).floatValue()); s = MVEL.compileExpression("10 + 11 + 12 / (var1 + var1 + 51 + 71) * var1 + 13 + 14", ParserContext.create().withInput("var1", double.class)); OptimizerFactory.setDefaultOptimizer("ASM"); assertEquals((float) (10 + 11 + 12 / (var1 + var1 + 51 + 71) * var1 + 13 + 14), ((Double) MVEL.executeExpression(s, vars)).floatValue()); }
public void testJIRA164f() { Serializable s = MVEL.compileExpression("10 + 11 + 12 / (var1 + 1 + var1 + 51 + 71) * var1 + 13 + 14", ParserContext.create().stronglyTyped().withInput("var1", double.class)); Map vars = new HashMap(); double var1 = 1d; vars.put("var1", var1); OptimizerFactory.setDefaultOptimizer("reflective"); assertEquals((float) (10 + 11 + 12 / (var1 + 1 + var1 + 51 + 71) * var1 + 13 + 14), ((Double) MVEL.executeExpression(s, vars)).floatValue()); s = MVEL.compileExpression("10 + 11 + 12 / (var1 + 1 + var1 + 51 + 71) * var1 + 13 + 14", ParserContext.create().withInput("var1", double.class)); OptimizerFactory.setDefaultOptimizer("ASM"); assertEquals((float) (10 + 11 + 12 / (var1 + 1 + var1 + 51 + 71) * var1 + 13 + 14), ((Double) MVEL.executeExpression(s, vars)).floatValue()); }
public void testJIRA164h() { Serializable s = MVEL.compileExpression("1 - var1 * (var1 * var1 * (var1 * var1) * var1) * var1", ParserContext.create().stronglyTyped().withInput("var1", double.class)); Map vars = new HashMap(); double var1 = 2d; vars.put("var1", var1); OptimizerFactory.setDefaultOptimizer("reflective"); assertEquals((float) (1 - var1 * (var1 * var1 * (var1 * var1) * var1) * var1), ((Double) MVEL.executeExpression(s, vars)).floatValue()); s = MVEL.compileExpression("1 - var1 * (var1 * var1 * (var1 * var1) * var1) * var1", ParserContext.create().withInput("var1", double.class)); OptimizerFactory.setDefaultOptimizer("ASM"); assertEquals((float) (1 - var1 * (var1 * var1 * (var1 * var1) * var1) * var1), ((Double) MVEL.executeExpression(s, vars)).floatValue()); }
public void testJIRA164() { Serializable s = MVEL.compileExpression("1 / (var1 + var1) * var1", ParserContext.create().stronglyTyped().withInput("var1", double.class)); Map vars = new HashMap(); double var1 = 1d; vars.put("var1", var1); OptimizerFactory.setDefaultOptimizer("reflective"); assertEquals((1 / (var1 + var1) * var1), MVEL.executeExpression(s, vars)); s = MVEL.compileExpression("1 / (var1 + var1) * var1", ParserContext.create().withInput("var1", double.class)); OptimizerFactory.setDefaultOptimizer("ASM"); assertEquals((1 / (var1 + var1) * var1), MVEL.executeExpression(s, vars)); }
public void testJIRA164d() { Serializable s = MVEL.compileExpression("1 + 1 + 1 / (var1 + var1) * var1", ParserContext.create().stronglyTyped().withInput("var1", double.class)); Map vars = new HashMap(); double var1 = 1d; vars.put("var1", var1); OptimizerFactory.setDefaultOptimizer("reflective"); assertEquals((1 + 1 + 1 / (var1 + var1) * var1), MVEL.executeExpression(s, vars)); s = MVEL.compileExpression("1 + 1 + 1 / (var1 + var1) * var1", ParserContext.create().withInput("var1", double.class)); OptimizerFactory.setDefaultOptimizer("ASM"); assertEquals((1 + 1 + 1 / (var1 + var1) * var1), MVEL.executeExpression(s, vars)); }
public void testJIRA164b() { Serializable s = MVEL.compileExpression("1 + 1 / (var1 + var1) * var1", ParserContext.create().stronglyTyped().withInput("var1", double.class)); Map vars = new HashMap(); double var1 = 1d; vars.put("var1", var1); OptimizerFactory.setDefaultOptimizer("reflective"); assertEquals((1 + 1 / (var1 + var1) * var1), MVEL.executeExpression(s, vars)); s = MVEL.compileExpression("1 + 1 / (var1 + var1) * var1", ParserContext.create().withInput("var1", double.class)); OptimizerFactory.setDefaultOptimizer("ASM"); assertEquals((1 + 1 / (var1 + var1) * var1), MVEL.executeExpression(s, vars)); }
public void testJIRA164c() { Serializable s = MVEL.compileExpression("1 + 1 / (var1 + var1 + 2 + 3) * var1", ParserContext.create().stronglyTyped().withInput("var1", double.class)); Map vars = new HashMap(); double var1 = 1d; vars.put("var1", var1); OptimizerFactory.setDefaultOptimizer("reflective"); assertEquals((1 + 1 / (var1 + var1 + 2 + 3) * var1), MVEL.executeExpression(s, vars)); s = MVEL.compileExpression("1 + 1 / (var1 + var1 + 2 + 3) * var1", ParserContext.create().withInput("var1", double.class)); OptimizerFactory.setDefaultOptimizer("ASM"); assertEquals((1 + 1 / (var1 + var1 + 2 + 3) * var1), MVEL.executeExpression(s, vars)); }
public void testJIRA161() { Serializable s = MVEL.compileExpression("1==-(-1)", ParserContext.create().stronglyTyped()); assertEquals(1 == -(-1), MVEL.executeExpression(s)); ParserContext ctx = new ParserContext(); ctx.setStrongTyping(true); CompiledExpression compiledExpression = new ExpressionCompiler("1==-(-1)", ctx).compile(); assertEquals(1 == -(-1), MVEL.executeExpression(compiledExpression)); }