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);
            }
        }
Пример #2
0
        public void CustomStateStore_WithStateStoreType_GetStateStoreShouldEqualPassed()
        {
            StateStoreOptionsBuilder builder = new StateStoreOptionsBuilder();

            builder.UseStateStore <InMemoryStateStore>();

            builder.GetStateStoreType()
            .ShouldNotBeNull()
            .ShouldBe(typeof(InMemoryStateStore));
        }
Пример #3
0
        public void CustomStateStore_WithStateStoreInstance_GetStateStoreShouldEqualPassed()
        {
            StateStoreOptionsBuilder builder = new StateStoreOptionsBuilder();
            IStateStore storeSubstitute      = Substitute.For <IStateStore>();

            builder.UseStateStore(storeSubstitute);

            builder.GetStateStoreInstance()
            .ShouldNotBeNull()
            .ShouldBeOfType(storeSubstitute.GetType());
        }
Пример #4
0
        public void UseNoStateStore_WhenCalled_GetStateStoreShouldReturnNull()
        {
            StateStoreOptionsBuilder builder = new StateStoreOptionsBuilder();

            builder.UseNoStateStore();

            builder.GetStateStoreInstance()
            .ShouldBeNull();
            builder.GetStateStoreType()
            .ShouldBeNull();
        }
Пример #5
0
        public void CustomStateStore_WithNull_ShouldThrowArgumentNullException()
        {
            StateStoreOptionsBuilder builder = new StateStoreOptionsBuilder();
            IStateStore stateStore           = null;

            Action testAction = () =>
            {
                builder.UseStateStore(stateStore);
            };

            testAction.ShouldThrow <ArgumentNullException>();
        }