Beispiel #1
0
        public void GetState_AfterStoredState_ShouldRestoreSameState()
        {
            // store
            IStateStoreService       stateStoreSvc1 = new StateStoreService(new InMemoryStateStore());
            IDirectoryMapperService  dirMapperSvc   = FakeDirectoryMapperService.Create();
            MiddlewareOptionsBuilder builder        = new MiddlewareOptionsBuilder(dirMapperSvc);

            builder.BypassAllAuthenticatedUsers();

            stateStoreSvc1.SetState(new MaintenanceState(null, isMaintenanceOn: true, builder.GetOptions()));

            // restore
            IStateStoreService stateStoreSvc2 = new StateStoreService(new InMemoryStateStore());

            Func <MaintenanceState> testFunc = () => stateStoreSvc2.GetState();

            MaintenanceState state = testFunc.ShouldNotThrow()
                                     .ShouldNotBeNull();
            IMiddlewareOptionsContainer optionsContainer = state;

            optionsContainer.MiddlewareOptions
            .ShouldNotBeNull()
            .Any <BypassAllAuthenticatedUsersOption>()
            .ShouldBeTrue();
        }
Beispiel #2
0
        public void EnterMaintenance_WithNoMiddlewareOptions_GetOptionsToOverrideShouldReturnNull()
        {
            MaintenanceControlService svc = new MaintenanceControlService(
                _dirMapperSvc,
                FakeStateStoreService.Create());

            svc.EnterMaintanence();

            IMaintenanceState           state            = svc.GetState();
            IMiddlewareOptionsContainer optionsContainer = (IMiddlewareOptionsContainer)state;

            optionsContainer
            ?.MiddlewareOptions
            .ShouldBeNull();
        }
        private void StoreState()
        {
            StorableMaintenanceState storableState = new StorableMaintenanceState
            {
                ExpirationDate  = _state.ExpirationDate,
                IsMaintenanceOn = _state.IsMaintenanceOn
            };

            IMiddlewareOptionsContainer optionsContainer = _state;

            storableState.MiddlewareOptions = optionsContainer.MiddlewareOptions
                                              ?.GetAll <ISerializableOption>()
                                              .Select(o => new StorableOption
            {
                StringValue = o.GetStringValue(),
                TypeName    = o.TypeName
            })
                                              .ToList();

            _stateStore.SetState(storableState);
        }