Beispiel #1
0
        public void TestServiceAccess()
        {
            var appContext = serviceProvider.GetService <IApplicationContext>();
            var context    = new StandardEvaluationContext();

            context.ServiceResolver = new ServiceFactoryResolver(appContext);

            var car  = appContext.GetService <Car>();
            var boat = appContext.GetService <Boat>();

            var expr = new SpelExpressionParser().ParseRaw("@'T(Steeltoe.Common.Expression.Internal.Contexts.ServiceFactoryAccessorTests$Car)car'.Colour");

            Assert.Equal("red", expr.GetValue <string>(context));
            expr = new SpelExpressionParser().ParseRaw("@car.Colour");
            Assert.Equal("red", expr.GetValue <string>(context));

            expr = new SpelExpressionParser().ParseRaw("@'T(Steeltoe.Common.Expression.Internal.Contexts.ServiceFactoryAccessorTests$Boat)boat'.Colour");
            Assert.Equal("blue", expr.GetValue <string>(context));
            expr = new SpelExpressionParser().ParseRaw("@boat.Colour");
            Assert.Equal("blue", expr.GetValue <string>(context));

            var noServiceExpr = new SpelExpressionParser().ParseRaw("@truck");

            Assert.Throws <SpelEvaluationException>(() => noServiceExpr.GetValue(context));
        }
Beispiel #2
0
        public void SelectLastItemInSet()
        {
            var expression = new SpelExpressionParser().ParseRaw("Integers.$[#this<5]");
            var context    = new StandardEvaluationContext(new SetTestBean());
            var value      = expression.GetValue(context);
            var condition  = value is int;

            Assert.True(condition);
            Assert.Equal(4, value);
        }
Beispiel #3
0
        public void SelectFirstItemInPrimitiveArray()
        {
            var expression = new SpelExpressionParser().ParseRaw("Ints.^[#this<5]");
            var context    = new StandardEvaluationContext(new ArrayTestBean());
            var value      = expression.GetValue(context);
            var condition  = value is int;

            Assert.True(condition);
            Assert.Equal(0, value);
        }
Beispiel #4
0
        public void SelectionWithSet()
        {
            var expression = new SpelExpressionParser().ParseRaw("Integers.?[#this<5]");
            var context    = new StandardEvaluationContext(new SetTestBean());
            var value      = expression.GetValue(context);
            var condition  = value is List <object>;

            Assert.True(condition);
            var list = (List <object>)value;

            Assert.Equal(5, list.Count);
            Assert.Equal(0, list[0]);
            Assert.Equal(1, list[1]);
            Assert.Equal(2, list[2]);
            Assert.Equal(3, list[3]);
            Assert.Equal(4, list[4]);
        }
Beispiel #5
0
        public void ProjectionWithIEnumerable()
        {
            var expression = new SpelExpressionParser().ParseRaw("#testList.![Wrapper.Value]");
            var context    = new StandardEvaluationContext();

            context.SetVariable("testList", IntegerTestBean.CreateIterable());
            var value     = expression.GetValue(context);
            var condition = value is List <object>;

            Assert.True(condition);
            var list = (List <object>)value;

            Assert.Equal(3, list.Count);
            Assert.Equal(5, list[0]);
            Assert.Equal(6, list[1]);
            Assert.Equal(7, list[2]);
        }
Beispiel #6
0
        public void ProjectionWithArray()
        {
            var expression = new SpelExpressionParser().ParseRaw("#testArray.![Wrapper.Value]");
            var context    = new StandardEvaluationContext();

            context.SetVariable("testArray", IntegerTestBean.CreateArray());
            var value = expression.GetValue(context);

            Assert.True(value.GetType().IsArray);
            var typedValue = new TypedValue(value);

            Assert.Equal(typeof(ValueType), typedValue.TypeDescriptor.GetElementType());
            var array = (ValueType[])value;

            Assert.Equal(3, array.Length);
            Assert.Equal(5, array[0]);
            Assert.Equal(5.9f, array[1]);
            Assert.Equal(7, array[2]);
        }
Beispiel #7
0
        public void SelectionWithPrimitiveArray()
        {
            var expression = new SpelExpressionParser().ParseRaw("Ints.?[#this<5]");
            var context    = new StandardEvaluationContext(new ArrayTestBean());
            var value      = expression.GetValue(context);

            Assert.True(value.GetType().IsArray);
            var typedValue = new TypedValue(value);

            Assert.Equal(typeof(int), typedValue.TypeDescriptor.GetElementType());
            var array = (int[])value;

            Assert.Equal(5, array.Length);
            Assert.Equal(0, array[0]);
            Assert.Equal(1, array[1]);
            Assert.Equal(2, array[2]);
            Assert.Equal(3, array[3]);
            Assert.Equal(4, array[4]);
        }