public UnitOfWorkManagerMiddlewareTestsFixture()
        {
            Context                     = new DefaultHttpContext();
            UnitOfWorkManager           = new Mock <IUnitOfWorkManager>();
            NextTask                    = new Mock <RequestDelegate>();
            UnitOfWorkManagerMiddleware = new UnitOfWorkManagerMiddleware(NextTask.Object);

            UnitOfWorkManager.Setup(m => m.BeginAsync()).Returns(Task.CompletedTask).Callback(() =>
            {
                if (NextTaskInvoked)
                {
                    throw new Exception("BeginAsync called too late");
                }
            });

            UnitOfWorkManager.Setup(m => m.EndAsync(null)).Returns(Task.CompletedTask).Callback(() =>
            {
                if (!NextTaskInvoked)
                {
                    throw new Exception("EndAsync called too early");
                }
            });

            NextTask.Setup(n => n(Context)).Returns(Task.CompletedTask).Callback <HttpContext>(c => NextTaskInvoked = true);
        }
 public async Task InvokeAsyncAndSwallowException()
 {
     try
     {
         await UnitOfWorkManagerMiddleware.InvokeAsync(Context, UnitOfWorkManager.Object);
     }
     catch
     {
     }
 }
 public Task InvokeAsync()
 {
     return(UnitOfWorkManagerMiddleware.InvokeAsync(Context, UnitOfWorkManager.Object));
 }