AllViewsDrawTests.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. view.Driver = driver;
  19. output.WriteLine ($"Testing {viewType}");
  20. if (view is IDesignable designable)
  21. {
  22. designable.EnableForDesign ();
  23. }
  24. var drawCompleteCount = 0;
  25. view.DrawComplete += (s, e) => drawCompleteCount++;
  26. var layoutStartedCount = 0;
  27. view.SubViewLayout += (s, e) => layoutStartedCount++;
  28. var layoutCompleteCount = 0;
  29. view.SubViewsLaidOut += (s, e) => layoutCompleteCount++;
  30. view.SetNeedsLayout ();
  31. view.Layout ();
  32. Assert.Equal (0, drawCompleteCount);
  33. Assert.Equal (1, layoutStartedCount);
  34. Assert.Equal (1, layoutCompleteCount);
  35. if (view.Visible)
  36. {
  37. view.SetNeedsDraw ();
  38. view.Draw ();
  39. Assert.Equal (1, drawCompleteCount);
  40. Assert.Equal (1, layoutStartedCount);
  41. Assert.Equal (1, layoutCompleteCount);
  42. }
  43. }
  44. }