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()); }
public void VisitMemberListBinding() { _visitor.VisitMemberBinding(ExpressionInstanceCreator.CreateMemberListBinding()); }