SpinnerViewTests.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using Terminal.Gui;
  2. using Xunit;
  3. using Xunit.Abstractions;
  4. namespace UnitTests.Views {
  5. public class SpinnerViewTests {
  6. readonly ITestOutputHelper output;
  7. public SpinnerViewTests (ITestOutputHelper output)
  8. {
  9. this.output = output;
  10. }
  11. [Fact,AutoInitShutdown]
  12. public void TestSpinnerView_ThrottlesAnimation()
  13. {
  14. var view = GetSpinnerView ();
  15. view.Redraw (view.Bounds);
  16. var expected = "/";
  17. TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
  18. view.SetNeedsDisplay ();
  19. view.Redraw (view.Bounds);
  20. expected = "/";
  21. TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
  22. view.SetNeedsDisplay ();
  23. view.Redraw (view.Bounds);
  24. expected = "/";
  25. TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
  26. }
  27. [Fact, AutoInitShutdown]
  28. public void TestSpinnerView_NoThrottle()
  29. {
  30. var view = GetSpinnerView ();
  31. view.SpinDelayInMilliseconds = 0;
  32. view.Redraw (view.Bounds);
  33. var expected = @"─";
  34. TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
  35. view.SetNeedsDisplay ();
  36. view.Redraw (view.Bounds);
  37. expected = @"\";
  38. TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
  39. }
  40. private SpinnerView GetSpinnerView ()
  41. {
  42. var view = new SpinnerView ();
  43. Application.Top.Add (view);
  44. Application.Begin (Application.Top);
  45. Assert.Equal (1, view.Width);
  46. Assert.Equal (1, view.Height);
  47. return view;
  48. }
  49. }
  50. }