Exemple #1
0
            public void That_Supports_Callbacks_Before_A_Method_Is_Invoked()
            {
                // Arrange
                var _originalImplementation = new BeforeExecutionMethodSignatures();

                IInterceptorProxyBuilder <IBeforeExecutionMethodSignatures> builder = new InterceptorProxyBuilder <IBeforeExecutionMethodSignatures>()
                                                                                      .For(_originalImplementation);

                // Arrange
                var args       = default(object[]);
                var parameters = default(IDictionary <string, object>);
                var calledBack = false;

                var proxy = builder.InterceptBeforeExecutionOf(theMethodNamed: nameof(IBeforeExecutionMethodSignatures.HasOneParameter), andCallBackWith: result =>
                {
                    calledBack = true;
                    args       = result.Args;
                    parameters = result.Parameters;
                })
                            .Build() as IBeforeExecutionMethodSignatures;

                // Act
                proxy.HasOneParameter(10);

                // Assert
                calledBack.Should().BeTrue(because: "the callback should have been invoked. ");
                ((int)parameters["parameter1"]).Should().Be(10, because: "the value 10 was passed in. ");
            }