RadioButtonTests.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using Avalonia.Markup.Data;
  2. using Avalonia.UnitTests;
  3. using Xunit;
  4. namespace Avalonia.Controls.UnitTests
  5. {
  6. public class RadioButtonTests
  7. {
  8. [Theory]
  9. [InlineData(false)]
  10. [InlineData(true)]
  11. public void Indeterminate_RadioButton_Is_Not_Unchecked_After_Checking_Other_Radio_Button(bool isThreeState)
  12. {
  13. var panel = new Panel();
  14. var radioButton1 = new RadioButton();
  15. radioButton1.IsThreeState = false;
  16. radioButton1.IsChecked = false;
  17. var radioButton2 = new RadioButton();
  18. radioButton2.IsThreeState = isThreeState;
  19. radioButton2.IsChecked = null;
  20. panel.Children.Add(radioButton1);
  21. panel.Children.Add(radioButton2);
  22. Assert.Null(radioButton2.IsChecked);
  23. radioButton1.IsChecked = true;
  24. Assert.True(radioButton1.IsChecked);
  25. Assert.Null(radioButton2.IsChecked);
  26. }
  27. [Fact]
  28. public void RadioButton_In_Same_Group_Is_Unchecked()
  29. {
  30. var parent = new Panel();
  31. var panel1 = new Panel();
  32. var panel2 = new Panel();
  33. parent.Children.Add(panel1);
  34. parent.Children.Add(panel2);
  35. var radioButton1 = new RadioButton();
  36. radioButton1.GroupName = "A";
  37. radioButton1.IsChecked = false;
  38. var radioButton2 = new RadioButton();
  39. radioButton2.GroupName = "A";
  40. radioButton2.IsChecked = true;
  41. var radioButton3 = new RadioButton();
  42. radioButton3.GroupName = "A";
  43. radioButton3.IsChecked = false;
  44. panel1.Children.Add(radioButton1);
  45. panel1.Children.Add(radioButton2);
  46. panel2.Children.Add(radioButton3);
  47. Assert.False(radioButton1.IsChecked);
  48. Assert.True(radioButton2.IsChecked);
  49. Assert.False(radioButton3.IsChecked);
  50. radioButton3.IsChecked = true;
  51. Assert.False(radioButton1.IsChecked);
  52. Assert.False(radioButton2.IsChecked);
  53. Assert.True(radioButton3.IsChecked);
  54. }
  55. }
  56. }