A cross-platform UI framework for .NET
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

95 lines
2.5 KiB

using Xunit;
namespace Avalonia.Controls.UnitTests
{
public class IndexPathTests
{
[Fact]
public void Simple_Index()
{
var a = new IndexPath(1);
Assert.Equal(1, a.GetSize());
Assert.Equal(1, a.GetAt(0));
}
[Fact]
public void Equal_Paths()
{
var a = new IndexPath(1);
var b = new IndexPath(1);
Assert.True(a == b);
Assert.False(a != b);
Assert.True(a.Equals(b));
Assert.Equal(0, a.CompareTo(b));
Assert.Equal(a.GetHashCode(), b.GetHashCode());
}
[Fact]
public void Unequal_Paths()
{
var a = new IndexPath(1);
var b = new IndexPath(2);
Assert.False(a == b);
Assert.True(a != b);
Assert.False(a.Equals(b));
Assert.Equal(-1, a.CompareTo(b));
Assert.NotEqual(a.GetHashCode(), b.GetHashCode());
}
[Fact]
public void Equal_Null_Path()
{
var a = new IndexPath(null);
var b = new IndexPath(null);
Assert.True(a == b);
Assert.False(a != b);
Assert.True(a.Equals(b));
Assert.Equal(0, a.CompareTo(b));
Assert.Equal(a.GetHashCode(), b.GetHashCode());
}
[Fact]
public void Unequal_Null_Path()
{
var a = new IndexPath(null);
var b = new IndexPath(2);
Assert.False(a == b);
Assert.True(a != b);
Assert.False(a.Equals(b));
Assert.Equal(-1, a.CompareTo(b));
Assert.NotEqual(a.GetHashCode(), b.GetHashCode());
}
[Fact]
public void Default_Is_Null_Path()
{
var a = new IndexPath(null);
var b = default(IndexPath);
Assert.True(a == b);
Assert.False(a != b);
Assert.True(a.Equals(b));
Assert.Equal(0, a.CompareTo(b));
Assert.Equal(a.GetHashCode(), b.GetHashCode());
}
[Fact]
public void Null_Equality()
{
var a = new IndexPath(null);
var b = new IndexPath(1);
// Implementing operator == on a struct automatically implements an operator which
// accepts null, so make sure this does something useful.
Assert.True(a == null);
Assert.False(a != null);
Assert.False(b == null);
Assert.True(b != null);
}
}
}