Exemple #1
0
        public async Task Invoke_DoesNotTriggerAnarchyManager_ForAnarchyRoutes()
        {
            // Arrange
            var anarchyManager   = Substitute.For <IAnarchyManagerNew>();
            var exceptionHandler = Substitute.For <IHandleAnarchyExceptions>();
            var next             = Substitute.For <RequestDelegate>();
            var context          = Get.CustomBuilderFor.MockHttpContext.WithPath("/anarchy/foo").Build();
            var logger           = Substitute.For <ILogger <AnarchyMiddleware> >();
            var sut = new AnarchyMiddleware(next, anarchyManager, exceptionHandler, logger);

            // Act
            await sut.Invoke(context);

            // Assert
            await anarchyManager.DidNotReceive().HandleRequest(context, next);
        }
Exemple #2
0
        public async Task Invoke_HandlesErrorFromNextRequestDelegate()
        {
            // Arrange
            var testException    = new ApplicationException("this is a test exception");
            var anarchyManager   = Substitute.For <IAnarchyManagerNew>();
            var exceptionHandler = Substitute.For <IHandleAnarchyExceptions>();
            var next             = Substitute.For <RequestDelegate>();

            next.Invoke(Arg.Any <HttpContext>()).Throws(testException);
            var context = Get.CustomBuilderFor.MockHttpContext.WithPath("/anarchy/bob").Build();
            var logger  = Substitute.For <ILogger <AnarchyMiddleware> >();
            var sut     = new AnarchyMiddleware(next, anarchyManager, exceptionHandler, logger);

            // Act
            await sut.Invoke(context);

            // Assert
            await exceptionHandler.Received(1).HandleAsync(context.Response, testException);
        }
Exemple #3
0
        public async Task Invoke_DoesNotCallNext_ForNonAnarchyRoutes_ThatAffectResponse()
        {
            // Arrange
            var anarchyManager = Substitute.For <IAnarchyManagerNew>();

            anarchyManager
            .HandleRequest(Arg.Any <HttpContext>(), Arg.Any <RequestDelegate>())
            .Returns(Task.FromResult(true));
            var exceptionHandler = Substitute.For <IHandleAnarchyExceptions>();
            var next             = Substitute.For <RequestDelegate>();
            var context          = Get.CustomBuilderFor.MockHttpContext.WithPath("/foo").Build();
            var logger           = Substitute.For <ILogger <AnarchyMiddleware> >();
            var sut = new AnarchyMiddleware(next, anarchyManager, exceptionHandler, logger);

            // Act
            await sut.Invoke(context);

            // Assert
            await next.DidNotReceive().Invoke(context);
        }