Add CompareTo tests and make changes

This commit is contained in:
Matt Nadareski
2025-01-08 10:32:11 -05:00
parent bdfbb35160
commit 8cf360a747
2 changed files with 71 additions and 33 deletions

View File

@@ -128,7 +128,59 @@ namespace SabreTools.DatItems.Test
#region CompareTo
// TODO: Implement CompareTo tests
[Fact]
public void CompareTo_NullOther_Returns1()
{
DatItem self = new Rom();
DatItem? other = null;
int actual = self.CompareTo(other);
Assert.Equal(1, actual);
}
[Fact]
public void CompareTo_DifferentOther_Returns1()
{
DatItem self = new Rom();
self.SetName("name");
DatItem? other = new Disk();
other.SetName("name");
int actual = self.CompareTo(other);
Assert.Equal(1, actual);
}
[Fact]
public void CompareTo_Empty_Returns1()
{
DatItem self = new Rom();
DatItem? other = new Rom();
int actual = self.CompareTo(other);
Assert.Equal(1, actual);
}
[Theory]
[InlineData(null, null, 0)]
[InlineData("name", null, 1)]
[InlineData("name", "other", -1)]
[InlineData(null, "name", -1)]
[InlineData("other", "name", 1)]
[InlineData("name", "name", 0)]
public void CompareTo_NamesOnly(string? selfName, string? otherName, int expected)
{
DatItem self = new Rom();
self.SetName(selfName);
self.SetFieldValue(Models.Metadata.Rom.CRCKey, "DEADBEEF");
DatItem? other = new Rom();
other.SetName(otherName);
other.SetFieldValue(Models.Metadata.Rom.CRCKey, "DEADBEEF");
int actual = self.CompareTo(other);
Assert.Equal(expected, actual);
}
#endregion

View File

@@ -161,8 +161,6 @@ namespace SabreTools.DatItems
if (other == null)
return 1;
try
{
// Get the names to avoid changing values
string? selfName = GetName();
string? otherName = other.GetName();
@@ -175,11 +173,6 @@ namespace SabreTools.DatItems
// If `selfName` is null, Compare will return < 0
return string.Compare(selfName, otherName, StringComparison.Ordinal);
}
catch
{
return 1;
}
}
/// <summary>
/// Determine if an item is a duplicate using partial matching logic
@@ -558,8 +551,6 @@ namespace SabreTools.DatItems
if (other == null)
return 1;
try
{
// Get the names to avoid changing values
string? selfName = GetName();
string? otherName = other.GetName();
@@ -572,11 +563,6 @@ namespace SabreTools.DatItems
// If `selfName` is null, Compare will return < 0
return string.Compare(selfName, otherName, StringComparison.Ordinal);
}
catch
{
return 1;
}
}
/// <summary>
/// Determine if an item is a duplicate using partial matching logic