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 {
} }
return new TypedValue(result,op.getTypeDescriptor()); return new TypedValue(result,op.getTypeDescriptor());
} else { } else {
if (operand==null && nullSafe) { if (operand==null) {
return TypedValue.NULL_TYPED_VALUE; if (nullSafe) {
return TypedValue.NULL_TYPED_VALUE;
} else {
throw new SpelEvaluationException(getStartPosition(), SpelMessages.INVALID_TYPE_FOR_SELECTION,
"null");
}
} else { } else {
throw new SpelEvaluationException(getStartPosition(), SpelMessages.INVALID_TYPE_FOR_SELECTION, 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 {
@Test @Test
public void testProjection05() { public void testProjection05() {
evaluateAndCheckError("'abc'.![true]", SpelMessages.PROJECTION_NOT_SUPPORTED_ON_TYPE); evaluateAndCheckError("'abc'.![true]", SpelMessages.PROJECTION_NOT_SUPPORTED_ON_TYPE);
evaluateAndCheckError("null.![true]", SpelMessages.PROJECTION_NOT_SUPPORTED_ON_TYPE);
evaluate("null?.![true]", null, null);
} }
@Test @Test
@ -95,11 +97,22 @@ public class InProgressTests extends ExpressionTestCase {
// evaluate("listOfNumbersUpToTen.?{#this>5}", "5", ArrayList.class); // evaluate("listOfNumbersUpToTen.?{#this>5}", "5", ArrayList.class);
} }
@Test @Test
public void testSelection04() { public void testSelection04() {
evaluateAndCheckError("mapOfNumbersUpToTen.?['hello'].size()",SpelMessages.RESULT_OF_SELECTION_CRITERIA_IS_NOT_BOOLEAN); 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 @Test
public void testSelectionFirst01() { public void testSelectionFirst01() {
evaluate("listOfNumbersUpToTen.^[#isEven(#this) == 'y']", "2", Integer.class); 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 {
parseCheck("3>=3", "(3 >= 3)"); parseCheck("3>=3", "(3 >= 3)");
} }
@Test
public void testElvis() {
parseCheck("3?:1", "3 ?: 1");
}
// public void testRelOperatorsIn01() { // public void testRelOperatorsIn01() {
// parseCheck("3 in {1,2,3,4,5}", "(3 in {1,2,3,4,5})"); // parseCheck("3 in {1,2,3,4,5}", "(3 in {1,2,3,4,5})");
// } // }

Loading…
Cancel
Save