public async Task ResetsToConfiguredMaxRateIfPastConfiguredMax()
            {
                // Arrange
                bool?result = null;
                var  state  = new RevalidationState
                {
                    DesiredPackageEventRate = 600
                };

                _state
                .Setup(s => s.MaybeUpdateStateAsync(It.IsAny <Func <RevalidationState, bool> >()))
                .Callback((Func <RevalidationState, bool> a) =>
                {
                    result = a(state);
                })
                .ReturnsAsync(state);

                // Act
                await _target.IncreaseDesiredPackageEventRateAsync();

                // Assert
                Assert.Equal(500, state.DesiredPackageEventRate);
                Assert.True(result);

                _state.Verify(s => s.MaybeUpdateStateAsync(It.IsAny <Func <RevalidationState, bool> >()), Times.Once);
            }
            public async Task UpdatesState(bool isInitialized)
            {
                var result = new RevalidationState
                {
                    IsInitialized = isInitialized
                };

                _state
                .Setup(s => s.UpdateStateAsync(It.IsAny <Action <RevalidationState> >()))
                .Callback((Action <RevalidationState> a) => a(result))
                .Returns(Task.CompletedTask);

                await _target.MarkAsInitializedAsync();

                _state.Verify(
                    s => s.UpdateStateAsync(It.IsAny <Action <RevalidationState> >()),
                    Times.Once);

                Assert.True(result.IsInitialized);
            }
            public async Task UpdatesState()
            {
                var result = new RevalidationState
                {
                    DesiredPackageEventRate = 123
                };

                _state
                .Setup(s => s.UpdateStateAsync(It.IsAny <Action <RevalidationState> >()))
                .Callback((Action <RevalidationState> a) => a(result))
                .Returns(Task.CompletedTask);

                await _target.ResetDesiredPackageEventRateAsync();

                _state.Verify(
                    s => s.UpdateStateAsync(It.IsAny <Action <RevalidationState> >()),
                    Times.Once);

                Assert.Equal(100, result.DesiredPackageEventRate);
            }
            public async Task ReturnsDesiredPackageEventRateValue()
            {
                // Arrange
                bool?result = null;
                var  state  = new RevalidationState
                {
                    DesiredPackageEventRate = 123
                };

                _state
                .Setup(s => s.MaybeUpdateStateAsync(It.IsAny <Func <RevalidationState, bool> >()))
                .Callback((Func <RevalidationState, bool> a) =>
                {
                    result = a(state);
                })
                .ReturnsAsync(state);

                // Act & Assert
                Assert.Equal(123, await _target.GetDesiredPackageEventRateAsync());
                Assert.False(result);

                _state.Verify(s => s.MaybeUpdateStateAsync(It.IsAny <Func <RevalidationState, bool> >()), Times.Once);
            }
            public async Task UpdatesRateIfCurrentRateOutsideofConfiguredBounds(int storedRate, int expectedRate)
            {
                // Arrange
                bool?result = null;
                var  state  = new RevalidationState
                {
                    DesiredPackageEventRate = storedRate
                };

                _state
                .Setup(s => s.MaybeUpdateStateAsync(It.IsAny <Func <RevalidationState, bool> >()))
                .Callback((Func <RevalidationState, bool> a) =>
                {
                    result = a(state);
                })
                .ReturnsAsync(state);

                // Act & Assert
                Assert.Equal(expectedRate, await _target.GetDesiredPackageEventRateAsync());
                Assert.True(result);

                _state.Verify(s => s.MaybeUpdateStateAsync(It.IsAny <Func <RevalidationState, bool> >()), Times.Once);
            }
示例#6
0
 public RevalidationPageViewModel(RevalidationState state, RevalidationStatistics statistics)
 {
     State      = state ?? throw new ArgumentNullException(nameof(state));
     Statistics = statistics ?? throw new ArgumentNullException(nameof(statistics));
 }