public final void testInferLastTypeParametersFromMethod() { ParserContext context = new ParserContext(); context.setStrongTyping(true); context.addInput("a", A.class); final CompiledExpression compiledExpression = new ExpressionCompiler("a.values()", context) .compile(); final Object val = MVEL.executeExpression(compiledExpression, new AWrapper()); assertTrue("Expression did not evaluate correctly: " + val, STRINGS.equals(val)); assertTrue("No type parameters detected", null != context.getLastTypeParameters()); assertTrue("Wrong parametric type inferred", String.class.equals(context.getLastTypeParameters()[0])); }
public final void testInferLastTypeParametersFromProperty() { ParserContext context = new ParserContext(); context.setStrongTyping(true); context.addInput("a", A.class); final CompiledExpression compiledExpression = new ExpressionCompiler("a.strings", context) .compile(); final Object val = MVEL.executeExpression(compiledExpression, new AWrapper()); assertTrue("Expression did not evaluate correctly: " + val, STRINGS.equals(val)); assertTrue("No type parameters detected", null != context.getLastTypeParameters()); assertTrue("Wrong parametric type inferred", String.class.equals(context.getLastTypeParameters()[0])); }
public final void testInferLastTypeParametersFromPropertyMethod() { ParserContext context = new ParserContext(); context.setStrongTyping(true); context.addInput("a", A.class); final CompiledExpression compiledExpression = new ExpressionCompiler("a.getFooMap()[\"key\"].someMethod()", context) .compile(); final Object val = MVEL.executeExpression(compiledExpression, new AWrapper()); assertEquals("Expression did not evaluate correctly: ", "bar", val); assertNotNull("No type parameters detected", context.getLastTypeParameters()); assertEquals("Wrong parametric type inferred", String.class, context.getLastTypeParameters()[0]); }