Browse Source

test coverage

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@1270 50f2f4bb-b051-0410-bef5-90022cba6387
pull/1/head
Andy Clement 17 years ago
parent
commit
bdb2b0bbb1
  1. 13
      org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/Selection.java
  2. 13
      org.springframework.expression/src/test/java/org/springframework/expression/spel/InProgressTests.java
  3. 5
      org.springframework.expression/src/test/java/org/springframework/expression/spel/ParsingTests.java

13
org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/Selection.java

@ -132,12 +132,17 @@ public class Selection extends SpelNodeImpl { @@ -132,12 +132,17 @@ public class Selection extends SpelNodeImpl {
}
return new TypedValue(result,op.getTypeDescriptor());
} else {
if (operand==null && nullSafe) {
return TypedValue.NULL_TYPED_VALUE;
if (operand==null) {
if (nullSafe) {
return TypedValue.NULL_TYPED_VALUE;
} else {
throw new SpelEvaluationException(getStartPosition(), SpelMessages.INVALID_TYPE_FOR_SELECTION,
"null");
}
} else {
throw new SpelEvaluationException(getStartPosition(), SpelMessages.INVALID_TYPE_FOR_SELECTION,
(operand == null ? "null" : operand.getClass().getName()));
}
operand.getClass().getName());
}
}
}

13
org.springframework.expression/src/test/java/org/springframework/expression/spel/InProgressTests.java

@ -65,6 +65,8 @@ public class InProgressTests extends ExpressionTestCase { @@ -65,6 +65,8 @@ public class InProgressTests extends ExpressionTestCase {
@Test
public void testProjection05() {
evaluateAndCheckError("'abc'.![true]", SpelMessages.PROJECTION_NOT_SUPPORTED_ON_TYPE);
evaluateAndCheckError("null.![true]", SpelMessages.PROJECTION_NOT_SUPPORTED_ON_TYPE);
evaluate("null?.![true]", null, null);
}
@Test
@ -95,11 +97,22 @@ public class InProgressTests extends ExpressionTestCase { @@ -95,11 +97,22 @@ public class InProgressTests extends ExpressionTestCase {
// evaluate("listOfNumbersUpToTen.?{#this>5}", "5", ArrayList.class);
}
@Test
public void testSelection04() {
evaluateAndCheckError("mapOfNumbersUpToTen.?['hello'].size()",SpelMessages.RESULT_OF_SELECTION_CRITERIA_IS_NOT_BOOLEAN);
}
@Test
public void testSelection05() {
evaluate("mapOfNumbersUpToTen.?[key>11].size()", "0", Integer.class);
evaluate("mapOfNumbersUpToTen.^[key>11]", null, null);
evaluate("mapOfNumbersUpToTen.$[key>11]", null, null);
evaluate("null?.$[key>11]", null, null);
evaluateAndCheckError("null.?[key>11]", SpelMessages.INVALID_TYPE_FOR_SELECTION);
evaluateAndCheckError("'abc'.?[key>11]", SpelMessages.INVALID_TYPE_FOR_SELECTION);
}
@Test
public void testSelectionFirst01() {
evaluate("listOfNumbersUpToTen.^[#isEven(#this) == 'y']", "2", Integer.class);

5
org.springframework.expression/src/test/java/org/springframework/expression/spel/ParsingTests.java

@ -155,6 +155,11 @@ public class ParsingTests { @@ -155,6 +155,11 @@ public class ParsingTests {
parseCheck("3>=3", "(3 >= 3)");
}
@Test
public void testElvis() {
parseCheck("3?:1", "3 ?: 1");
}
// public void testRelOperatorsIn01() {
// parseCheck("3 in {1,2,3,4,5}", "(3 in {1,2,3,4,5})");
// }

Loading…
Cancel
Save