Exemple #1
0
        public async void Invoke_WithMaintenanceStateSet_NextDelegateShouldBeCalledOnlyWhenMaintenanceIsOn(bool isOn)
        {
            DefaultHttpContext httpContext = new DefaultHttpContext();

            IMaintenanceControlService svc = Substitute.For <IMaintenanceControlService>();

            svc.GetState().Returns(new MaintenanceState
            {
                IsMaintenanceOn = isOn
            });

            bool isNextDelegateCalled = false;

            MaintenanceMiddleware middleware = new MaintenanceMiddleware(
                (hc) =>
            {
                isNextDelegateCalled = true;
                return(Task.CompletedTask);
            },
                svc,
                null,
                (options) => { });


            await middleware.Invoke(httpContext);

            isNextDelegateCalled.ShouldBe(!isOn);
        }
Exemple #2
0
        public void Invoke_WhenMaintenanceModeIsOn_ShouldNotThrow()
        {
            DefaultHttpContext httpContext = new DefaultHttpContext();

            IMaintenanceControlService svc = Substitute.For <IMaintenanceControlService>();

            svc.GetState().Returns(new MaintenanceState
            {
                IsMaintenanceOn = true
            });

            MaintenanceMiddleware middleware = new MaintenanceMiddleware(
                (hc) =>
            {
                return(Task.CompletedTask);
            },
                svc,
                null,
                (options) => { });


            Action testAction = async()
                                => await middleware.Invoke(httpContext);


            testAction.ShouldNotThrow();
        }
 public HomeController(IMaintenanceControlService maintenanceCtrlSvc,
                       UserManager <IdentityUser> userManager,
                       SignInManager <IdentityUser> signInManager)
 {
     _maintenanceCtrlSvc = maintenanceCtrlSvc;
     _userManager        = userManager;
     _signInManager      = signInManager;
 }
Exemple #4
0
        public MaintenanceMiddleware(RequestDelegate next,
                                     IMaintenanceControlService maintenanceCtrlSvc,
                                     IDirectoryMapperService dirMapperSvc,
                                     Action <IMiddlewareOptionsBuilder> optionsBuilderDelegate)
        {
            _next = next;
            _maintenanceCtrlSvc = maintenanceCtrlSvc;
            _dirMapperSvc       = dirMapperSvc;

            _startupOptions = GetStartupOptions(optionsBuilderDelegate);
        }
Exemple #5
0
        private MiddlewareTestDesk GetTestDesk(
            Action <HttpContext> contextSetup,
            Action <IMiddlewareOptionsBuilder> optionsSetup,
            Action <IMiddlewareOptionsBuilder> optionsOverrideSetup = null,
            string tempDir = null)
        {
            DefaultHttpContext httpContext = new DefaultHttpContext();

            httpContext.Response.Body = new MemoryStream();

            contextSetup(httpContext);

            bool            isNextDelegateCalled = false;
            RequestDelegate nextDelegate         = (HttpContext hc) =>
            {
                isNextDelegateCalled = true;
                return(Task.CompletedTask);
            };

            if (tempDir == null)
            {
                tempDir = Path.GetTempPath();
            }

            IDirectoryMapperService dirMapperSvc = FakeDirectoryMapperService.Create(tempDir);

            OptionCollection middlewareOptions = null;

            if (optionsOverrideSetup != null)
            {
                MiddlewareOptionsBuilder optionOverrideBuilder = new MiddlewareOptionsBuilder(dirMapperSvc);
                optionsOverrideSetup.Invoke(optionOverrideBuilder);
                middlewareOptions = optionOverrideBuilder.GetOptions();
            }

            IMaintenanceControlService svc = Substitute.For <IMaintenanceControlService>();

            svc.GetState().Returns(new MaintenanceState(null, isMaintenanceOn: true, middlewareOptions));

            MaintenanceMiddleware middleware = new MaintenanceMiddleware(
                nextDelegate,
                svc,
                dirMapperSvc,
                optionsSetup);

            return(new MiddlewareTestDesk
            {
                CurrentHttpContext = httpContext,
                IsNextDelegateCalled = isNextDelegateCalled,
                MiddlewareInstance = middleware
            });
        }