Search in sources :

Example 11 with ExpressionFactory

use of jakarta.el.ExpressionFactory in project tomcat by apache.

the class TestExpressionFactory method testCreateValueExpression3ParamNullExpectedType.

@Test(expected = NullPointerException.class)
public void testCreateValueExpression3ParamNullExpectedType() {
    ExpressionFactory factory = ExpressionFactory.newInstance();
    Assert.assertNotNull(factory);
    ELContext context = new ELContextImpl(factory);
    Assert.assertNotNull(context);
    factory.createValueExpression(context, "foo", null);
}
Also used : ELContext(jakarta.el.ELContext) ExpressionFactory(jakarta.el.ExpressionFactory) ELContextImpl(org.apache.jasper.el.ELContextImpl) Test(org.junit.Test)

Example 12 with ExpressionFactory

use of jakarta.el.ExpressionFactory in project tomcat by apache.

the class TestExpressionFactory method testCreateValueExpression2ParamNullExpectedType.

@Test(expected = NullPointerException.class)
public void testCreateValueExpression2ParamNullExpectedType() {
    ExpressionFactory factory = ExpressionFactory.newInstance();
    Assert.assertNotNull(factory);
    factory.createValueExpression("foo", null);
}
Also used : ExpressionFactory(jakarta.el.ExpressionFactory) Test(org.junit.Test)

Example 13 with ExpressionFactory

use of jakarta.el.ExpressionFactory in project tomcat by apache.

the class TestValueExpressionImpl method testGetValueReference.

@Test
public void testGetValueReference() {
    ExpressionFactory factory = ExpressionFactory.newInstance();
    ELContext context = new ELContextImpl(factory);
    TesterBeanB beanB = new TesterBeanB();
    beanB.setName("Tomcat");
    ValueExpression var = factory.createValueExpression(beanB, TesterBeanB.class);
    context.getVariableMapper().setVariable("beanB", var);
    ValueExpression ve = factory.createValueExpression(context, "${beanB.name}", String.class);
    // First check the basics work
    String result = (String) ve.getValue(context);
    Assert.assertEquals("Tomcat", result);
    // Now check the value reference
    ValueReference vr = ve.getValueReference(context);
    Assert.assertNotNull(vr);
    Assert.assertEquals(beanB, vr.getBase());
    Assert.assertEquals("name", vr.getProperty());
}
Also used : ELContext(jakarta.el.ELContext) ExpressionFactory(jakarta.el.ExpressionFactory) ValueExpression(jakarta.el.ValueExpression) ELContextImpl(org.apache.jasper.el.ELContextImpl) ValueReference(jakarta.el.ValueReference) Test(org.junit.Test)

Example 14 with ExpressionFactory

use of jakarta.el.ExpressionFactory in project tomcat by apache.

the class TestValueExpressionImpl method testBug51177ObjectMap.

@Test
public void testBug51177ObjectMap() {
    ExpressionFactory factory = ExpressionFactory.newInstance();
    ELContext context = new ELContextImpl(factory);
    Object o1 = "String value";
    Object o2 = Integer.valueOf(32);
    Map<Object, Object> map = new HashMap<>();
    map.put("key1", o1);
    map.put("key2", o2);
    ValueExpression var = factory.createValueExpression(map, Map.class);
    context.getVariableMapper().setVariable("map", var);
    ValueExpression ve1 = factory.createValueExpression(context, "${map.key1}", Object.class);
    ve1.setValue(context, o2);
    Assert.assertEquals(o2, ve1.getValue(context));
    ValueExpression ve2 = factory.createValueExpression(context, "${map.key2}", Object.class);
    ve2.setValue(context, o1);
    Assert.assertEquals(o1, ve2.getValue(context));
}
Also used : ELContext(jakarta.el.ELContext) ExpressionFactory(jakarta.el.ExpressionFactory) HashMap(java.util.HashMap) ValueExpression(jakarta.el.ValueExpression) ELContextImpl(org.apache.jasper.el.ELContextImpl) Test(org.junit.Test)

Example 15 with ExpressionFactory

use of jakarta.el.ExpressionFactory in project tomcat by apache.

the class TestValueExpressionImpl method testBug50105.

@Test
public void testBug50105() {
    ExpressionFactory factory = ExpressionFactory.newInstance();
    ELContext context = new ELContextImpl(factory);
    TesterEnum testEnum = TesterEnum.APPLE;
    ValueExpression var = factory.createValueExpression(testEnum, TesterEnum.class);
    context.getVariableMapper().setVariable("testEnum", var);
    // When coercing an Enum to a String, name() should always be used.
    ValueExpression ve1 = factory.createValueExpression(context, "${testEnum}", String.class);
    String result1 = (String) ve1.getValue(context);
    Assert.assertEquals("APPLE", result1);
    ValueExpression ve2 = factory.createValueExpression(context, "foo${testEnum}bar", String.class);
    String result2 = (String) ve2.getValue(context);
    Assert.assertEquals("fooAPPLEbar", result2);
}
Also used : ELContext(jakarta.el.ELContext) ExpressionFactory(jakarta.el.ExpressionFactory) ValueExpression(jakarta.el.ValueExpression) ELContextImpl(org.apache.jasper.el.ELContextImpl) Test(org.junit.Test)

Aggregations

ExpressionFactory (jakarta.el.ExpressionFactory)26 ELContext (jakarta.el.ELContext)25 ValueExpression (jakarta.el.ValueExpression)24 Test (org.junit.Test)22 ELContextImpl (org.apache.jasper.el.ELContextImpl)16 ELProcessor (jakarta.el.ELProcessor)7 ELException (jakarta.el.ELException)3 ValueReference (jakarta.el.ValueReference)3 ELManager (jakarta.el.ELManager)1 TesterELContext (jakarta.el.TesterELContext)1 VariableMapper (jakarta.el.VariableMapper)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 Nodes (org.apache.jasper.compiler.ELNode.Nodes)1 TextBuilder (org.apache.jasper.compiler.ELParser.TextBuilder)1 ELContextWrapper (org.apache.jasper.runtime.JspContextWrapper.ELContextWrapper)1