public void Apply_should_call_the_applicator_with_the_incoming_call() { IInterceptedFakeObjectCall callPassedToApplicator = null; var callPassedToRule = FakeCall.Create <IFoo>("Bar"); var rule = this.CreateRule(); rule.Applicator = x => callPassedToApplicator = x; rule.Apply(callPassedToRule); callPassedToApplicator.Should().BeSameAs(callPassedToRule); }
public void Should_delegate_to_fake_call_processor_when_method_on_fake_is_called(Type typeThatImplementsInterfaceType) { // Arrange IInterceptedFakeObjectCall interceptedFakeObjectCall = null; var fakeCallProcessorProvider = CreateFakeCallProcessorProvider(c => interceptedFakeObjectCall = c); var result = this.generator.GenerateProxy(typeThatImplementsInterfaceType, Enumerable.Empty <Type>(), null, fakeCallProcessorProvider); var proxy = (IInterfaceType)result.GeneratedProxy; // Act proxy.Foo(1, 2); // Assert interceptedFakeObjectCall.Should().NotBeNull(); interceptedFakeObjectCall.Arguments.Should().BeEquivalentTo(1, 2); interceptedFakeObjectCall.Method.Name.Should().Be(typeof(IInterfaceType).GetMethod("Foo").Name); interceptedFakeObjectCall.FakedObject.Should().BeSameAs(proxy); }