Browse Source

Explicit test for default useDistance mode

Issue: SPR-12808
pull/755/head
Juergen Hoeller 11 years ago
parent
commit
9d47a2b87e
  1. 31
      spring-expression/src/test/java/org/springframework/expression/spel/SpelReproTests.java

31
spring-expression/src/test/java/org/springframework/expression/spel/SpelReproTests.java

@ -1904,6 +1904,21 @@ public class SpelReproTests extends AbstractExpressionTests { @@ -1904,6 +1904,21 @@ public class SpelReproTests extends AbstractExpressionTests {
assertTrue(expression.getValue(sec) instanceof ArrayList);
}
@Test
public void SPR12808() throws Exception {
SpelExpressionParser parser = new SpelExpressionParser();
Expression expression = parser.parseExpression("T(org.springframework.expression.spel.SpelReproTests.DistanceEnforcer).from(#no)");
StandardEvaluationContext sec = new StandardEvaluationContext();
sec.setVariable("no", new Integer(1));
assertTrue(expression.getValue(sec).toString().startsWith("Integer"));
sec = new StandardEvaluationContext();
sec.setVariable("no", new Float(1.0));
assertTrue(expression.getValue(sec).toString().startsWith("Number"));
sec = new StandardEvaluationContext();
sec.setVariable("no", "1.0");
assertTrue(expression.getValue(sec).toString().startsWith("Object"));
}
private static enum ABC { A, B, C }
@ -2201,4 +2216,20 @@ public class SpelReproTests extends AbstractExpressionTests { @@ -2201,4 +2216,20 @@ public class SpelReproTests extends AbstractExpressionTests {
}
}
public static class DistanceEnforcer {
public static String from(Number no) {
return "Number:" + no.toString();
}
public static String from(Integer no) {
return "Integer:" + no.toString();
}
public static String from(Object no) {
return "Object:" + no.toString();
}
}
}

Loading…
Cancel
Save