2
0

SubviewTests.cs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. using UnitTests;
  2. using Xunit.Abstractions;
  3. namespace UnitTests.ViewTests;
  4. public class SubViewTests
  5. {
  6. private readonly ITestOutputHelper _output;
  7. public SubViewTests (ITestOutputHelper output) { _output = output; }
  8. // TODO: This is a poor unit tests. Not clear what it's testing. Refactor.
  9. [Fact]
  10. [AutoInitShutdown]
  11. public void Initialized_Event_Will_Be_Invoked_When_Added_Dynamically ()
  12. {
  13. var t = new Toplevel { Id = "0" };
  14. var w = new Window { Id = "t", Width = Dim.Fill (), Height = Dim.Fill () };
  15. var v1 = new View { Id = "v1", Width = Dim.Fill (), Height = Dim.Fill () };
  16. var v2 = new View { Id = "v2", Width = Dim.Fill (), Height = Dim.Fill () };
  17. int tc = 0, wc = 0, v1c = 0, v2c = 0, sv1c = 0;
  18. t.Initialized += (s, e) =>
  19. {
  20. tc++;
  21. Assert.Equal (1, tc);
  22. Assert.Equal (1, wc);
  23. Assert.Equal (1, v1c);
  24. Assert.Equal (1, v2c);
  25. Assert.Equal (0, sv1c); // Added after t in the Application.Iteration.
  26. Assert.True (t.CanFocus);
  27. Assert.True (w.CanFocus);
  28. Assert.False (v1.CanFocus);
  29. Assert.False (v2.CanFocus);
  30. Application.LayoutAndDraw ();
  31. };
  32. w.Initialized += (s, e) =>
  33. {
  34. wc++;
  35. Assert.Equal (t.Viewport.Width, w.Frame.Width);
  36. Assert.Equal (t.Viewport.Height, w.Frame.Height);
  37. };
  38. v1.Initialized += (s, e) =>
  39. {
  40. v1c++;
  41. //Assert.Equal (t.Viewport.Width, v1.Frame.Width);
  42. //Assert.Equal (t.Viewport.Height, v1.Frame.Height);
  43. };
  44. v2.Initialized += (s, e) =>
  45. {
  46. v2c++;
  47. //Assert.Equal (t.Viewport.Width, v2.Frame.Width);
  48. //Assert.Equal (t.Viewport.Height, v2.Frame.Height);
  49. };
  50. w.Add (v1, v2);
  51. t.Add (w);
  52. Application.Iteration += (s, a) =>
  53. {
  54. var sv1 = new View { Id = "sv1", Width = Dim.Fill (), Height = Dim.Fill () };
  55. sv1.Initialized += (s, e) =>
  56. {
  57. sv1c++;
  58. Assert.NotEqual (t.Frame.Width, sv1.Frame.Width);
  59. Assert.NotEqual (t.Frame.Height, sv1.Frame.Height);
  60. Assert.False (sv1.CanFocus);
  61. //Assert.Throws<InvalidOperationException> (() => sv1.CanFocus = true);
  62. Assert.False (sv1.CanFocus);
  63. };
  64. v1.Add (sv1);
  65. Application.LayoutAndDraw ();
  66. t.Running = false;
  67. };
  68. Application.Run (t);
  69. t.Dispose ();
  70. Application.Shutdown ();
  71. Assert.Equal (1, tc);
  72. Assert.Equal (1, wc);
  73. Assert.Equal (1, v1c);
  74. Assert.Equal (1, v2c);
  75. Assert.Equal (1, sv1c);
  76. Assert.True (t.CanFocus);
  77. Assert.True (w.CanFocus);
  78. Assert.False (v1.CanFocus);
  79. Assert.False (v2.CanFocus);
  80. }
  81. }