/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License.
*/ package jakarta.el;
ValueExpression ve = factory.createValueExpression(context, "${bean.valueA}", String.class);
Exception e = null; try {
ve.getValue(context);
} catch (PropertyNotFoundException pnfe) {
e = pnfe;
}
assertThat("Wrong exception type", e, instanceOf(PropertyNotFoundException.class));
String type = Bean.class.getName();
@SuppressWarnings("null") // Not possible due to test above
String msg = e.getMessage(); Assert.assertTrue("No reference to type [" + type + "] where property cannot be found in [" + msg + "]",
msg.contains(type));
}
/** * Tests that a null context results in an NPE as per EL Javadoc.
*/
@Test(expected = NullPointerException.class) publicvoid testGetType01() {
BeanELResolver resolver = new BeanELResolver();
resolver.getType(null, new Object(), new Object());
}
/** * Tests that a valid property is not resolved if base is null.
*/
@Test publicvoid testGetType02() {
doNegativeTest(null, new Object(), MethodUnderTest.GET_TYPE, true);
}
/** * Tests that a valid property is resolved.
*/
@Test publicvoid testGetType03() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Class<?> result = resolver.getType(context, new Bean(), PROPERTY01_NAME);
// Property is read-only so should return null Assert.assertNull(result); Assert.assertTrue(context.isPropertyResolved());
}
/** * Tests that an exception will be thrown when the property does not exist.
*/
@Test(expected = PropertyNotFoundException.class) publicvoid testGetType04() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
resolver.getType(context, new Bean(), PROPERTY02_NAME);
}
/** * Tests that an exception will be thrown when a coercion cannot be performed.
*/
@Test(expected = PropertyNotFoundException.class) publicvoid testGetType05() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
resolver.getType(context, new Bean(), new Object());
}
/** * Tests that a null context results in an NPE as per EL Javadoc.
*/
@Test(expected = NullPointerException.class) publicvoid testGetValue01() {
BeanELResolver resolver = new BeanELResolver();
resolver.getValue(null, new Object(), new Object());
}
/** * Tests that a valid property is not resolved if base is null.
*/
@Test publicvoid testGetValue02() {
doNegativeTest(null, new Object(), MethodUnderTest.GET_VALUE, true);
}
/** * Tests that a valid property is resolved.
*/
@Test publicvoid testGetValue03() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.getValue(context, new TesterBean(BEAN_NAME), PROPERTY03_NAME);
/** * Tests that an exception will be thrown when the property does not exist.
*/
@Test(expected = PropertyNotFoundException.class) publicvoid testGetValue04() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
resolver.getValue(context, new Bean(), PROPERTY02_NAME);
}
/** * Tests that an exception will be thrown when a coercion cannot be performed.
*/
@Test(expected = PropertyNotFoundException.class) publicvoid testGetValue05() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
resolver.getValue(context, new Bean(), new Object());
}
/** * Tests that an exception will be thrown when the property is not readable.
*/
@Test(expected = PropertyNotFoundException.class) publicvoid testGetValue06() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
resolver.getValue(context, new Bean(), PROPERTY01_NAME);
}
/** * Tests that getter method throws exception which should be propagated.
*/
@Test(expected = ELException.class) publicvoid testGetValue07() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
resolver.getValue(context, new TesterBean(BEAN_NAME), PROPERTY01_NAME);
}
/** * Tests that a null context results in an NPE as per EL Javadoc.
*/
@Test(expected = NullPointerException.class) publicvoid testSetValue01() {
BeanELResolver resolver = new BeanELResolver();
resolver.setValue(null, new Object(), new Object(), new Object());
}
/** * Tests that a valid property is not resolved if base is null.
*/
@Test publicvoid testSetValue02() {
doNegativeTest(null, new Object(), MethodUnderTest.SET_VALUE, true);
}
/** * Tests that an exception is thrown when readOnly is true.
*/
@Test(expected = PropertyNotWritableException.class) publicvoid testSetValue03() {
BeanELResolver resolver = new BeanELResolver(true);
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
resolver.setValue(context, new Bean(), new Object(), new Object());
}
/** * Tests that a valid property is resolved.
*/
@Test publicvoid testSetValue04() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
TesterBean bean = new TesterBean(BEAN_NAME);
resolver.setValue(context, bean, PROPERTY03_NAME, PROPERTY_VALUE);
/** * Tests that an exception will be thrown when a coercion cannot be performed.
*/
@Test(expected = PropertyNotFoundException.class) publicvoid testSetValue05() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
resolver.setValue(context, new Bean(), new Object(), PROPERTY_VALUE);
}
/** * Tests that an exception will be thrown when the property does not exist.
*/
@Test(expected = PropertyNotFoundException.class) publicvoid testSetValue06() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
resolver.setValue(context, new Bean(), PROPERTY02_NAME, PROPERTY_VALUE);
}
/** * Tests that an exception will be thrown when the property does not have setter method.
*/
@Test(expected = PropertyNotWritableException.class) publicvoid testSetValue07() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
resolver.setValue(context, new TesterBean(BEAN_NAME), PROPERTY01_NAME, PROPERTY_VALUE);
}
/** * Tests that a null context results in an NPE as per EL Javadoc.
*/
@Test(expected = NullPointerException.class) publicvoid testIsReadOnly01() {
BeanELResolver resolver = new BeanELResolver();
resolver.isReadOnly(null, new Object(), new Object());
}
/** * Tests that the propertyResolved is false if base is null.
*/
@Test publicvoid testIsReadOnly02() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
/** * Tests that if the BeanELResolver is constructed with readOnly the method will return always true.
*/
@Test publicvoid testIsReadOnly03() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
boolean result = resolver.isReadOnly(context, new TesterBean(BEAN_NAME), PROPERTY03_NAME);
/** * Tests that an exception is thrown when a coercion cannot be performed.
*/
@Test(expected = PropertyNotFoundException.class) publicvoid testIsReadOnly04() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
resolver.isReadOnly(context, new TesterBean(BEAN_NAME), Integer.valueOf(0));
}
/** * Tests that an exception will be thrown when the property does not exist.
*/
@Test(expected = PropertyNotFoundException.class) publicvoid testIsReadOnly05() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
resolver.isReadOnly(context, new Bean(), PROPERTY02_NAME);
}
/** * Tests that true will be returned when the property does not have setter method.
*/
@Test publicvoid testIsReadOnly06() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
boolean result = resolver.isReadOnly(context, new TesterBean(BEAN_NAME), PROPERTY01_NAME);
/** * Tests that a valid FeatureDescriptors are not returned if base is not Map.
*/
@Deprecated(forRemoval = true, since = "Tomcat 10.1.0")
@Test publicvoid testGetFeatureDescriptors01() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Iterator<FeatureDescriptor> result = resolver.getFeatureDescriptors(context, null);
Assert.assertNull(result);
}
/** * Tests that a valid FeatureDescriptors are returned.
*/
@Deprecated(forRemoval = true, since = "Tomcat 10.1.0")
@Test publicvoid testGetFeatureDescriptors02() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Iterator<FeatureDescriptor> result = resolver.getFeatureDescriptors(context, new Bean());
/** * Tests that a null context results in an NPE as per EL Javadoc.
*/
@Test(expected = NullPointerException.class) publicvoid testInvoke01() {
BeanELResolver resolver = new BeanELResolver();
resolver.invoke(null, new Object(), new Object(), newClass<?>[0], new Object[0]);
}
/** * Tests that a valid property is not resolved if base is null.
*/
@Test publicvoid testInvoke02() {
doNegativeTest(null, new Object(), MethodUnderTest.INVOKE, true);
}
/** * Tests a method invocation.
*/
@Test publicvoid testInvoke03() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), METHOD01_NAME, newClass<?>[] {}, new Object[] {});
/** * Tests that the method name cannot be coerced to String.
*/
@Test publicvoid testInvoke04() {
doNegativeTest(new Bean(), null, MethodUnderTest.INVOKE, true);
}
/** * Tests that a call to <init> as a method name will throw an exception.
*/
@Test(expected = MethodNotFoundException.class) publicvoid testInvoke05() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
resolver.invoke(context, new TesterBean(BEAN_NAME), METHOD02_NAME, newClass<?>[] {}, newObject[] {});
}
/** * Tests that a call to a non existing method will throw an exception.
*/
@Test(expected = MethodNotFoundException.class) publicvoid testInvoke06() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
resolver.invoke(context, new TesterBean(BEAN_NAME), METHOD03_NAME, newClass<?>[] {}, newObject[] {});
}
@Test publicvoid testInvokeVarargsCoerce01() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] {}, new String[] {});
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargsCoerce02() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", null, null);
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargsCoerce03() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", null, new String[] {});
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargsCoerce04() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] {}, null);
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargsCoerce05() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { null }, new String[] { null });
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargsCoerce06() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", null, new String[] { null });
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargsCoerce07() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { null }, null);
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargsCoerce08() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { String.class }, new String[] { "true" });
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargsCoerce09() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { String.class, String.class }, new Object[] { "true", null });
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargsCoerce10() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { String.class, String[].class }, new Object[] { "true", null });
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargsCoerce11() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { String.class }, new Object[] { "10" });
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargsCoerce12() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { String[].class }, new String[] { "10" });
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargsCoerce13() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { String.class, String.class }, new String[] { "10", "11" });
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargsCoerce14() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { String.class, String.class }, new String[] { "true", null });
Assert.assertEquals(BEAN_NAME, result);
}
@Test(expected = MethodNotFoundException.class) publicvoid testInvokeVarargsCoerce15() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { String.class, String.class }, new Object[] { "true", new ArrayList<>() });
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargsCoerce16() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { String.class, String.class, String.class }, new Object[] { "10", "11", "12" });
Assert.assertEquals(BEAN_NAME, result);
}
@Test(expected = MethodNotFoundException.class) publicvoid testInvokeVarargsCoerce17() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { String.class, String.class }, new Object[] { "10", "11", "12" });
Assert.assertEquals(BEAN_NAME, result);
}
@Test(expected = MethodNotFoundException.class) publicvoid testInvokeVarargsCoerce18() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { String.class, String.class, String.class, String.class }, new Object[] { "10", "11", "12" });
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargsCoerce19() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { String.class, String.class, String.class, String.class }, new Object[] { "true", "10", "11", "12" });
Assert.assertEquals(BEAN_NAME, result);
}
@Test(expected = MethodNotFoundException.class) publicvoid testInvokeVarargsCoerce20() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { String.class, String.class, String.class }, new Object[] { "true", "10", "11", "12" });
Assert.assertEquals(BEAN_NAME, result);
}
@Test(expected = MethodNotFoundException.class) publicvoid testInvokeVarargsCoerce21() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { String.class, String.class, String.class, String.class, String.class }, new Object[] { "true", "10", "11", "12" });
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargsCoerce22() {
BeanELResolver resolver = new BeanELResolver();
StandardELContext context = new StandardELContext(ELManager.getExpressionFactory());
context.addELResolver(new StringToLongNeverFailResolver());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { String.class, String.class, String.class }, new Object[] { "AA", "BB", "CC" });
Assert.assertEquals(BEAN_NAME, result);
}
@Test(expected = MethodNotFoundException.class) publicvoid testInvokeVarargsCoerce23() {
BeanELResolver resolver = new BeanELResolver();
StandardELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { String.class, String.class, String.class }, new Object[] { "AA", "BB", "CC" });
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargs01() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] {}, new Object[] {});
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargs02() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", null, null);
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargs03() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", null, new Object[] {});
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargs04() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] {}, null);
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargs05() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { null }, new Object[] { null });
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargs06() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", null, new Object[] { null });
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargs07() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { null }, null);
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargs08() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { Boolean.class }, new Object[] { Boolean.TRUE });
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargs09() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { Boolean.class, Integer.class }, new Object[] { Boolean.TRUE, null });
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargs10() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { Boolean.class, Integer[].class }, new Object[] { Boolean.TRUE, null });
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargs11() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { Integer.class }, new Object[] { Integer.valueOf(10) });
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargs12() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { Integer[].class }, new Object[] { Integer.valueOf(10) });
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargs13() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { Integer.class, Integer.class }, new Object[] { Integer.valueOf(10), Integer.valueOf(11) });
Assert.assertEquals(BEAN_NAME, result);
}
// Note: The coercion rules are that a null of any type can be coerced to a // null of *any* other type so this works.
@Test publicvoid testInvokeVarargs14() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { Boolean.class, ArrayList.class }, new Object[] { Boolean.TRUE, null });
Assert.assertEquals(BEAN_NAME, result);
}
@Test(expected = MethodNotFoundException.class) publicvoid testInvokeVarargs15() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { Boolean.class, ArrayList.class }, new Object[] { Boolean.TRUE, new ArrayList<>() });
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargs16() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { Integer.class, Integer.class, Integer.class }, new Object[] { Integer.valueOf(10), Integer.valueOf(11), Integer.valueOf(12) });
Assert.assertEquals(BEAN_NAME, result);
}
@Test(expected = MethodNotFoundException.class) publicvoid testInvokeVarargs17() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { Integer.class, Integer.class }, new Object[] { Integer.valueOf(10), Integer.valueOf(11), Integer.valueOf(12) });
Assert.assertEquals(BEAN_NAME, result);
}
@Test(expected = MethodNotFoundException.class) publicvoid testInvokeVarargs18() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { Integer.class, Integer.class, Integer.class, Integer.class }, new Object[] { Integer.valueOf(10), Integer.valueOf(11), Integer.valueOf(12) });
Assert.assertEquals(BEAN_NAME, result);
}
@Test publicvoid testInvokeVarargs19() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { Boolean.class, Integer.class, Integer.class, Integer.class }, new Object[] { Boolean.TRUE, Integer.valueOf(10), Integer.valueOf(11), Integer.valueOf(12) });
Assert.assertEquals(BEAN_NAME, result);
}
@Test(expected = MethodNotFoundException.class) publicvoid testInvokeVarargs20() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { Boolean.class, Integer.class, Integer.class }, new Object[] { Boolean.TRUE, Integer.valueOf(10), Integer.valueOf(11), Integer.valueOf(12) });
Assert.assertEquals(BEAN_NAME, result);
}
@Test(expected = MethodNotFoundException.class) publicvoid testInvokeVarargs21() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.invoke(context, new TesterBean(BEAN_NAME), "getNameVarargs", newClass<?>[] { Boolean.class, Integer.class, Integer.class, Integer.class, Integer.class }, new Object[] { Boolean.TRUE, Integer.valueOf(10), Integer.valueOf(11), Integer.valueOf(12) });
Assert.assertEquals(BEAN_NAME, result);
}
/** * Tests that a valid property implemented by a default method is resolved.
*/
@Test publicvoid testGetDefaultValue() {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = resolver.getValue(context, new Bean(), PROPERTY04_NAME);
privatevoid doNegativeTest(Object base, Object trigger, MethodUnderTest method, booleancheckResult) {
BeanELResolver resolver = new BeanELResolver();
ELContext context = new StandardELContext(ELManager.getExpressionFactory());
Object result = null; switch (method) { case GET_VALUE: {
result = resolver.getValue(context, base, trigger); break;
} case SET_VALUE: {
resolver.setValue(context, base, trigger, new Object()); break;
} case GET_TYPE: {
result = resolver.getType(context, base, trigger); break;
} case INVOKE: {
result = resolver.invoke(context, base, trigger, newClass<?>[0], new Object[0]); break;
} default: { // Should never happen Assert.fail("Missing case for method");
}
}
if (checkResult) { Assert.assertNull(result);
} Assert.assertFalse(context.isPropertyResolved());
}
/* * Custom resolver that will always convert a string to an integer. If the provided string is not a valid integer, * zero will be returned.
*/ privatestaticclass StringToLongNeverFailResolver extends ELResolver {
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.