This commit is contained in:
Andy Clement
2011-05-11 23:41:30 +00:00
parent 2f733bedc5
commit 580f35f6ee
4 changed files with 68 additions and 7 deletions

View File

@@ -1008,4 +1008,56 @@ public class SpringEL300Tests extends ExpressionTestCase {
}
}
@Test
public void testReservedWords_8228() throws Exception {
// "DIV","EQ","GE","GT","LE","LT","MOD","NE","NOT"
@SuppressWarnings("unused")
class Reserver {
public Reserver getReserver() {
return this;
}
public String NE = "abc";
public String ne = "def";
public int DIV = 1;
public int div = 3;
public Map m = new HashMap();
@SuppressWarnings("unchecked")
Reserver() {
m.put("NE","xyz");
}
}
StandardEvaluationContext ctx = new StandardEvaluationContext(new Reserver());
SpelExpressionParser parser = new SpelExpressionParser();
String ex = "getReserver().NE";
SpelExpression exp = null;
exp = parser.parseRaw(ex);
String value = (String)exp.getValue(ctx);
Assert.assertEquals("abc",value);
ex = "getReserver().ne";
exp = parser.parseRaw(ex);
value = (String)exp.getValue(ctx);
Assert.assertEquals("def",value);
ex = "getReserver().m[NE]";
exp = parser.parseRaw(ex);
value = (String)exp.getValue(ctx);
Assert.assertEquals("xyz",value);
ex = "getReserver().DIV";
exp = parser.parseRaw(ex);
Assert.assertEquals(1,exp.getValue(ctx));
ex = "getReserver().div";
exp = parser.parseRaw(ex);
Assert.assertEquals(3,exp.getValue(ctx));
exp = parser.parseRaw("NE");
Assert.assertEquals("abc",exp.getValue(ctx));
}
}