AllViewsDrawTests.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #nullable enable
  2. using UnitTests;
  3. using Xunit.Abstractions;
  4. namespace UnitTests_Parallelizable.ViewsTests;
  5. public class AllViewsDrawTests (ITestOutputHelper output) : TestsAllViews
  6. {
  7. [Theory]
  8. [MemberData (nameof (AllViewTypes))]
  9. public void AllViews_Draw_Does_Not_Layout (Type viewType)
  10. {
  11. IDriver driver = CreateFakeDriver ();
  12. View? view = CreateInstanceIfNotGeneric (viewType);
  13. if (view is null)
  14. {
  15. output.WriteLine ($"Ignoring {viewType} - It's a Generic");
  16. return;
  17. }
  18. output.WriteLine ($"Testing {viewType}");
  19. if (view is IDesignable designable)
  20. {
  21. designable.EnableForDesign ();
  22. }
  23. var drawCompleteCount = 0;
  24. view.DrawComplete += (s, e) => drawCompleteCount++;
  25. var layoutStartedCount = 0;
  26. view.SubViewLayout += (s, e) => layoutStartedCount++;
  27. var layoutCompleteCount = 0;
  28. view.SubViewsLaidOut += (s, e) => layoutCompleteCount++;
  29. view.SetNeedsLayout ();
  30. view.Layout ();
  31. Assert.Equal (0, drawCompleteCount);
  32. Assert.Equal (1, layoutStartedCount);
  33. Assert.Equal (1, layoutCompleteCount);
  34. if (view.Visible)
  35. {
  36. view.SetNeedsDraw ();
  37. view.Draw ();
  38. Assert.Equal (1, drawCompleteCount);
  39. Assert.Equal (1, layoutStartedCount);
  40. Assert.Equal (1, layoutCompleteCount);
  41. }
  42. }
  43. }