Skip to content

Commit 40b435e

Browse files
committed
address issue 144 (google code issue tracker) -- OrderingComparison doesn't describe mismatch of comparables that return values other than (-1,0,1)
1 parent 9a85eff commit 40b435e

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

CHANGES.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
* Fix issue 152 - Factory classes missing from matchers.xml
1010

11+
* Fix issue 144 - OrderingComparison doesn't describe mismatch of comparables that return values other than (-1,0,1)
12+
1113
* Fix issue 134 - DescribedAs does not delegate describeMismatch
1214

1315
* Fix issue 106 - deprecation warning when writing custom matchers

hamcrest-library/src/main/java/org/hamcrest/number/OrderingComparison.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public void describeTo(Description description) {
5151
}
5252

5353
private static String asText(int comparison) {
54-
return comparisonDescriptions[comparison + 1];
54+
return comparisonDescriptions[signum(comparison) + 1];
5555
}
5656

5757
/**

hamcrest-unit-test/src/main/java/org/hamcrest/number/OrderingComparisonTest.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,19 @@ public void testComparesBigDecimalsWithDifferentScalesCorrectlyForIssue20() {
6464
assertThat(new BigDecimal(10), greaterThanOrEqualTo(new BigDecimal("10.0")));
6565
assertThat(new BigDecimal("2"), comparesEqualTo(new BigDecimal("2.000")));
6666
}
67+
68+
public void testComparesCustomTypesWhoseCompareToReturnsValuesGreaterThatOne() {
69+
assertThat(new CustomInt(5), lessThan(new CustomInt(10)));
70+
}
71+
72+
private static final class CustomInt implements Comparable<CustomInt> {
73+
private final int value;
74+
public CustomInt(int value) {
75+
this.value = value;
76+
}
77+
78+
public int compareTo(CustomInt other) {
79+
return value - other.value;
80+
}
81+
}
6782
}

0 commit comments

Comments
 (0)