Test for null value against boolean property
Issue: SPR-16123
This commit is contained in:
parent
ee7b928300
commit
fd6f2bd6a4
|
@ -100,7 +100,7 @@ public class SpelReproTests extends AbstractExpressionTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void SPR5899() throws Exception {
|
public void SPR5899() {
|
||||||
StandardEvaluationContext eContext = new StandardEvaluationContext(new Spr5899Class());
|
StandardEvaluationContext eContext = new StandardEvaluationContext(new Spr5899Class());
|
||||||
Expression expr = new SpelExpressionParser().parseRaw("tryToInvokeWithNull(12)");
|
Expression expr = new SpelExpressionParser().parseRaw("tryToInvokeWithNull(12)");
|
||||||
assertEquals(12, expr.getValue(eContext));
|
assertEquals(12, expr.getValue(eContext));
|
||||||
|
@ -196,7 +196,7 @@ public class SpelReproTests extends AbstractExpressionTests {
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void SPR5905_InnerTypeReferences() throws Exception {
|
public void SPR5905_InnerTypeReferences() {
|
||||||
StandardEvaluationContext eContext = new StandardEvaluationContext(new Spr5899Class());
|
StandardEvaluationContext eContext = new StandardEvaluationContext(new Spr5899Class());
|
||||||
Expression expr = new SpelExpressionParser().parseRaw("T(java.util.Map$Entry)");
|
Expression expr = new SpelExpressionParser().parseRaw("T(java.util.Map$Entry)");
|
||||||
assertEquals(Map.Entry.class, expr.getValue(eContext));
|
assertEquals(Map.Entry.class, expr.getValue(eContext));
|
||||||
|
@ -228,7 +228,7 @@ public class SpelReproTests extends AbstractExpressionTests {
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void SPR5804() throws Exception {
|
public void SPR5804() {
|
||||||
Map<String, String> m = new HashMap<>();
|
Map<String, String> m = new HashMap<>();
|
||||||
m.put("foo", "bar");
|
m.put("foo", "bar");
|
||||||
StandardEvaluationContext eContext = new StandardEvaluationContext(m); // root is a map instance
|
StandardEvaluationContext eContext = new StandardEvaluationContext(m); // root is a map instance
|
||||||
|
@ -238,7 +238,7 @@ public class SpelReproTests extends AbstractExpressionTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void SPR5847() throws Exception {
|
public void SPR5847() {
|
||||||
StandardEvaluationContext eContext = new StandardEvaluationContext(new TestProperties());
|
StandardEvaluationContext eContext = new StandardEvaluationContext(new TestProperties());
|
||||||
String name = null;
|
String name = null;
|
||||||
Expression expr = null;
|
Expression expr = null;
|
||||||
|
@ -319,7 +319,7 @@ public class SpelReproTests extends AbstractExpressionTests {
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void NPE_SPR5673() throws Exception {
|
public void NPE_SPR5673() {
|
||||||
ParserContext hashes = TemplateExpressionParsingTests.HASH_DELIMITED_PARSER_CONTEXT;
|
ParserContext hashes = TemplateExpressionParsingTests.HASH_DELIMITED_PARSER_CONTEXT;
|
||||||
ParserContext dollars = TemplateExpressionParsingTests.DEFAULT_TEMPLATE_PARSER_CONTEXT;
|
ParserContext dollars = TemplateExpressionParsingTests.DEFAULT_TEMPLATE_PARSER_CONTEXT;
|
||||||
|
|
||||||
|
@ -558,6 +558,41 @@ public class SpelReproTests extends AbstractExpressionTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static class C {
|
||||||
|
|
||||||
|
public List<String> ls;
|
||||||
|
|
||||||
|
public String[] as;
|
||||||
|
|
||||||
|
public Map<String, String> ms;
|
||||||
|
|
||||||
|
C() {
|
||||||
|
ls = new ArrayList<>();
|
||||||
|
ls.add("abc");
|
||||||
|
ls.add("def");
|
||||||
|
as = new String[] { "abc", "def" };
|
||||||
|
ms = new HashMap<>();
|
||||||
|
ms.put("abc", "xyz");
|
||||||
|
ms.put("def", "pqr");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static class D {
|
||||||
|
|
||||||
|
public String a;
|
||||||
|
|
||||||
|
private D(String s) {
|
||||||
|
a = s;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "D(" + a + ")";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static class Goo {
|
static class Goo {
|
||||||
|
|
||||||
public static Goo instance = new Goo();
|
public static Goo instance = new Goo();
|
||||||
|
@ -586,21 +621,21 @@ public class SpelReproTests extends AbstractExpressionTests {
|
||||||
|
|
||||||
// ---
|
// ---
|
||||||
|
|
||||||
private void checkTemplateParsing(String expression, String expectedValue) throws Exception {
|
private void checkTemplateParsing(String expression, String expectedValue) {
|
||||||
checkTemplateParsing(expression, TemplateExpressionParsingTests.DEFAULT_TEMPLATE_PARSER_CONTEXT, expectedValue);
|
checkTemplateParsing(expression, TemplateExpressionParsingTests.DEFAULT_TEMPLATE_PARSER_CONTEXT, expectedValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkTemplateParsing(String expression, ParserContext context, String expectedValue) throws Exception {
|
private void checkTemplateParsing(String expression, ParserContext context, String expectedValue) {
|
||||||
SpelExpressionParser parser = new SpelExpressionParser();
|
SpelExpressionParser parser = new SpelExpressionParser();
|
||||||
Expression expr = parser.parseExpression(expression, context);
|
Expression expr = parser.parseExpression(expression, context);
|
||||||
assertEquals(expectedValue, expr.getValue(TestScenarioCreator.getTestEvaluationContext()));
|
assertEquals(expectedValue, expr.getValue(TestScenarioCreator.getTestEvaluationContext()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkTemplateParsingError(String expression, String expectedMessage) throws Exception {
|
private void checkTemplateParsingError(String expression, String expectedMessage) {
|
||||||
checkTemplateParsingError(expression, TemplateExpressionParsingTests.DEFAULT_TEMPLATE_PARSER_CONTEXT, expectedMessage);
|
checkTemplateParsingError(expression, TemplateExpressionParsingTests.DEFAULT_TEMPLATE_PARSER_CONTEXT, expectedMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkTemplateParsingError(String expression, ParserContext context, String expectedMessage) throws Exception {
|
private void checkTemplateParsingError(String expression, ParserContext context, String expectedMessage) {
|
||||||
SpelExpressionParser parser = new SpelExpressionParser();
|
SpelExpressionParser parser = new SpelExpressionParser();
|
||||||
try {
|
try {
|
||||||
parser.parseExpression(expression, context);
|
parser.parseExpression(expression, context);
|
||||||
|
@ -783,7 +818,7 @@ public class SpelReproTests extends AbstractExpressionTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void mapOfMap_SPR7244() throws Exception {
|
public void mapOfMap_SPR7244() {
|
||||||
Map<String, Object> map = new LinkedHashMap<>();
|
Map<String, Object> map = new LinkedHashMap<>();
|
||||||
map.put("uri", "http:");
|
map.put("uri", "http:");
|
||||||
Map<String, String> nameMap = new LinkedHashMap<>();
|
Map<String, String> nameMap = new LinkedHashMap<>();
|
||||||
|
@ -804,7 +839,7 @@ public class SpelReproTests extends AbstractExpressionTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void projectionTypeDescriptors_1() throws Exception {
|
public void projectionTypeDescriptors_1() {
|
||||||
StandardEvaluationContext ctx = new StandardEvaluationContext(new C());
|
StandardEvaluationContext ctx = new StandardEvaluationContext(new C());
|
||||||
SpelExpressionParser parser = new SpelExpressionParser();
|
SpelExpressionParser parser = new SpelExpressionParser();
|
||||||
String el1 = "ls.![#this.equals('abc')]";
|
String el1 = "ls.![#this.equals('abc')]";
|
||||||
|
@ -817,7 +852,7 @@ public class SpelReproTests extends AbstractExpressionTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void projectionTypeDescriptors_2() throws Exception {
|
public void projectionTypeDescriptors_2() {
|
||||||
StandardEvaluationContext ctx = new StandardEvaluationContext(new C());
|
StandardEvaluationContext ctx = new StandardEvaluationContext(new C());
|
||||||
SpelExpressionParser parser = new SpelExpressionParser();
|
SpelExpressionParser parser = new SpelExpressionParser();
|
||||||
String el1 = "as.![#this.equals('abc')]";
|
String el1 = "as.![#this.equals('abc')]";
|
||||||
|
@ -830,7 +865,7 @@ public class SpelReproTests extends AbstractExpressionTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void projectionTypeDescriptors_3() throws Exception {
|
public void projectionTypeDescriptors_3() {
|
||||||
StandardEvaluationContext ctx = new StandardEvaluationContext(new C());
|
StandardEvaluationContext ctx = new StandardEvaluationContext(new C());
|
||||||
SpelExpressionParser parser = new SpelExpressionParser();
|
SpelExpressionParser parser = new SpelExpressionParser();
|
||||||
String el1 = "ms.![key.equals('abc')]";
|
String el1 = "ms.![key.equals('abc')]";
|
||||||
|
@ -842,42 +877,8 @@ public class SpelReproTests extends AbstractExpressionTests {
|
||||||
assertEquals(null, evaluated.getElementTypeDescriptor());
|
assertEquals(null, evaluated.getElementTypeDescriptor());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static class C {
|
|
||||||
|
|
||||||
public List<String> ls;
|
|
||||||
public String[] as;
|
|
||||||
public Map<String, String> ms;
|
|
||||||
|
|
||||||
C() {
|
|
||||||
ls = new ArrayList<>();
|
|
||||||
ls.add("abc");
|
|
||||||
ls.add("def");
|
|
||||||
as = new String[] { "abc", "def" };
|
|
||||||
ms = new HashMap<>();
|
|
||||||
ms.put("abc", "xyz");
|
|
||||||
ms.put("def", "pqr");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static class D {
|
|
||||||
|
|
||||||
public String a;
|
|
||||||
|
|
||||||
private D(String s) {
|
|
||||||
a = s;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "D(" + a + ")";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void greaterThanWithNulls_SPR7840() throws Exception {
|
public void greaterThanWithNulls_SPR7840() {
|
||||||
List<D> list = new ArrayList<>();
|
List<D> list = new ArrayList<>();
|
||||||
list.add(new D("aaa"));
|
list.add(new D("aaa"));
|
||||||
list.add(new D("bbb"));
|
list.add(new D("bbb"));
|
||||||
|
@ -1101,7 +1102,7 @@ public class SpelReproTests extends AbstractExpressionTests {
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void reservedWords_8228() throws Exception {
|
public void reservedWords_8228() {
|
||||||
// "DIV","EQ","GE","GT","LE","LT","MOD","NE","NOT"
|
// "DIV","EQ","GE","GT","LE","LT","MOD","NE","NOT"
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
class Reserver {
|
class Reserver {
|
||||||
|
@ -1151,7 +1152,7 @@ public class SpelReproTests extends AbstractExpressionTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void reservedWordProperties_9862() throws Exception {
|
public void reservedWordProperties_9862() {
|
||||||
StandardEvaluationContext ctx = new StandardEvaluationContext();
|
StandardEvaluationContext ctx = new StandardEvaluationContext();
|
||||||
SpelExpressionParser parser = new SpelExpressionParser();
|
SpelExpressionParser parser = new SpelExpressionParser();
|
||||||
SpelExpression expression = parser.parseRaw("T(org.springframework.expression.spel.testresources.le.div.mod.reserved.Reserver).CONST");
|
SpelExpression expression = parser.parseRaw("T(org.springframework.expression.spel.testresources.le.div.mod.reserved.Reserver).CONST");
|
||||||
|
@ -1328,7 +1329,7 @@ public class SpelReproTests extends AbstractExpressionTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void SPR9486_floatFunctionResolver() throws Exception {
|
public void SPR9486_floatFunctionResolver() {
|
||||||
Number expectedResult = Math.abs(-10.2f);
|
Number expectedResult = Math.abs(-10.2f);
|
||||||
ExpressionParser parser = new SpelExpressionParser();
|
ExpressionParser parser = new SpelExpressionParser();
|
||||||
SPR9486_FunctionsClass testObject = new SPR9486_FunctionsClass();
|
SPR9486_FunctionsClass testObject = new SPR9486_FunctionsClass();
|
||||||
|
@ -1663,7 +1664,21 @@ public class SpelReproTests extends AbstractExpressionTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void SPR10146_malformedExpressions() throws Exception {
|
public void SPR16123() {
|
||||||
|
ExpressionParser parser = new SpelExpressionParser();
|
||||||
|
parser.parseExpression("simpleProperty").setValue(new BooleanHolder(), null);
|
||||||
|
|
||||||
|
try {
|
||||||
|
parser.parseExpression("primitiveProperty").setValue(new BooleanHolder(), null);
|
||||||
|
fail("Should have thrown EvaluationException");
|
||||||
|
}
|
||||||
|
catch (EvaluationException ex) {
|
||||||
|
// expected
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void SPR10146_malformedExpressions() {
|
||||||
doTestSpr10146("/foo", "EL1070E: Problem parsing left operand");
|
doTestSpr10146("/foo", "EL1070E: Problem parsing left operand");
|
||||||
doTestSpr10146("*foo", "EL1070E: Problem parsing left operand");
|
doTestSpr10146("*foo", "EL1070E: Problem parsing left operand");
|
||||||
doTestSpr10146("%foo", "EL1070E: Problem parsing left operand");
|
doTestSpr10146("%foo", "EL1070E: Problem parsing left operand");
|
||||||
|
@ -1682,7 +1697,7 @@ public class SpelReproTests extends AbstractExpressionTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void SPR10125() throws Exception {
|
public void SPR10125() {
|
||||||
StandardEvaluationContext context = new StandardEvaluationContext();
|
StandardEvaluationContext context = new StandardEvaluationContext();
|
||||||
String fromInterface = parser.parseExpression("T(" + StaticFinalImpl1.class.getName() + ").VALUE").getValue(
|
String fromInterface = parser.parseExpression("T(" + StaticFinalImpl1.class.getName() + ").VALUE").getValue(
|
||||||
context, String.class);
|
context, String.class);
|
||||||
|
@ -1693,7 +1708,7 @@ public class SpelReproTests extends AbstractExpressionTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void SPR10210() throws Exception {
|
public void SPR10210() {
|
||||||
StandardEvaluationContext context = new StandardEvaluationContext();
|
StandardEvaluationContext context = new StandardEvaluationContext();
|
||||||
context.setVariable("bridgeExample", new org.springframework.expression.spel.spr10210.D());
|
context.setVariable("bridgeExample", new org.springframework.expression.spel.spr10210.D());
|
||||||
Expression parseExpression = parser.parseExpression("#bridgeExample.bridgeMethod()");
|
Expression parseExpression = parser.parseExpression("#bridgeExample.bridgeMethod()");
|
||||||
|
@ -1701,7 +1716,7 @@ public class SpelReproTests extends AbstractExpressionTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void SPR10328() throws Exception {
|
public void SPR10328() {
|
||||||
thrown.expect(SpelParseException.class);
|
thrown.expect(SpelParseException.class);
|
||||||
thrown.expectMessage("EL1071E: A required selection expression has not been specified");
|
thrown.expectMessage("EL1071E: A required selection expression has not been specified");
|
||||||
Expression exp = parser.parseExpression("$[]");
|
Expression exp = parser.parseExpression("$[]");
|
||||||
|
@ -1709,7 +1724,7 @@ public class SpelReproTests extends AbstractExpressionTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void SPR10452() throws Exception {
|
public void SPR10452() {
|
||||||
SpelParserConfiguration configuration = new SpelParserConfiguration(false, false);
|
SpelParserConfiguration configuration = new SpelParserConfiguration(false, false);
|
||||||
ExpressionParser parser = new SpelExpressionParser(configuration);
|
ExpressionParser parser = new SpelExpressionParser(configuration);
|
||||||
|
|
||||||
|
@ -1734,7 +1749,7 @@ public class SpelReproTests extends AbstractExpressionTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void SPR9495() throws Exception {
|
public void SPR9495() {
|
||||||
SpelParserConfiguration configuration = new SpelParserConfiguration(false, false);
|
SpelParserConfiguration configuration = new SpelParserConfiguration(false, false);
|
||||||
ExpressionParser parser = new SpelExpressionParser(configuration);
|
ExpressionParser parser = new SpelExpressionParser(configuration);
|
||||||
|
|
||||||
|
@ -1779,7 +1794,7 @@ public class SpelReproTests extends AbstractExpressionTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void SPR10486() throws Exception {
|
public void SPR10486() {
|
||||||
SpelExpressionParser parser = new SpelExpressionParser();
|
SpelExpressionParser parser = new SpelExpressionParser();
|
||||||
StandardEvaluationContext context = new StandardEvaluationContext();
|
StandardEvaluationContext context = new StandardEvaluationContext();
|
||||||
Spr10486 rootObject = new Spr10486();
|
Spr10486 rootObject = new Spr10486();
|
||||||
|
@ -1790,7 +1805,7 @@ public class SpelReproTests extends AbstractExpressionTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void SPR11142() throws Exception {
|
public void SPR11142() {
|
||||||
SpelExpressionParser parser = new SpelExpressionParser();
|
SpelExpressionParser parser = new SpelExpressionParser();
|
||||||
StandardEvaluationContext context = new StandardEvaluationContext();
|
StandardEvaluationContext context = new StandardEvaluationContext();
|
||||||
Spr11142 rootObject = new Spr11142();
|
Spr11142 rootObject = new Spr11142();
|
||||||
|
@ -1928,7 +1943,7 @@ public class SpelReproTests extends AbstractExpressionTests {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@SuppressWarnings("rawtypes")
|
@SuppressWarnings("rawtypes")
|
||||||
public void SPR13055() throws Exception {
|
public void SPR13055() {
|
||||||
List<Map<String, Object>> myPayload = new ArrayList<>();
|
List<Map<String, Object>> myPayload = new ArrayList<>();
|
||||||
|
|
||||||
Map<String, Object> v1 = new HashMap<>();
|
Map<String, Object> v1 = new HashMap<>();
|
||||||
|
|
Loading…
Reference in New Issue