コード例 #1
0
        public void SetUp()
        {
            _mutableType = MutableTypeObjectMother.Create(baseType: typeof(DomainType));

            _context       = new TestableBodyContextBase(_mutableType, isStatic: false);
            _staticContext = new TestableBodyContextBase(_mutableType, isStatic: true);
        }
コード例 #2
0
        private void CopyMethodBodyAndCheckResult(BodyContextBase context, MethodAttributes methodAttributes)
        {
            var parameter        = ParameterDeclarationObjectMother.CreateMultiple(2);
            var constantBodyPart = ExpressionTreeObjectMother.GetSomeExpression(typeof(int));
            var body             = Expression.Block(parameter[0].Expression, parameter[1].Expression, constantBodyPart);
            var methodToCopy     = MutableMethodInfoObjectMother.Create(
                declaringType: _mutableType, attributes: methodAttributes, returnType: typeof(int), parameters: parameter, body: body);
            var arguments = parameter.Select(p => ExpressionTreeObjectMother.GetSomeExpression(p.Type)).ToArray();

            var result = context.CopyMethodBody(methodToCopy, arguments.AsOneTime());

            var expectedBody = Expression.Block(arguments[0], arguments[1], constantBodyPart);

            ExpressionTreeComparer.CheckAreEqualTrees(expectedBody, result);
        }
コード例 #3
0
 public void SetUp()
 {
     _context = new TestableBodyContextBase(MutableTypeObjectMother.Create(), false);
 }
コード例 #4
0
 private Expression CreateAssignExpression(IStorage storage, Func <ThisExpression, Expression> expressionProvider, BodyContextBase ctx)
 {
     return(Expression.Assign(storage.CreateStorageExpression(null), expressionProvider(null)));
 }