Search in sources :

Example 21 with Bar

use of org.mvel2.tests.core.res.Bar in project mvel by mikebrock.

the class TypesAndInferenceTests method testStrictStrongTypingCompilationErrors1.

public void testStrictStrongTypingCompilationErrors1() throws Exception {
    ParserContext ctx = new ParserContext();
    ctx.setStrictTypeEnforcement(true);
    ctx.setStrongTyping(true);
    ctx.addImport(Foo.class);
    ctx.addInput("$bar", Bar.class);
    try {
        ExpressionCompiler compiler = new ExpressionCompiler("System.out.println( $ba );");
        compiler.compile(ctx);
        fail("This should not compileShared");
    } catch (Exception e) {
    }
}
Also used : ExpressionCompiler(org.mvel2.compiler.ExpressionCompiler)

Example 22 with Bar

use of org.mvel2.tests.core.res.Bar in project mvel by mikebrock.

the class TypesAndInferenceTests method testStrictStaticMethodCall.

public void testStrictStaticMethodCall() {
    ExpressionCompiler compiler = new ExpressionCompiler("Bar.staticMethod()");
    ParserContext ctx = new ParserContext();
    ctx.addImport("Bar", Bar.class);
    ctx.setStrictTypeEnforcement(true);
    Serializable s = compiler.compile(ctx);
    assertEquals(1, executeExpression(s));
}
Also used : Serializable(java.io.Serializable) ExpressionCompiler(org.mvel2.compiler.ExpressionCompiler)

Example 23 with Bar

use of org.mvel2.tests.core.res.Bar in project mvel by mikebrock.

the class CoreConfidenceTests method testConcatWithLineBreaks.

public void testConcatWithLineBreaks() {
    ExpressionCompiler parser = new ExpressionCompiler("\"foo\"+\n\"bar\"");
    ParserContext ctx = new ParserContext();
    ctx.setDebugSymbols(true);
    ctx.setSourceFile("source.mv");
    assertEquals("foobar", executeExpression(parser.compile(ctx)));
}
Also used : ExpressionCompiler(org.mvel2.compiler.ExpressionCompiler)

Example 24 with Bar

use of org.mvel2.tests.core.res.Bar in project mvel by mikebrock.

the class TypesAndInferenceTests method testDetermineRequiredInputsInConstructor.

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 );");
    Serializable compiled = compiler.compile(ctx);
    Set<String> requiredInputs = compiler.getParserContextState().getInputs().keySet();
    assertEquals(1, requiredInputs.size());
    assertTrue(requiredInputs.contains("$bar"));
}
Also used : Serializable(java.io.Serializable) ExpressionCompiler(org.mvel2.compiler.ExpressionCompiler)

Example 25 with Bar

use of org.mvel2.tests.core.res.Bar in project mvel by mikebrock.

the class TypesAndInferenceTests method testMultiTypeVarDeclr2.

public void testMultiTypeVarDeclr2() {
    String ex = "String a = 'foo', b = 'baz', c = 'bar'";
    ParserContext ctx = new ParserContext();
    ExpressionCompiler compiler = new ExpressionCompiler(ex);
    compiler.compile(ctx);
    assertNotNull(ctx.getVariables());
    assertEquals(3, ctx.getVariables().entrySet().size());
    for (Map.Entry<String, Class> entry : ctx.getVariables().entrySet()) {
        assertEquals(String.class, entry.getValue());
    }
}
Also used : ExpressionCompiler(org.mvel2.compiler.ExpressionCompiler)

Aggregations

ExpressionCompiler (org.mvel2.compiler.ExpressionCompiler)16 CompiledExpression (org.mvel2.compiler.CompiledExpression)9 Foo (org.mvel2.tests.core.res.Foo)9 ParserContext (org.mvel2.ParserContext)8 Serializable (java.io.Serializable)7 MapVariableResolverFactory (org.mvel2.integration.impl.MapVariableResolverFactory)5 HashMap (java.util.HashMap)4 VariableResolverFactory (org.mvel2.integration.VariableResolverFactory)4 DefaultLocalVariableResolverFactory (org.mvel2.integration.impl.DefaultLocalVariableResolverFactory)4 Map (java.util.Map)3 HashSet (java.util.HashSet)2 Macro (org.mvel2.Macro)2 Debugger (org.mvel2.debug.Debugger)2 Frame (org.mvel2.debug.Frame)2 Interceptor (org.mvel2.integration.Interceptor)2 Bar (org.mvel2.tests.core.res.Bar)2 FastList (org.mvel2.util.FastList)2 BigDecimal (java.math.BigDecimal)1 List (java.util.List)1 ASTNode (org.mvel2.ast.ASTNode)1