public void VisitExtension_ReducedExpressionIsVisited () { RelinqExpressionVisitor visitor = new TestThrowingConstantExpressionVisitor(); var constantExpression = Expression.Constant (0); var expression = new ReducibleExtensionExpression (constantExpression); var result = visitor.Visit (expression); Assert.That (result, Is.Not.SameAs (constantExpression)); Assert.That (((ConstantExpression) result).Value, Is.EqualTo("ConstantExpression was visited")); }
public void VisitExtension_NonReducibleExpression () { RelinqExpressionVisitor visitor = new TestThrowingConstantExpressionVisitor (); #if !NET_3_5 var nonReducibleExpression = MockRepository.GenerateStub<Expression>(); #else var nonReducibleExpression = MockRepository.GenerateStub<ExtensionExpression> (typeof (int)); #endif nonReducibleExpression .Stub (stub => ExtensionExpressionTestHelper.CallAccept (stub, Arg<RelinqExpressionVisitor>.Is.Anything)) .WhenCalled (mi => PrivateInvoke.InvokeNonPublicMethod (mi.Arguments[0], "VisitExtension", nonReducibleExpression)) .Return (nonReducibleExpression); nonReducibleExpression.Stub (stub => stub.CanReduce).Return (false); nonReducibleExpression.Stub (stub => stub.ToString ()).Return ("Test"); visitor.Visit (nonReducibleExpression); }