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