Пример #1
0
        public void TestMapKeysThatAreAlsoSpELKeywords()
        {
            var            parser     = new SpelExpressionParser();
            SpelExpression expression = null;
            object         o          = null;

            expression = (SpelExpression)parser.ParseExpression("Foo[T]");
            o          = expression.GetValue(new MapHolder());
            Assert.Equal("TV", o);

            expression = (SpelExpression)parser.ParseExpression("Foo[t]");
            o          = expression.GetValue(new MapHolder());
            Assert.Equal("tv", o);

            expression = (SpelExpression)parser.ParseExpression("Foo[NEW]");
            o          = expression.GetValue(new MapHolder());
            Assert.Equal("VALUE", o);

            expression = (SpelExpression)parser.ParseExpression("Foo[new]");
            o          = expression.GetValue(new MapHolder());
            Assert.Equal("value", o);

            expression = (SpelExpression)parser.ParseExpression("Foo['abc.def']");
            o          = expression.GetValue(new MapHolder());
            Assert.Equal("value", o);

            expression = (SpelExpression)parser.ParseExpression("Foo[Foo[NEW]]");
            o          = expression.GetValue(new MapHolder());
            Assert.Equal("37", o);

            expression = (SpelExpression)parser.ParseExpression("Foo[Foo[new]]");
            o          = expression.GetValue(new MapHolder());
            Assert.Equal("38", o);

            expression = (SpelExpression)parser.ParseExpression("Foo[Foo[Foo[T]]]");
            o          = expression.GetValue(new MapHolder());
            Assert.Equal("value", o);
        }