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(); }
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); }