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)); }
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); }
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); }
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]); }
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]); }
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]); }
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]); }