public void Should_not_call_commit_if_an_exception_occurs_when_decorated_handler_handles_request( IUnitOfWork unitOfWork, IRequestHandler <Request, Response> handler, IRequestHandler <Request, Response> unitOfWorkHandler) { "Given an IUnitOfWork" .Given(() => unitOfWork = Substitute.For <IUnitOfWork>()); "And an IRequestHandler that will thow an exception" .And(() => { handler = Substitute.For <IRequestHandler <Request, Response> >(); handler .Handle(Arg.Any <Request>()) .Returns(_ => { throw new Exception(); }); }); "And an UnitOfWorkHandler constructed with the IUnitOfWork and the IRequestHandler" .And(() => unitOfWorkHandler = new UnitOfWorkHandler <Request, Response>(unitOfWork, handler)); "After handling a Request" .When(() => Record.Exception(() => unitOfWorkHandler.Handle(new Request()))); "Then the IUnitOfWork should be commited" .Then(() => unitOfWork.DidNotReceive().Commit()); }
public void Should_call_commit_if_decorated_handler_handles_request_successfully( IUnitOfWork unitOfWork, IRequestHandler <Request, Response> handler, IRequestHandler <Request, Response> unitOfWorkHandler) { "Given an IUnitOfWork" .Given(() => unitOfWork = Substitute.For <IUnitOfWork>()); "And an IRequestHandler that will process the request successfully" .And(() => handler = Substitute.For <IRequestHandler <Request, Response> >()); "And an UnitOfWorkHandler constructed with the IUnitOfWork and the IRequestHandler" .And(() => unitOfWorkHandler = new UnitOfWorkHandler <Request, Response>(unitOfWork, handler)); "After handling a Request" .When(() => unitOfWorkHandler.Handle(new Request())); "Then the IUnitOfWork should be commited" .Then(() => unitOfWork.Received().Commit()); }