RadioGroupTests.cs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Xunit;
  7. namespace Terminal.Gui.Views {
  8. public class RadioGroupTests {
  9. [Fact]
  10. public void Constructors_Defaults ()
  11. {
  12. var rg = new RadioGroup ();
  13. Assert.True (rg.CanFocus);
  14. Assert.Empty (rg.RadioLabels);
  15. Assert.Equal (0, rg.X);
  16. Assert.Equal (0, rg.Y);
  17. Assert.Equal (0, rg.Width);
  18. Assert.Equal (0, rg.Height);
  19. Assert.Equal (0, rg.SelectedItem);
  20. rg = new RadioGroup (new NStack.ustring [] { "Test" });
  21. Assert.True (rg.CanFocus);
  22. Assert.Single (rg.RadioLabels);
  23. Assert.Equal (0, rg.X);
  24. Assert.Equal (0, rg.Y);
  25. Assert.Equal (7, rg.Width);
  26. Assert.Equal (1, rg.Height);
  27. Assert.Equal (0, rg.SelectedItem);
  28. rg = new RadioGroup (new Rect (1, 2, 20, 5), new NStack.ustring [] { "Test" });
  29. Assert.True (rg.CanFocus);
  30. Assert.Single (rg.RadioLabels);
  31. Assert.Equal (1, rg.X);
  32. Assert.Equal (2, rg.Y);
  33. Assert.Equal (20, rg.Width);
  34. Assert.Equal (5, rg.Height);
  35. Assert.Equal (0, rg.SelectedItem);
  36. rg = new RadioGroup (1, 2, new NStack.ustring [] { "Test" });
  37. Assert.True (rg.CanFocus);
  38. Assert.Single (rg.RadioLabels);
  39. Assert.Equal (1, rg.X);
  40. Assert.Equal (2, rg.Y);
  41. Assert.Equal (7, rg.Width);
  42. Assert.Equal (1, rg.Height);
  43. Assert.Equal (0, rg.SelectedItem);
  44. }
  45. [Fact]
  46. public void Initialize_SelectedItem_With_Minus_One ()
  47. {
  48. var rg = new RadioGroup (new NStack.ustring [] { "Test" }, -1);
  49. Assert.Equal (-1, rg.SelectedItem);
  50. Assert.True (rg.ProcessKey (new KeyEvent (Key.Space, new KeyModifiers ())));
  51. Assert.Equal (0, rg.SelectedItem);
  52. }
  53. [Fact]
  54. public void DisplayMode_Width_Height_HorizontalSpace ()
  55. {
  56. var rg = new RadioGroup (new NStack.ustring [] { "Test", "New Test" });
  57. Assert.Equal (DisplayModeLayout.Vertical, rg.DisplayMode);
  58. Assert.Equal (2, rg.RadioLabels.Length);
  59. Assert.Equal (0, rg.X);
  60. Assert.Equal (0, rg.Y);
  61. Assert.Equal (11, rg.Width);
  62. Assert.Equal (2, rg.Height);
  63. rg.DisplayMode = DisplayModeLayout.Horizontal;
  64. Assert.Equal (DisplayModeLayout.Horizontal, rg.DisplayMode);
  65. Assert.Equal (2, rg.HorizontalSpace);
  66. Assert.Equal (0, rg.X);
  67. Assert.Equal (0, rg.Y);
  68. Assert.Equal (16, rg.Width);
  69. Assert.Equal (1, rg.Height);
  70. rg.HorizontalSpace = 4;
  71. Assert.Equal (DisplayModeLayout.Horizontal, rg.DisplayMode);
  72. Assert.Equal (4, rg.HorizontalSpace);
  73. Assert.Equal (0, rg.X);
  74. Assert.Equal (0, rg.Y);
  75. Assert.Equal (20, rg.Width);
  76. Assert.Equal (1, rg.Height);
  77. }
  78. [Fact]
  79. public void SelectedItemChanged_Event ()
  80. {
  81. var previousSelectedItem = -1;
  82. var selectedItem = -1;
  83. var rg = new RadioGroup (new NStack.ustring [] { "Test", "New Test" });
  84. rg.SelectedItemChanged += (e) => {
  85. previousSelectedItem = e.PreviousSelectedItem;
  86. selectedItem = e.SelectedItem;
  87. };
  88. rg.SelectedItem = 1;
  89. Assert.Equal (0, previousSelectedItem);
  90. Assert.Equal (selectedItem, rg.SelectedItem);
  91. }
  92. [Fact]
  93. public void KeyBindings_Command ()
  94. {
  95. var rg = new RadioGroup (new NStack.ustring [] { "Test", "New Test" });
  96. Assert.True (rg.ProcessKey (new KeyEvent (Key.CursorUp, new KeyModifiers ())));
  97. Assert.True (rg.ProcessKey (new KeyEvent (Key.CursorDown, new KeyModifiers ())));
  98. Assert.True (rg.ProcessKey (new KeyEvent (Key.Home, new KeyModifiers ())));
  99. Assert.True (rg.ProcessKey (new KeyEvent (Key.End, new KeyModifiers ())));
  100. Assert.True (rg.ProcessKey (new KeyEvent (Key.Space, new KeyModifiers ())));
  101. Assert.Equal (1, rg.SelectedItem);
  102. }
  103. }
  104. }