more tests

This commit is contained in:
Keith Donald
2008-01-22 16:49:43 +00:00
parent 183851201a
commit e939e7d546
4 changed files with 46 additions and 2 deletions

View File

@@ -78,6 +78,23 @@ public class ELExpressionParserTests extends TestCase {
assertEquals("foo2", exp.getValue(target));
}
public void testVariablesWithCoersion() {
String expressionString = "#{max}";
Expression exp = parser.parseExpression(expressionString, new ParserContextImpl()
.variable(new ExpressionVariable("max", "#{maximum}", new ParserContextImpl().expect(Long.class))));
TestBean target = new TestBean();
assertEquals(new Long(2), exp.getValue(target));
}
public void testNestedVariables() {
String expressionString = "#{value}#{max}";
Expression exp = parser.parseExpression(expressionString, new ParserContextImpl()
.variable(new ExpressionVariable("max", "#{maximum}#{var}", new ParserContextImpl()
.variable(new ExpressionVariable("var", "bar")))));
TestBean target = new TestBean();
assertEquals("foo2bar", exp.getValue(target));
}
public void testParseImmediateEvalExpression() {
String expressionString = "${3 + 4}";
Expression exp = parser.parseExpression(expressionString, null);

View File

@@ -166,4 +166,19 @@ public class OgnlExpressionParserTests extends TestCase {
"var", "${flag}")));
assertEquals(false, ((Boolean) exp.getValue(bean)).booleanValue());
}
public void testVariablesWithCoersion() {
Expression exp = parser.parseExpression("${#var}", new ParserContextImpl().variable(new ExpressionVariable(
"var", "${number}", new ParserContextImpl().expect(Long.class))));
assertEquals(new Long(0), exp.getValue(bean));
}
public void testNestedVariables() {
Expression exp = parser
.parseExpression("${#var}", new ParserContextImpl()
.variable(new ExpressionVariable("var", "${flag}${#var}", new ParserContextImpl()
.variable(new ExpressionVariable("var", "${number}")))));
assertEquals("false0", exp.getValue(bean));
}
}

View File

@@ -22,6 +22,8 @@ public class TestBean {
private boolean flag;
private int number;
private List list = new ArrayList();
public boolean isFlag() {
@@ -32,6 +34,14 @@ public class TestBean {
this.flag = flag;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public List getList() {
return list;
}