public virtual void Test013() { var xgr = new ExpressionGenerator(); var obj = new MethodCallTestData(); var obj1Expr = Expression.Lambda <Func <MethodCallTestData> >(Expression.Constant(obj, typeof(MethodCallTestData))); var obj2Expr = Expression.Lambda <Func <MethodCallTestData> >(Expression.Constant(obj, typeof(MethodCallTestData))); var expr1 = xgr.FromFunc(obj1Expr, obj1 => obj1.IntMethodOne()); var expr2 = xgr.FromFunc(obj2Expr, obj2 => obj2.IntMethodOne()); _assert.AreEqual(expr1, expr2); }
public virtual void Test016() { var xgr = new ExpressionGenerator(); MethodCallTestData obj1 = new MethodCallTestData(); MethodCallTestData obj2 = new MethodCallTestData(); var expr1 = xgr.FromFunc(() => obj1.IntMethodOne()); var expr2 = xgr.FromFunc(() => obj2.IntMethodOne()); // these aren't equal because the expressions (.NET 3.5 -> .nET 4.5.2+) are generated as a member access // on a constant over the invisible closure, instead of a constant reference to the objects themselves // TODO: Keep this up to date as new versions are released _assert.AreNotEqual(expr1, expr2); }
public virtual void Test015() { var xgr = new ExpressionGenerator(); var obj1 = new MethodCallTestData(); var obj2 = new MethodCallTestData(); var obj1Expr = Expression.Lambda<Func<MethodCallTestData>>(Expression.Constant(obj1, typeof(MethodCallTestData))); var obj2Expr = Expression.Lambda<Func<MethodCallTestData>>(Expression.Constant(obj2, typeof(MethodCallTestData))); var expr1 = xgr.FromFunc(obj1Expr, pobj1 => pobj1.IntMethodOne()); var expr2 = xgr.FromFunc(obj2Expr, pobj2 => pobj2.IntMethodOne()); _assert.AreNotEqual(expr1, expr2); }