Exemplo n.º 1
0
        public void CooperativeExpressionVisitor_MethodCall_Rewrite3()
        {
            var cv = new CooperativeExpressionVisitor();

            var m1 = (Expression <Func <MethOp, int, int> >)((m, x) => MethOp.Foo(MethOp.Qux(m.Bar(x))));

            var res = cv.Visit(m1.Body);
            var mr  = res as MethodCallExpression;

            Assert.IsNotNull(mr);
            Assert.IsNull(mr.Object);
            Assert.AreEqual("Foz", mr.Method.Name);

            var mi = mr.Arguments[0] as MethodCallExpression;

            Assert.IsNotNull(mi);
            Assert.IsNull(mi.Object);
            Assert.AreEqual("Qux", mi.Method.Name);

            var mj = mi.Arguments[0] as MethodCallExpression;

            Assert.IsNotNull(mj);
            Assert.AreSame(m1.Parameters[0], mj.Object);
            Assert.AreSame(m1.Parameters[1], mj.Arguments[0]);
        }
Exemplo n.º 2
0
        public void CooperativeExpressionVisitor_MethodCall_Rewrite2()
        {
            var cv = new CooperativeExpressionVisitor();

            var m1 = (Expression <Func <int, int> >)(x => MethOp.Foo(x));

            var res = cv.Visit(m1.Body);
            var mr  = res as MethodCallExpression;

            Assert.IsNotNull(mr);
            Assert.IsNull(mr.Object);
            Assert.AreEqual("Foz", mr.Method.Name);
            Assert.AreSame(m1.Parameters[0], mr.Arguments[0]);
        }