private static void RegisterStateStore(this IServiceCollection services, Action <IStateStoreOptionsBuilder> options) { if (options == null) { services.AddSingleton <IStateStore, FileStateStore>(); return; } StateStoreOptionsBuilder optionsBuilder = new StateStoreOptionsBuilder(); options.Invoke(optionsBuilder); IStateStore instance = optionsBuilder.GetStateStoreInstance(); if (instance != null) { services.AddSingleton(instance); return; } Type type = optionsBuilder.GetStateStoreType(); if (type != null) { services.AddSingleton(typeof(IStateStore), type); } }
public void CustomStateStore_WithStateStoreType_GetStateStoreShouldEqualPassed() { StateStoreOptionsBuilder builder = new StateStoreOptionsBuilder(); builder.UseStateStore <InMemoryStateStore>(); builder.GetStateStoreType() .ShouldNotBeNull() .ShouldBe(typeof(InMemoryStateStore)); }
public void CustomStateStore_WithStateStoreInstance_GetStateStoreShouldEqualPassed() { StateStoreOptionsBuilder builder = new StateStoreOptionsBuilder(); IStateStore storeSubstitute = Substitute.For <IStateStore>(); builder.UseStateStore(storeSubstitute); builder.GetStateStoreInstance() .ShouldNotBeNull() .ShouldBeOfType(storeSubstitute.GetType()); }
public void UseNoStateStore_WhenCalled_GetStateStoreShouldReturnNull() { StateStoreOptionsBuilder builder = new StateStoreOptionsBuilder(); builder.UseNoStateStore(); builder.GetStateStoreInstance() .ShouldBeNull(); builder.GetStateStoreType() .ShouldBeNull(); }
public void CustomStateStore_WithNull_ShouldThrowArgumentNullException() { StateStoreOptionsBuilder builder = new StateStoreOptionsBuilder(); IStateStore stateStore = null; Action testAction = () => { builder.UseStateStore(stateStore); }; testAction.ShouldThrow <ArgumentNullException>(); }