NumericUpDownTests.cs 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  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 NumericUpDown<int>
  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 NumericUpDown<float>
  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 NumericUpDown<decimal>
  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. NumericUpDown<object> numericUpDown = new NumericUpDown<object> ();
  83. Assert.Null (numericUpDown.Value);
  84. Assert.Equal (1, numericUpDown.Increment);
  85. }
  86. [Fact]
  87. public void WhenCreated_ShouldHaveDefaultWidthAndHeight_int ()
  88. {
  89. NumericUpDown<int> numericUpDown = new NumericUpDown<int> ();
  90. numericUpDown.SetRelativeLayout (Application.Screen.Size);
  91. Assert.Equal (3, numericUpDown.Frame.Width);
  92. Assert.Equal (1, numericUpDown.Frame.Height);
  93. }
  94. [Fact]
  95. public void WhenCreated_ShouldHaveDefaultWidthAndHeight_float ()
  96. {
  97. NumericUpDown<float> numericUpDown = new NumericUpDown<float> ();
  98. numericUpDown.SetRelativeLayout (Application.Screen.Size);
  99. Assert.Equal (3, numericUpDown.Frame.Width);
  100. Assert.Equal (1, numericUpDown.Frame.Height);
  101. }
  102. [Fact]
  103. public void WhenCreated_ShouldHaveDefaultWidthAndHeight_double ()
  104. {
  105. NumericUpDown<double> numericUpDown = new NumericUpDown<double> ();
  106. numericUpDown.SetRelativeLayout (Application.Screen.Size);
  107. Assert.Equal (3, numericUpDown.Frame.Width);
  108. Assert.Equal (1, numericUpDown.Frame.Height);
  109. }
  110. [Fact]
  111. public void WhenCreated_ShouldHaveDefaultWidthAndHeight_long ()
  112. {
  113. NumericUpDown<long> numericUpDown = new NumericUpDown<long> ();
  114. numericUpDown.SetRelativeLayout (Application.Screen.Size);
  115. Assert.Equal (3, numericUpDown.Frame.Width);
  116. Assert.Equal (1, numericUpDown.Frame.Height);
  117. }
  118. [Fact]
  119. public void WhenCreated_ShouldHaveDefaultWidthAndHeight_decimal ()
  120. {
  121. NumericUpDown<decimal> numericUpDown = new NumericUpDown<decimal> ();
  122. numericUpDown.SetRelativeLayout (Application.Screen.Size);
  123. Assert.Equal (3, numericUpDown.Frame.Width);
  124. Assert.Equal (1, numericUpDown.Frame.Height);
  125. }
  126. [Fact]
  127. public void WhenCreated_Text_Should_Be_Correct_int ()
  128. {
  129. NumericUpDown<int> numericUpDown = new NumericUpDown<int> ();
  130. Assert.Equal ("0", numericUpDown.Text);
  131. }
  132. [Fact]
  133. public void WhenCreated_Text_Should_Be_Correct_float ()
  134. {
  135. NumericUpDown<float> numericUpDown = new NumericUpDown<float> ();
  136. Assert.Equal ("0", numericUpDown.Text);
  137. }
  138. [Fact]
  139. public void Format_Default ()
  140. {
  141. NumericUpDown<float> numericUpDown = new NumericUpDown<float> ();
  142. Assert.Equal ("{0}", numericUpDown.Format);
  143. }
  144. [Theory]
  145. [InlineData (0F, "{0}", "0")]
  146. [InlineData (1.1F, "{0}", "1.1")]
  147. [InlineData (0F, "{0:0%}", "0%")]
  148. [InlineData (.75F, "{0:0%}", "75%")]
  149. public void Format_decimal (float value, string format, string expectedText)
  150. {
  151. CultureInfo currentCulture = CultureInfo.CurrentCulture;
  152. CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;
  153. NumericUpDown<float> numericUpDown = new NumericUpDown<float> ();
  154. numericUpDown.Format = format;
  155. numericUpDown.Value = value;
  156. Assert.Equal (expectedText, numericUpDown.Text);
  157. CultureInfo.CurrentCulture = currentCulture;
  158. }
  159. [Theory]
  160. [InlineData (0, "{0}", "0")]
  161. [InlineData (11, "{0}", "11")]
  162. [InlineData (-1, "{0}", "-1")]
  163. [InlineData (911, "{0:X}", "38F")]
  164. [InlineData (911, "0x{0:X04}", "0x038F")]
  165. public void Format_int (int value, string format, string expectedText)
  166. {
  167. CultureInfo currentCulture = CultureInfo.CurrentCulture;
  168. CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;
  169. NumericUpDown<int> numericUpDown = new NumericUpDown<int> ();
  170. numericUpDown.Format = format;
  171. numericUpDown.Value = value;
  172. Assert.Equal (expectedText, numericUpDown.Text);
  173. CultureInfo.CurrentCulture = currentCulture;
  174. }
  175. [Fact]
  176. public void KeDown_CursorUp_Increments ()
  177. {
  178. NumericUpDown<int> numericUpDown = new NumericUpDown<int> ();
  179. numericUpDown.NewKeyDownEvent (Key.CursorUp);
  180. Assert.Equal (1, numericUpDown.Value);
  181. }
  182. [Fact]
  183. public void KeyDown_CursorDown_Decrements ()
  184. {
  185. NumericUpDown<int> numericUpDown = new NumericUpDown<int> ();
  186. numericUpDown.NewKeyDownEvent (Key.CursorDown);
  187. Assert.Equal (-1, numericUpDown.Value);
  188. }
  189. }