public void should_hold_the_call_while_paused() { var counter = new Counter(); var debounceFunction = new Debouncer(counter.Hit, TimeSpan.FromMilliseconds(50)); debounceFunction.Pause(); debounceFunction.Execute(); debounceFunction.Execute(); Thread.Sleep(100); counter.Count.Should().Be(0); debounceFunction.Execute(); debounceFunction.Execute(); Thread.Sleep(100); counter.Count.Should().Be(0); debounceFunction.Resume(); Thread.Sleep(20); counter.Count.Should().Be(0); Thread.Sleep(100); counter.Count.Should().Be(1); }
public void should_hold_the_call_for_debounce_duration() { var counter = new Counter(); var debounceFunction = new Debouncer(counter.Hit, TimeSpan.FromMilliseconds(50)); debounceFunction.Execute(); debounceFunction.Execute(); debounceFunction.Execute(); counter.Count.Should().Be(0); Thread.Sleep(100); counter.Count.Should().Be(1); }
public void should_throttle_calls() { var counter = new Counter(); var debounceFunction = new Debouncer(counter.Hit, TimeSpan.FromMilliseconds(50)); debounceFunction.Execute(); debounceFunction.Execute(); debounceFunction.Execute(); counter.Count.Should().Be(0); Thread.Sleep(200); debounceFunction.Execute(); debounceFunction.Execute(); debounceFunction.Execute(); Thread.Sleep(200); counter.Count.Should().Be(2); }