ThicknessTests.cs 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281
  1. using Terminal.Gui;
  2. using NStack;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Xml.Linq;
  6. using Terminal.Gui.Graphs;
  7. using Xunit;
  8. using Xunit.Abstractions;
  9. //using GraphViewTests = Terminal.Gui.Views.GraphViewTests;
  10. // Alias Console to MockConsole so we don't accidentally use Console
  11. using Console = Terminal.Gui.FakeConsole;
  12. namespace Terminal.Gui.CoreTests {
  13. public class ThicknessTests {
  14. readonly ITestOutputHelper output;
  15. public ThicknessTests (ITestOutputHelper output)
  16. {
  17. this.output = output;
  18. }
  19. [Fact ()]
  20. public void Constructor_Defaults ()
  21. {
  22. var t = new Thickness ();
  23. Assert.Equal (0, t.Left);
  24. Assert.Equal (0, t.Top);
  25. Assert.Equal (0, t.Right);
  26. Assert.Equal (0, t.Bottom);
  27. }
  28. [Fact ()]
  29. public void Empty_Is_empty ()
  30. {
  31. var t = Thickness.Empty;
  32. Assert.Equal (0, t.Left);
  33. Assert.Equal (0, t.Top);
  34. Assert.Equal (0, t.Right);
  35. Assert.Equal (0, t.Bottom);
  36. }
  37. [Fact ()]
  38. public void Constructor_Width ()
  39. {
  40. var t = new Thickness (1);
  41. Assert.Equal (1, t.Left);
  42. Assert.Equal (1, t.Top);
  43. Assert.Equal (1, t.Right);
  44. Assert.Equal (1, t.Bottom);
  45. }
  46. [Fact ()]
  47. public void Constructor_params ()
  48. {
  49. var t = new Thickness (1, 2, 3, 4);
  50. Assert.Equal (1, t.Left);
  51. Assert.Equal (2, t.Top);
  52. Assert.Equal (3, t.Right);
  53. Assert.Equal (4, t.Bottom);
  54. t = new Thickness (0, 0, 0, 0);
  55. Assert.Equal (0, t.Left);
  56. Assert.Equal (0, t.Top);
  57. Assert.Equal (0, t.Right);
  58. Assert.Equal (0, t.Bottom);
  59. t = new Thickness (-1, 0, 0, 0);
  60. Assert.Equal (-1, t.Left);
  61. Assert.Equal (0, t.Top);
  62. Assert.Equal (0, t.Right);
  63. Assert.Equal (0, t.Bottom);
  64. }
  65. [Fact ()]
  66. public void Vertical_get ()
  67. {
  68. var t = new Thickness (1, 2, 3, 4);
  69. Assert.Equal (6, t.Vertical);
  70. t = new Thickness (0);
  71. Assert.Equal (0, t.Vertical);
  72. }
  73. [Fact ()]
  74. public void Horizontal_get ()
  75. {
  76. var t = new Thickness (1, 2, 3, 4);
  77. Assert.Equal (4, t.Horizontal);
  78. t = new Thickness (0);
  79. Assert.Equal (0, t.Horizontal);
  80. }
  81. [Fact ()]
  82. public void Vertical_set ()
  83. {
  84. var t = new Thickness ();
  85. t.Vertical = 10;
  86. Assert.Equal (10, t.Vertical);
  87. Assert.Equal (0, t.Left);
  88. Assert.Equal (5, t.Top);
  89. Assert.Equal (0, t.Right);
  90. Assert.Equal (5, t.Bottom);
  91. Assert.Equal (0, t.Horizontal);
  92. t.Vertical = 11;
  93. Assert.Equal (10, t.Vertical);
  94. Assert.Equal (0, t.Left);
  95. Assert.Equal (5, t.Top);
  96. Assert.Equal (0, t.Right);
  97. Assert.Equal (5, t.Bottom);
  98. Assert.Equal (0, t.Horizontal);
  99. t.Vertical = 1;
  100. Assert.Equal (0, t.Vertical);
  101. Assert.Equal (0, t.Left);
  102. Assert.Equal (0, t.Top);
  103. Assert.Equal (0, t.Right);
  104. Assert.Equal (0, t.Bottom);
  105. Assert.Equal (0, t.Horizontal);
  106. }
  107. [Fact ()]
  108. public void Horizontal_set ()
  109. {
  110. var t = new Thickness ();
  111. t.Horizontal = 10;
  112. Assert.Equal (10, t.Horizontal);
  113. Assert.Equal (5, t.Left);
  114. Assert.Equal (0, t.Top);
  115. Assert.Equal (5, t.Right);
  116. Assert.Equal (0, t.Bottom);
  117. Assert.Equal (0, t.Vertical);
  118. t.Horizontal = 11;
  119. Assert.Equal (10, t.Horizontal);
  120. Assert.Equal (5, t.Left);
  121. Assert.Equal (0, t.Top);
  122. Assert.Equal (5, t.Right);
  123. Assert.Equal (0, t.Bottom);
  124. Assert.Equal (0, t.Vertical);
  125. t.Horizontal = 1;
  126. Assert.Equal (0, t.Horizontal);
  127. Assert.Equal (0, t.Left);
  128. Assert.Equal (0, t.Top);
  129. Assert.Equal (0, t.Right);
  130. Assert.Equal (0, t.Bottom);
  131. Assert.Equal (0, t.Vertical);
  132. }
  133. [Fact ()]
  134. public void GetInsideTest ()
  135. {
  136. var t = new Thickness (1, 2, 3, 4);
  137. var r = new Rect (10, 20, 30, 40);
  138. var r2 = t.GetInside (r);
  139. Assert.Equal (11, r2.X);
  140. Assert.Equal (22, r2.Y);
  141. Assert.Equal (26, r2.Width);
  142. Assert.Equal (34, r2.Height);
  143. }
  144. [Fact (), AutoInitShutdown]
  145. public void DrawTests ()
  146. {
  147. ((FakeDriver)Application.Driver).SetBufferSize (60, 60);
  148. var t = new Thickness (0, 0, 0, 0);
  149. var r = new Rect (5, 5, 40, 15);
  150. ConsoleDriver.Diagnostics |= ConsoleDriver.DiagnosticFlags.FramePadding;
  151. Application.Driver.FillRect (new Rect (0, 0, Application.Driver.Cols, Application.Driver.Rows), ' ');
  152. t.Draw (r, "Test");
  153. ConsoleDriver.Diagnostics = ConsoleDriver.DiagnosticFlags.Off;
  154. TestHelpers.AssertDriverContentsWithFrameAre (@"
  155. Test (Left=0,Top=0,Right=0,Bottom=0)", output);
  156. t = new Thickness (1, 1, 1, 1);
  157. r = new Rect (5, 5, 40, 15);
  158. ConsoleDriver.Diagnostics |= ConsoleDriver.DiagnosticFlags.FramePadding;
  159. Application.Driver.FillRect (new Rect (0, 0, Application.Driver.Cols, Application.Driver.Rows), ' ');
  160. t.Draw (r, "Test");
  161. ConsoleDriver.Diagnostics = ConsoleDriver.DiagnosticFlags.Off;
  162. TestHelpers.AssertDriverContentsWithFrameAre (@"
  163. TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
  164. T T
  165. T T
  166. T T
  167. T T
  168. T T
  169. T T
  170. T T
  171. T T
  172. T T
  173. T T
  174. T T
  175. T T
  176. T T
  177. TTTest (Left=1,Top=1,Right=1,Bottom=1)TT", output);
  178. t = new Thickness (1, 2, 3, 4);
  179. r = new Rect (5, 5, 40, 15);
  180. ConsoleDriver.Diagnostics |= ConsoleDriver.DiagnosticFlags.FramePadding;
  181. Application.Driver.FillRect (new Rect (0,0, Application.Driver.Cols, Application.Driver.Rows), ' ');
  182. t.Draw (r, "Test");
  183. ConsoleDriver.Diagnostics = ConsoleDriver.DiagnosticFlags.Off;
  184. TestHelpers.AssertDriverContentsWithFrameAre (@"
  185. TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
  186. TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
  187. T TTT
  188. T TTT
  189. T TTT
  190. T TTT
  191. T TTT
  192. T TTT
  193. T TTT
  194. T TTT
  195. T TTT
  196. TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
  197. TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
  198. TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
  199. TTTest (Left=1,Top=2,Right=3,Bottom=4)TT", output);
  200. t = new Thickness (-1, 1, 1, 1);
  201. r = new Rect (5, 5, 40, 15);
  202. ConsoleDriver.Diagnostics |= ConsoleDriver.DiagnosticFlags.FramePadding;
  203. Application.Driver.FillRect (new Rect (0, 0, Application.Driver.Cols, Application.Driver.Rows), ' ');
  204. t.Draw (r, "Test");
  205. ConsoleDriver.Diagnostics = ConsoleDriver.DiagnosticFlags.Off;
  206. TestHelpers.AssertDriverContentsWithFrameAre (@"
  207. TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
  208. T
  209. T
  210. T
  211. T
  212. T
  213. T
  214. T
  215. T
  216. T
  217. T
  218. T
  219. T
  220. T
  221. TTest (Left=-1,Top=1,Right=1,Bottom=1)TT", output);
  222. }
  223. [Fact ()]
  224. public void EqualsTest ()
  225. {
  226. var t = new Thickness (1, 2, 3, 4);
  227. var t2 = new Thickness (1, 2, 3, 4);
  228. Assert.True (t.Equals (t2));
  229. Assert.True (t == t2);
  230. Assert.False (t != t2);
  231. }
  232. [Fact ()]
  233. public void ToStringTest ()
  234. {
  235. var t = new Thickness (1, 2, 3, 4);
  236. Assert.Equal ("(Left=1,Top=2,Right=3,Bottom=4)", t.ToString ());
  237. }
  238. [Fact ()]
  239. public void GetHashCodeTest ()
  240. {
  241. var t = new Thickness (1, 2, 3, 4);
  242. Assert.Equal (t.GetHashCode (), t.GetHashCode ());
  243. }
  244. }
  245. }