IndexPathTests.cs 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. using Xunit;
  2. namespace Avalonia.Controls.UnitTests
  3. {
  4. public class IndexPathTests
  5. {
  6. [Fact]
  7. public void Simple_Index()
  8. {
  9. var a = new IndexPath(1);
  10. Assert.Equal(1, a.GetSize());
  11. Assert.Equal(1, a.GetAt(0));
  12. }
  13. [Fact]
  14. public void Equal_Paths()
  15. {
  16. var a = new IndexPath(1);
  17. var b = new IndexPath(1);
  18. Assert.True(a == b);
  19. Assert.False(a != b);
  20. Assert.True(a.Equals(b));
  21. Assert.Equal(0, a.CompareTo(b));
  22. Assert.Equal(a.GetHashCode(), b.GetHashCode());
  23. }
  24. [Fact]
  25. public void Unequal_Paths()
  26. {
  27. var a = new IndexPath(1);
  28. var b = new IndexPath(2);
  29. Assert.False(a == b);
  30. Assert.True(a != b);
  31. Assert.False(a.Equals(b));
  32. Assert.Equal(-1, a.CompareTo(b));
  33. Assert.NotEqual(a.GetHashCode(), b.GetHashCode());
  34. }
  35. [Fact]
  36. public void Equal_Null_Path()
  37. {
  38. var a = new IndexPath(null);
  39. var b = new IndexPath(null);
  40. Assert.True(a == b);
  41. Assert.False(a != b);
  42. Assert.True(a.Equals(b));
  43. Assert.Equal(0, a.CompareTo(b));
  44. Assert.Equal(a.GetHashCode(), b.GetHashCode());
  45. }
  46. [Fact]
  47. public void Unequal_Null_Path()
  48. {
  49. var a = new IndexPath(null);
  50. var b = new IndexPath(2);
  51. Assert.False(a == b);
  52. Assert.True(a != b);
  53. Assert.False(a.Equals(b));
  54. Assert.Equal(-1, a.CompareTo(b));
  55. Assert.NotEqual(a.GetHashCode(), b.GetHashCode());
  56. }
  57. [Fact]
  58. public void Default_Is_Null_Path()
  59. {
  60. var a = new IndexPath(null);
  61. var b = default(IndexPath);
  62. Assert.True(a == b);
  63. Assert.False(a != b);
  64. Assert.True(a.Equals(b));
  65. Assert.Equal(0, a.CompareTo(b));
  66. Assert.Equal(a.GetHashCode(), b.GetHashCode());
  67. }
  68. [Fact]
  69. public void Null_Equality()
  70. {
  71. var a = new IndexPath(null);
  72. var b = new IndexPath(1);
  73. // Implementing operator == on a struct automatically implements an operator which
  74. // accepts null, so make sure this does something useful.
  75. Assert.True(a == null);
  76. Assert.False(a != null);
  77. Assert.False(b == null);
  78. Assert.True(b != null);
  79. }
  80. }
  81. }