public void IsEvaluatableMemberMemberBinding()
        {
            var filter = new TestableEvaluatableExpressionFilterBase();
            var result = filter.IsEvaluatableMemberMemberBinding(ExpressionInstanceCreator.CreateMemberMemberBinding(new MemberBinding[0]));

            Assert.That(result, Is.True);
        }
        public void IsEvaluatableMemberAssignment()
        {
            var filter = new TestableEvaluatableExpressionFilterBase();
            var result = filter.IsEvaluatableMemberAssignment(ExpressionInstanceCreator.CreateMemberAssignment());

            Assert.That(result, Is.True);
        }
        public void IsEvaluatableCatchBlock()
        {
            var filter = new TestableEvaluatableExpressionFilterBase();
            var result = filter.IsEvaluatableCatchBlock(ExpressionInstanceCreator.CreateCatchBlock());

            Assert.That(result, Is.True);
        }
        public void VisitLambda()
        {
            var visitor          = new TestThrowingExpressionVisitorForLambda();
            var lambdaExpression = ExpressionInstanceCreator.GetExpressionInstance(ExpressionType.Lambda);

            Assert.That(() => visitor.Visit(lambdaExpression), Throws.TypeOf <NotSupportedException>().With.Message.Contains("Test of VisitLambda: "));
            var baseResult = visitor.LambdaExpresssionBaseBehaviorResult;

            Assert.That(baseResult, Is.SameAs(lambdaExpression));
        }
        public void IsEvaluatableExpression()
        {
            var supportedExpressionTypeValues =
                Enum.GetValues(typeof(ExpressionType))
                .Cast <ExpressionType>()
                .Except(
                    new[]
            {
                ExpressionType.Parameter,
#if !NET_3_5
                ExpressionType.Extension,
                ExpressionType.RuntimeVariables,
#endif
            })
                .ToArray();

            foreach (var expressionType in supportedExpressionTypeValues)
            {
                var expressionInstance = ExpressionInstanceCreator.GetExpressionInstance(expressionType);
                if (expressionInstance == null)
                {
                    continue;
                }

                var methods = typeof(EvaluatableExpressionFilterBase).FindMembers(
                    MemberTypes.Method,
                    BindingFlags.Instance | BindingFlags.Public,
                    (memberInfo, criteria) => memberInfo.Name.StartsWith("IsEvaluatable") &&
                    ((MethodInfo)memberInfo).GetParameters().All(pi => pi.ParameterType.IsInstanceOfType(criteria)),
                    expressionInstance)
                              .Cast <MethodInfo>().ToArray();
                Assert.That(methods.Count(), Is.LessThan(2), "Found more than one method for ExpressionType '{0}'.", expressionType);
                Assert.That(methods, Is.Not.Empty, "Method for ExpressionType '{0}' was not found.", expressionType);
                var method = methods.Single();

                var filter = new TestableEvaluatableExpressionFilterBase();
                var result = (bool)method.Invoke(filter, new object[] { expressionInstance });

                Assert.That(result, Is.True);
            }
        }
 private void Visit(TestThrowingExpressionVisitor visitor, ExpressionType nodeType)
 {
     visitor.Visit(ExpressionInstanceCreator.GetExpressionInstance(nodeType));
 }
 public void VisitSwitchCase()
 {
     _visitor.VisitSwitchCase(ExpressionInstanceCreator.CreateSwitchCase());
 }
 public void VisitLabelTarget()
 {
     _visitor.VisitLabelTarget(ExpressionInstanceCreator.CreateLabelTarget());
 }
 public void VisitCatchBlock()
 {
     _visitor.VisitCatchBlock(ExpressionInstanceCreator.CreateCatchBlock());
 }
 public void VisitMemberListBinding()
 {
     _visitor.VisitMemberBinding(ExpressionInstanceCreator.CreateMemberListBinding(new ElementInit[0]));
 }
 public void VisitMemberMemberBinding()
 {
     _visitor.VisitMemberBinding(ExpressionInstanceCreator.CreateMemberMemberBinding(new MemberBinding[0]));
 }
 public void VisitMemberAssignment()
 {
     _visitor.VisitMemberBinding(ExpressionInstanceCreator.CreateMemberAssignment());
 }
 public void VisitElementInit()
 {
     _visitor.VisitElementInit(ExpressionInstanceCreator.CreateElementInit());
 }
Esempio n. 14
0
 public void VisitMemberListBinding()
 {
     _visitor.VisitMemberBinding(ExpressionInstanceCreator.CreateMemberListBinding());
 }