|
17 | 17 | package org.springframework.expression.spel;
|
18 | 18 |
|
19 | 19 | import java.util.HashMap;
|
| 20 | +import java.util.LinkedHashMap; |
20 | 21 | import java.util.Map;
|
21 | 22 | import java.util.Properties;
|
22 | 23 |
|
|
28 | 29 | import org.springframework.expression.EvaluationContext;
|
29 | 30 | import org.springframework.expression.EvaluationException;
|
30 | 31 | import org.springframework.expression.Expression;
|
| 32 | +import org.springframework.expression.ExpressionParser; |
31 | 33 | import org.springframework.expression.ParserContext;
|
32 | 34 | import org.springframework.expression.PropertyAccessor;
|
33 | 35 | import org.springframework.expression.TypedValue;
|
@@ -673,4 +675,27 @@ public void elvis_SPR7209_2() {
|
673 | 675 | Assert.assertEquals("default", expr.getValue());
|
674 | 676 | }
|
675 | 677 |
|
| 678 | + @Test |
| 679 | + @SuppressWarnings("unchecked") |
| 680 | + public void testMapOfMap_SPR7244() throws Exception { |
| 681 | + Map<String,Object> map = new LinkedHashMap(); |
| 682 | + map.put("uri", "http:"); |
| 683 | + Map nameMap = new LinkedHashMap(); |
| 684 | + nameMap.put("givenName", "Arthur"); |
| 685 | + map.put("value", nameMap); |
| 686 | + |
| 687 | + StandardEvaluationContext ctx = new StandardEvaluationContext(map); |
| 688 | + ExpressionParser parser = new SpelExpressionParser(); |
| 689 | + String el1 = "#root['value'].get('givenName')"; |
| 690 | + Expression exp = parser.parseExpression(el1); |
| 691 | + Object evaluated = exp.getValue(ctx); |
| 692 | + Assert.assertEquals("Arthur", evaluated); |
| 693 | + |
| 694 | + String el2 = "#root['value']['givenName']"; |
| 695 | + exp = parser.parseExpression(el2); |
| 696 | + evaluated = exp.getValue(ctx); |
| 697 | + Assert.assertEquals("Arthur",evaluated); |
| 698 | + } |
| 699 | + |
| 700 | + |
676 | 701 | }
|
0 commit comments