NumericUpDownTests.cs 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. using System.Globalization;
  2. using Xunit.Abstractions;
  3. namespace Terminal.Gui.ViewsTests;
  4. public class NumericUpDownTests (ITestOutputHelper _output)
  5. {
  6. [Fact]
  7. public void WhenCreated_ShouldHaveDefaultValues_int ()
  8. {
  9. NumericUpDown<int> numericUpDown = new ();
  10. Assert.Equal (0, numericUpDown.Value);
  11. Assert.Equal (1, numericUpDown.Increment);
  12. }
  13. [Fact]
  14. public void WhenCreated_ShouldHaveDefaultValues_long ()
  15. {
  16. NumericUpDown<long> numericUpDown = new ();
  17. Assert.Equal (0, numericUpDown.Value);
  18. Assert.Equal (1, numericUpDown.Increment);
  19. }
  20. [Fact]
  21. public void WhenCreated_ShouldHaveDefaultValues_float ()
  22. {
  23. NumericUpDown<float> numericUpDown = new ();
  24. Assert.Equal (0F, numericUpDown.Value);
  25. Assert.Equal (1.0F, numericUpDown.Increment);
  26. }
  27. [Fact]
  28. public void WhenCreated_ShouldHaveDefaultValues_double ()
  29. {
  30. NumericUpDown<double> numericUpDown = new ();
  31. Assert.Equal (0F, numericUpDown.Value);
  32. Assert.Equal (1.0F, numericUpDown.Increment);
  33. }
  34. [Fact]
  35. public void WhenCreated_ShouldHaveDefaultValues_decimal ()
  36. {
  37. NumericUpDown<decimal> numericUpDown = new ();
  38. Assert.Equal (0, numericUpDown.Value);
  39. Assert.Equal (1, numericUpDown.Increment);
  40. }
  41. [Fact]
  42. public void WhenCreatedWithCustomValues_ShouldHaveCustomValues_int ()
  43. {
  44. NumericUpDown<int> numericUpDown = new()
  45. {
  46. Value = 10,
  47. Increment = 2
  48. };
  49. Assert.Equal (10, numericUpDown.Value);
  50. Assert.Equal (2, numericUpDown.Increment);
  51. }
  52. [Fact]
  53. public void WhenCreatedWithCustomValues_ShouldHaveCustomValues_float ()
  54. {
  55. NumericUpDown<float> numericUpDown = new()
  56. {
  57. Value = 10.5F,
  58. Increment = 2.5F
  59. };
  60. Assert.Equal (10.5F, numericUpDown.Value);
  61. Assert.Equal (2.5F, numericUpDown.Increment);
  62. }
  63. [Fact]
  64. public void WhenCreatedWithCustomValues_ShouldHaveCustomValues_decimal ()
  65. {
  66. NumericUpDown<decimal> numericUpDown = new ()
  67. {
  68. Value = 10.5m,
  69. Increment = 2.5m
  70. };
  71. Assert.Equal (10.5m, numericUpDown.Value);
  72. Assert.Equal (2.5m, numericUpDown.Increment);
  73. }
  74. [Fact]
  75. public void WhenCreatedWithInvalidType_ShouldThrowInvalidOperationException ()
  76. {
  77. Assert.Throws<InvalidOperationException> (() => new NumericUpDown<string> ());
  78. }
  79. [Fact]
  80. public void WhenCreatedWithInvalidTypeObject_ShouldNotThrowInvalidOperationException ()
  81. {
  82. Exception exception = Record.Exception (() => new NumericUpDown<object> ());
  83. Assert.Null (exception);
  84. }
  85. [Fact]
  86. public void WhenCreated_ShouldHaveDefaultWidthAndHeight_int ()
  87. {
  88. NumericUpDown<int> numericUpDown = new ();
  89. numericUpDown.SetRelativeLayout (Application.Screen.Size);
  90. Assert.Equal (3, numericUpDown.Frame.Width);
  91. Assert.Equal (1, numericUpDown.Frame.Height);
  92. }
  93. [Fact]
  94. public void WhenCreated_ShouldHaveDefaultWidthAndHeight_float ()
  95. {
  96. NumericUpDown<float> numericUpDown = new ();
  97. numericUpDown.SetRelativeLayout (Application.Screen.Size);
  98. Assert.Equal (3, numericUpDown.Frame.Width);
  99. Assert.Equal (1, numericUpDown.Frame.Height);
  100. }
  101. [Fact]
  102. public void WhenCreated_ShouldHaveDefaultWidthAndHeight_double ()
  103. {
  104. NumericUpDown<double> numericUpDown = new ();
  105. numericUpDown.SetRelativeLayout (Application.Screen.Size);
  106. Assert.Equal (3, numericUpDown.Frame.Width);
  107. Assert.Equal (1, numericUpDown.Frame.Height);
  108. }
  109. [Fact]
  110. public void WhenCreated_ShouldHaveDefaultWidthAndHeight_long ()
  111. {
  112. NumericUpDown<long> numericUpDown = new ();
  113. numericUpDown.SetRelativeLayout (Application.Screen.Size);
  114. Assert.Equal (3, numericUpDown.Frame.Width);
  115. Assert.Equal (1, numericUpDown.Frame.Height);
  116. }
  117. [Fact]
  118. public void WhenCreated_ShouldHaveDefaultWidthAndHeight_decimal ()
  119. {
  120. NumericUpDown<decimal> numericUpDown = new ();
  121. numericUpDown.SetRelativeLayout (Application.Screen.Size);
  122. Assert.Equal (3, numericUpDown.Frame.Width);
  123. Assert.Equal (1, numericUpDown.Frame.Height);
  124. }
  125. [Fact]
  126. public void WhenCreated_Text_Should_Be_Correct_int ()
  127. {
  128. NumericUpDown<int> numericUpDown = new ();
  129. Assert.Equal ("0", numericUpDown.Text);
  130. }
  131. [Fact]
  132. public void WhenCreated_Text_Should_Be_Correct_float ()
  133. {
  134. NumericUpDown<float> numericUpDown = new ();
  135. Assert.Equal ("0", numericUpDown.Text);
  136. }
  137. [Fact]
  138. public void Format_Default ()
  139. {
  140. NumericUpDown<float> numericUpDown = new ();
  141. Assert.Equal ("{0}", numericUpDown.Format);
  142. }
  143. [Theory]
  144. [InlineData (0F, "{0}", "0")]
  145. [InlineData (1.1F, "{0}", "1.1")]
  146. [InlineData (0F, "{0:0%}", "0%")]
  147. [InlineData (.75F, "{0:0%}", "75%")]
  148. public void Format_decimal (float value, string format, string expectedText)
  149. {
  150. CultureInfo currentCulture = CultureInfo.CurrentCulture;
  151. CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;
  152. NumericUpDown<float> numericUpDown = new ();
  153. numericUpDown.Format = format;
  154. numericUpDown.Value = value;
  155. Assert.Equal (expectedText, numericUpDown.Text);
  156. CultureInfo.CurrentCulture = currentCulture;
  157. }
  158. [Theory]
  159. [InlineData (0, "{0}", "0")]
  160. [InlineData (11, "{0}", "11")]
  161. [InlineData (-1, "{0}", "-1")]
  162. [InlineData (911, "{0:X}", "38F")]
  163. [InlineData (911, "0x{0:X04}", "0x038F")]
  164. public void Format_int (int value, string format, string expectedText)
  165. {
  166. CultureInfo currentCulture = CultureInfo.CurrentCulture;
  167. CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;
  168. NumericUpDown<int> numericUpDown = new ();
  169. numericUpDown.Format = format;
  170. numericUpDown.Value = value;
  171. Assert.Equal (expectedText, numericUpDown.Text);
  172. CultureInfo.CurrentCulture = currentCulture;
  173. }
  174. [Fact]
  175. public void KeyDown_CursorUp_Increments ()
  176. {
  177. NumericUpDown<int> numericUpDown = new ();
  178. numericUpDown.NewKeyDownEvent (Key.CursorUp);
  179. Assert.Equal (1, numericUpDown.Value);
  180. }
  181. [Fact]
  182. public void KeyDown_CursorDown_Decrements ()
  183. {
  184. NumericUpDown<int> numericUpDown = new ();
  185. numericUpDown.NewKeyDownEvent (Key.CursorDown);
  186. Assert.Equal (-1, numericUpDown.Value);
  187. }
  188. }