TestClock.cs 769 B

123456789101112131415161718192021222324252627282930313233343536
  1. using System;
  2. using Avalonia.Animation;
  3. namespace Avalonia.Base.UnitTests.Animation
  4. {
  5. internal class TestClock : IClock, IDisposable
  6. {
  7. private TimeSpan _curTime;
  8. private IObserver<TimeSpan> _observer;
  9. public PlayState PlayState { get; set; } = PlayState.Run;
  10. public void Dispose()
  11. {
  12. _observer?.OnCompleted();
  13. }
  14. public void Step(TimeSpan time)
  15. {
  16. _observer?.OnNext(time);
  17. }
  18. public void Pulse(TimeSpan time)
  19. {
  20. _curTime += time;
  21. _observer?.OnNext(_curTime);
  22. }
  23. public IDisposable Subscribe(IObserver<TimeSpan> observer)
  24. {
  25. _observer = observer;
  26. return this;
  27. }
  28. }
  29. }