@@ -1518,6 +1518,18 @@ public void ValueResultCompare()
1518
1518
Assert . AreEqual ( 0 , resultFail3 . CompareTo ( resultFail1 ) ) ;
1519
1519
Assert . AreEqual ( 0 , resultFail3 . CompareTo ( ( object ) resultFail1 ) ) ;
1520
1520
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
+
1521
1533
// Mixed
1522
1534
Assert . AreEqual ( 1 , resultOk1 . CompareTo ( null ) ) ; // Null is always the minimal value
1523
1535
Assert . AreEqual ( 1 , resultWarn1 . CompareTo ( null ) ) ; // Null is always the minimal value
@@ -1705,6 +1717,18 @@ public void CustomValueResultCompare()
1705
1717
Assert . AreEqual ( 0 , resultFail3 . CompareTo ( resultFail1 ) ) ;
1706
1718
Assert . AreEqual ( 0 , resultFail3 . CompareTo ( ( object ) resultFail1 ) ) ;
1707
1719
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
+
1708
1732
// Mixed
1709
1733
Assert . AreEqual ( 1 , resultOk1 . CompareTo ( null ) ) ; // Null is always the minimal value
1710
1734
Assert . AreEqual ( 1 , resultWarn1 . CompareTo ( null ) ) ; // Null is always the minimal value
0 commit comments