@Test public void testInvoke() { TesterBeanB beanB = new TesterBeanB(); beanB.setName("B"); context .getVariableMapper() .setVariable("beanB", factory.createValueExpression(beanB, TesterBeanB.class)); MethodExpression me1 = factory.createMethodExpression( context, "${beanB.getName}", String.class, new Class<?>[] {}); MethodExpression me2 = factory.createMethodExpression( context, "${beanB.sayHello('JUnit')}", String.class, new Class<?>[] {String.class}); MethodExpression me3 = factory.createMethodExpression( context, "${beanB.sayHello}", String.class, new Class<?>[] {String.class}); assertEquals("B", me1.invoke(context, null)); assertEquals("Hello JUnit from B", me2.invoke(context, null)); assertEquals("Hello JUnit from B", me2.invoke(context, new Object[] {"JUnit2"})); assertEquals("Hello JUnit2 from B", me3.invoke(context, new Object[] {"JUnit2"})); assertEquals("Hello JUnit from B", me2.invoke(context, new Object[] {null})); assertEquals("Hello from B", me3.invoke(context, new Object[] {null})); }
@Before public void setUp() { factory = ExpressionFactory.newInstance(); context = new ELContextImpl(); TesterBeanA beanA = new TesterBeanA(); beanA.setName("A"); context .getVariableMapper() .setVariable("beanA", factory.createValueExpression(beanA, TesterBeanA.class)); TesterBeanAA beanAA = new TesterBeanAA(); beanAA.setName("AA"); context .getVariableMapper() .setVariable("beanAA", factory.createValueExpression(beanAA, TesterBeanAA.class)); TesterBeanAAA beanAAA = new TesterBeanAAA(); beanAAA.setName("AAA"); context .getVariableMapper() .setVariable("beanAAA", factory.createValueExpression(beanAAA, TesterBeanAAA.class)); TesterBeanB beanB = new TesterBeanB(); beanB.setName("B"); context .getVariableMapper() .setVariable("beanB", factory.createValueExpression(beanB, TesterBeanB.class)); TesterBeanBB beanBB = new TesterBeanBB(); beanBB.setName("BB"); context .getVariableMapper() .setVariable("beanBB", factory.createValueExpression(beanBB, TesterBeanBB.class)); TesterBeanBBB beanBBB = new TesterBeanBBB(); beanBBB.setName("BBB"); context .getVariableMapper() .setVariable("beanBBB", factory.createValueExpression(beanBBB, TesterBeanBBB.class)); TesterBeanC beanC = new TesterBeanC(); context .getVariableMapper() .setVariable("beanC", factory.createValueExpression(beanC, TesterBeanC.class)); TesterBeanEnum beanEnum = new TesterBeanEnum(); context .getVariableMapper() .setVariable("beanEnum", factory.createValueExpression(beanEnum, TesterBeanEnum.class)); }
@Test public void testIsParametersProvided() { TesterBeanB beanB = new TesterBeanB(); beanB.setName("Tomcat"); ValueExpression var = factory.createValueExpression(beanB, TesterBeanB.class); context.getVariableMapper().setVariable("beanB", var); MethodExpression me1 = factory.createMethodExpression( context, "${beanB.getName}", String.class, new Class<?>[] {}); MethodExpression me2 = factory.createMethodExpression( context, "${beanB.sayHello('JUnit')}", String.class, new Class<?>[] {String.class}); assertFalse(me1.isParmetersProvided()); assertTrue(me2.isParmetersProvided()); }
@Test public void testBug53792c() { MethodExpression me = factory.createMethodExpression( context, "#{beanB.sayHello().length()}", null, new Class<?>[] {}); Integer result = (Integer) me.invoke(context, null); assertEquals(beanB.sayHello().length(), result.intValue()); }