Beispiel #1
0
        public async Task CountStateIncrementByOneWithSubscribersTest()
        {
            var state = new CountState(0);

            var feature = new Feature <CountState>(state, reducers: new IReducer <CountState>[]
            {
                new IncrementReducer(),
            });

            var store = new Store(features: new IReducible[]
            {
                feature,
            });

            var subscriber   = new object();
            var observeCount = 0;

            void StateChangedHandler(object sender, IStateChangeEventArgs <CountState> stateChange)
            {
                observeCount += 1;
            }

            feature.StateChanged += StateChangedHandler;

            await store.Dispatch(new IncrementAction(amount : 1));

            Assert.Equal(expected: 1, actual: feature.State.Count);
            Assert.Equal(expected: 1, actual: observeCount);

            await store.Dispatch(new IncrementAction(amount : 1));

            Assert.Equal(expected: 2, actual: feature.State.Count);
            Assert.Equal(expected: 2, actual: observeCount);

            await store.Dispatch(new IncrementAction(amount : 1));

            Assert.Equal(expected: 3, actual: feature.State.Count);
            Assert.Equal(expected: 3, actual: observeCount);

            feature.StateChanged -= StateChangedHandler;

            await store.Dispatch(new IncrementAction(amount : 1));

            Assert.Equal(expected: 4, actual: feature.State.Count);
            Assert.Equal(expected: 3, actual: observeCount);

            await store.Dispatch(new IncrementAction(amount : 1));

            Assert.Equal(expected: 5, actual: feature.State.Count);
            Assert.Equal(expected: 3, actual: observeCount);
        }
Beispiel #2
0
        public async Task CountStateIncrementByOneTest()
        {
            var state = new CountState(0);

            var feature = new Feature <CountState>(state, reducers: new IReducer <CountState>[]
            {
                new IncrementReducer(),
            });

            var store = new Store(features: new IReducible[]
            {
                feature,
            });

            Assert.Equal(expected: 0, actual: feature.State.Count);

            await store.Dispatch(new IncrementAction(amount : 1));

            Assert.Equal(expected: 1, actual: feature.State.Count);
        }