Skip to content

Commit e8d2e8e

Browse files
committed
Merge branch 'features/Code_cleanup'
2 parents d668e0a + 601e1ec commit e8d2e8e

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

src/Here.Tests/HereTestsBase.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Collections.Generic;
23

34
namespace Here.Tests
45
{
@@ -19,6 +20,21 @@ public PersonNotEquatable(string name)
1920
}
2021
}
2122

23+
protected class PersonComparable : IComparable<PersonComparable>
24+
{
25+
public string _name;
26+
27+
public PersonComparable(string name)
28+
{
29+
_name = name;
30+
}
31+
32+
public int CompareTo(PersonComparable other)
33+
{
34+
return Comparer<string>.Default.Compare(_name, other._name);
35+
}
36+
}
37+
2238
protected class Person
2339
{
2440
private readonly string _name;

src/Here.Tests/Result/ResultTests.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1518,6 +1518,18 @@ public void ValueResultCompare()
15181518
Assert.AreEqual(0, resultFail3.CompareTo(resultFail1));
15191519
Assert.AreEqual(0, resultFail3.CompareTo((object)resultFail1));
15201520

1521+
// Comparable reference type
1522+
var person1 = new PersonComparable("Jo");
1523+
var person2 = new PersonComparable("John");
1524+
var resultOk4 = Result.Ok(person1);
1525+
var resultOk5 = Result.Ok(person1);
1526+
var resultOk6 = Result.Ok(person2);
1527+
Assert.AreEqual(0, resultOk4.CompareTo(resultOk5));
1528+
Assert.AreEqual(0, resultOk5.CompareTo(resultOk4));
1529+
1530+
Assert.AreEqual(-1, resultOk4.CompareTo(resultOk6));
1531+
Assert.AreEqual(1, resultOk6.CompareTo(resultOk4));
1532+
15211533
// Mixed
15221534
Assert.AreEqual(1, resultOk1.CompareTo(null)); // Null is always the minimal value
15231535
Assert.AreEqual(1, resultWarn1.CompareTo(null)); // Null is always the minimal value
@@ -1705,6 +1717,18 @@ public void CustomValueResultCompare()
17051717
Assert.AreEqual(0, resultFail3.CompareTo(resultFail1));
17061718
Assert.AreEqual(0, resultFail3.CompareTo((object)resultFail1));
17071719

1720+
// Comparable reference type
1721+
var person1 = new PersonComparable("Jo");
1722+
var person2 = new PersonComparable("John");
1723+
var resultOk4 = Result.Ok<PersonComparable, CustomErrorTest>(person1);
1724+
var resultOk5 = Result.Ok<PersonComparable, CustomErrorTest>(person1);
1725+
var resultOk6 = Result.Ok<PersonComparable, CustomErrorTest>(person2);
1726+
Assert.AreEqual(0, resultOk4.CompareTo(resultOk5));
1727+
Assert.AreEqual(0, resultOk5.CompareTo(resultOk4));
1728+
1729+
Assert.AreEqual(-1, resultOk4.CompareTo(resultOk6));
1730+
Assert.AreEqual(1, resultOk6.CompareTo(resultOk4));
1731+
17081732
// Mixed
17091733
Assert.AreEqual(1, resultOk1.CompareTo(null)); // Null is always the minimal value
17101734
Assert.AreEqual(1, resultWarn1.CompareTo(null)); // Null is always the minimal value

0 commit comments

Comments
 (0)