init
This commit is contained in:
211
test/javax/el/TestELProcessor.java
Normal file
211
test/javax/el/TestELProcessor.java
Normal file
@@ -0,0 +1,211 @@
|
||||
/*
|
||||
* 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 javax.el;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
public class TestELProcessor {
|
||||
|
||||
@Test
|
||||
public void testDefineBean01() {
|
||||
ELProcessor elp = new ELProcessor();
|
||||
elp.defineBean("bean01", new TesterBean("name01"));
|
||||
Assert.assertEquals("name01", elp.eval("bean01.name"));
|
||||
}
|
||||
|
||||
|
||||
@Test(expected=ELException.class)
|
||||
public void testEval01() {
|
||||
ELProcessor elp = new ELProcessor();
|
||||
elp.eval("${1+1}");
|
||||
}
|
||||
|
||||
|
||||
@Test(expected=ELException.class)
|
||||
public void testEval02() {
|
||||
ELProcessor elp = new ELProcessor();
|
||||
elp.eval("#{1+1}");
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testEval03() {
|
||||
ELProcessor elp = new ELProcessor();
|
||||
// Note \ is escaped as \\ in Java source code
|
||||
String result = (String) elp.eval("'\\\\'");
|
||||
Assert.assertEquals("\\", result);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testDefineFunctionMethod01() throws Exception {
|
||||
ELProcessor elp = new ELProcessor();
|
||||
elp.defineFunction("fn", "toBoolean",
|
||||
Boolean.class.getMethod("valueOf", String.class));
|
||||
Assert.assertEquals(Boolean.valueOf(true),
|
||||
elp.eval("fn:toBoolean(true)"));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testDefineFunctionName01() throws Exception {
|
||||
ELProcessor elp = new ELProcessor();
|
||||
// java.lang should be automatically imported so no need for full class
|
||||
// name
|
||||
elp.defineFunction("fn", "toBoolean", "Boolean", "valueOf");
|
||||
Assert.assertEquals(Boolean.valueOf(true),
|
||||
elp.eval("fn:toBoolean(true)"));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testDefineFunctionName02() throws Exception {
|
||||
ELProcessor elp = new ELProcessor();
|
||||
elp.defineFunction("fn", "test", "java.lang.Integer", "Integer valueOf(int)");
|
||||
Assert.assertEquals(Integer.valueOf(1), elp.eval("fn:test(1)"));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testDefineFunctionName03() throws Exception {
|
||||
TesterFunctions.resetCallList();
|
||||
ELProcessor elp = new ELProcessor();
|
||||
elp.defineFunction("fn", "test", "javax.el.TesterFunctions", "void doIt()");
|
||||
elp.eval("fn:test()");
|
||||
Assert.assertEquals("A", TesterFunctions.getCallList());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testDefineFunctionName04() throws Exception {
|
||||
TesterFunctions.resetCallList();
|
||||
ELProcessor elp = new ELProcessor();
|
||||
elp.defineFunction("fn", "test", "javax.el.TesterFunctions", "void doIt(int)");
|
||||
elp.eval("fn:test(5)");
|
||||
Assert.assertEquals("B", TesterFunctions.getCallList());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testDefineFunctionName05() throws Exception {
|
||||
TesterFunctions.resetCallList();
|
||||
ELProcessor elp = new ELProcessor();
|
||||
elp.defineFunction("fn", "test", "javax.el.TesterFunctions", "void doIt(Integer)");
|
||||
elp.eval("fn:test(null)");
|
||||
Assert.assertEquals("C", TesterFunctions.getCallList());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testDefineFunctionName06() throws Exception {
|
||||
TesterFunctions.resetCallList();
|
||||
ELProcessor elp = new ELProcessor();
|
||||
elp.defineFunction("", "", "javax.el.TesterFunctions", "void doIt(int)");
|
||||
elp.eval("doIt(5)");
|
||||
Assert.assertEquals("B", TesterFunctions.getCallList());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testDefineFunctionName07() throws Exception {
|
||||
TesterFunctions.resetCallList();
|
||||
ELProcessor elp = new ELProcessor();
|
||||
elp.defineFunction("fn", "", "javax.el.TesterFunctions", "void doIt(int)");
|
||||
elp.eval("fn:doIt(5)");
|
||||
Assert.assertEquals("B", TesterFunctions.getCallList());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testDefineFunctionName08() throws Exception {
|
||||
TesterFunctions.resetCallList();
|
||||
ELProcessor elp = new ELProcessor();
|
||||
elp.defineFunction("fn", "", "javax.el.TesterFunctions", "void doIt(int[])");
|
||||
elp.eval("fn:doIt([5].stream().toArray())");
|
||||
Assert.assertEquals("D", TesterFunctions.getCallList());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testDefineFunctionName09() throws Exception {
|
||||
TesterFunctions.resetCallList();
|
||||
ELProcessor elp = new ELProcessor();
|
||||
elp.defineFunction("fn", "", "javax.el.TesterFunctions", "void doIt(int[][])");
|
||||
elp.eval("fn:doIt([[5].stream().toArray()].stream().toArray())");
|
||||
Assert.assertEquals("E", TesterFunctions.getCallList());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testDefineFunctionName10() throws Exception {
|
||||
TesterFunctions.resetCallList();
|
||||
ELProcessor elp = new ELProcessor();
|
||||
elp.defineFunction("fn", "test1", "java.lang.Integer", "Integer valueOf(int)");
|
||||
elp.defineFunction("fn", "test2", "javax.el.TesterFunctions", "void doIt(Integer[])");
|
||||
elp.eval("fn:test2([fn:test1(1), fn:test1(2)].stream().toArray())");
|
||||
Assert.assertEquals("F", TesterFunctions.getCallList());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testDefineFunctionName11() throws Exception {
|
||||
TesterFunctions.resetCallList();
|
||||
ELProcessor elp = new ELProcessor();
|
||||
elp.defineFunction("fn", "test1", "java.lang.Integer", "Integer valueOf(int)");
|
||||
elp.defineFunction("fn", "test2", "javax.el.TesterFunctions", "void doIt(Integer[][])");
|
||||
elp.eval("fn:test2([[fn:test1(1), fn:test1(2)].stream().toArray()].stream().toArray())");
|
||||
Assert.assertEquals("G", TesterFunctions.getCallList());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testDefineFunctionName12() throws Exception {
|
||||
TesterFunctions.resetCallList();
|
||||
ELProcessor elp = new ELProcessor();
|
||||
elp.defineFunction("fn", "test", "javax.el.TesterFunctions", "void doIt(long...)");
|
||||
elp.eval("fn:test(1,2)");
|
||||
Assert.assertEquals("H", TesterFunctions.getCallList());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testDefineFunctionName13() throws Exception {
|
||||
TesterFunctions.resetCallList();
|
||||
ELProcessor elp = new ELProcessor();
|
||||
elp.defineFunction("fn", "test", "javax.el.TesterFunctions", "void doIt(Object...)");
|
||||
elp.eval("fn:test(null, null)");
|
||||
Assert.assertEquals("I", TesterFunctions.getCallList());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testPrimitiveArray01() {
|
||||
ELProcessor elp = new ELProcessor();
|
||||
TesterBean bean01= new TesterBean("bean01");
|
||||
elp.defineBean("bean01", bean01);
|
||||
elp.defineBean("bean02", new TesterBean("bean02"));
|
||||
|
||||
Object result = elp.eval("bean02.setValueC(bean01.valueB);bean02.valueC");
|
||||
|
||||
Integer[] resultArray = (Integer[]) result;
|
||||
Assert.assertEquals(bean01.getValueB().length, resultArray.length);
|
||||
for (int i = 0; i < resultArray.length; i++) {
|
||||
Assert.assertEquals(bean01.getValueB()[i], resultArray[i].intValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user