Ejemplo n.º 1
0
        FluentInterceptedMember <T> SetupSetProperty(LambdaExpression expression)
        {
            var propertyExpression = expression.GetMemberAssignmentExpression();
            var property           = propertyExpression.Member as PropertyInfo;

            var arguments = property.SetMethod.GetParameters().Select(p => new MatchValue()).ToArray();

            var dispatcher = new FluentInterceptedMember <T>(property.SetMethod, arguments);

            _dispatchers.Add(dispatcher);

            return(dispatcher);
        }
Ejemplo n.º 2
0
        FluentInterceptedMember <T> SetupGetProperty(LambdaExpression expression)
        {
            var propertyExpression = expression.GetMemberAssignmentExpression();
            var property           = propertyExpression.Member as PropertyInfo;

            if (property.GetMethod.GetParameters().Length != 0)
            {
                throw new Exception("Property with parameters cannot be intercepted.");
            }

            var dispatcher = new FluentInterceptedMember <T>(property.GetMethod, new object[0]);

            _dispatchers.Add(dispatcher);

            return(dispatcher);
        }
Ejemplo n.º 3
0
        FluentInterceptedMember <T> SetupMethod(LambdaExpression expression)
        {
            var methodCall = expression.GetMethodCallExpression();
            var methodInfo = methodCall.Method;
            var arguments  = methodCall.ExtractArguments().Select(p => p.Value).ToArray();

            for (int i = 0; i < arguments.Length; i++)
            {
                var exprArg = methodCall.Arguments[i];
                arguments[i] = GetConfiguredParameterValue(arguments[i], exprArg);
            }

            var dispatcher = new FluentInterceptedMember <T>(methodInfo, arguments);

            _dispatchers.Add(dispatcher);

            return(dispatcher);
        }