public void Debouncer_Trigger_FiredOnce_DebounceOccursOnce() { var debouncer = new Debouncer(0); var signal = new AutoResetEvent(false); bool result = false; debouncer.DebounceFiredEvent += () => { result = true; signal.Set(); }; debouncer.Trigger(); signal.WaitOne(); // The debounce event should have fired Assert.IsTrue(result); }
public void Debouncer_Trigger_Fired100_DebounceOccurs() { var debouncer = new Debouncer(100); var signal = new AutoResetEvent(false); int result = 0; debouncer.DebounceFiredEvent += () => { result++; signal.Set(); }; for (int i = 0; i < 100; i++) { debouncer.Trigger(); } signal.WaitOne(); // Debounce should fire just once despite 100 events Assert.AreEqual(result, 1); }