Example #1
0
        public void WithExceptionInBeforeProceed_RethrowsException(string method,
                                                                   Func <ITestInterface, Task <object> > callSutMethod, object expectedResult)
        {
            var exception = new TestException();

            A.CallTo(() => _sutAsserter.BeforeProceed(A <IInvocation> ._)).Throws(exception);

            // ACT
            Func <Task> act = async() => await callSutMethod(_intercepted);

            // ASSERT
            act.Should().ThrowExactly <TestException>().Which.Should().BeSameAs(exception);

            A.CallTo(() => _sutAsserter.BeforeProceed(A <IInvocation> ._)).MustHaveHappened();
            A.CallTo(_toBeIntercepted.Fake).Where(x => x.Method.Name == method).MustNotHaveHappened();
            A.CallTo(() => _sutAsserter.AfterProceed(A <IInvocation> ._, A <object> ._, A <object> ._)).MustNotHaveHappened();
            A.CallTo(() => _sutAsserter.OnException(A <IInvocation> ._, exception, null)).MustNotHaveHappened();
            A.CallTo(() => _sutAsserter.Finally(A <IInvocation> ._, null)).MustNotHaveHappened();
        }