blob: 5953bd0bf19817ce61f495ecabb97c228da2300e [file] [log] [blame]
package org.hamcrest.number;
import org.hamcrest.AbstractMatcherTest;
import org.hamcrest.Matcher;
import java.math.BigDecimal;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.IsNot.not;
import static org.hamcrest.number.OrderingComparison.*;
public class OrderingComparisonTest extends AbstractMatcherTest {
@Override
protected Matcher<Integer> createMatcher() {
return greaterThan(1);
}
public void testDescription() {
assertDescription("a value greater than <1>", greaterThan(1));
assertDescription("a value equal to or greater than <1>", greaterThanOrEqualTo(1));
assertDescription("a value equal to <1>", comparesEqualTo(1));
assertDescription("a value less than or equal to <1>", lessThanOrEqualTo(1));
assertDescription("a value less than <1>", lessThan(1));
}
public void testMismatchDescriptions() {
assertMismatchDescription("<0> was less than <1>", greaterThan(1), 0);
assertMismatchDescription("<1> was equal to <1>", greaterThan(1), 1);
assertMismatchDescription("<1> was greater than <0>", lessThan(0), 1);
assertMismatchDescription("<2> was equal to <2>", lessThan(2), 2);
}
public void testComparesObjectsForGreaterThan() {
assertThat(2, greaterThan(1));
assertThat(0, not(greaterThan(1)));
}
public void testComparesObjectsForLessThan() {
assertThat(2, lessThan(3));
assertThat(0, lessThan(1));
}
public void testComparesObjectsForEquality() {
assertThat(3, comparesEqualTo(3));
assertThat("aa", comparesEqualTo("aa"));
}
public void testAllowsForInclusiveComparisons() {
assertThat("less", 1, lessThanOrEqualTo(1));
assertThat("greater", 1, greaterThanOrEqualTo(1));
}
public void testSupportsDifferentTypesOfComparableObjects() {
assertThat(1.1, greaterThan(1.0));
assertThat("cc", greaterThan("bb"));
}
public void testComparesBigDecimalsWithDifferentScalesCorrectlyForIssue20() {
assertThat(new BigDecimal("10.0"), greaterThanOrEqualTo(new BigDecimal("10")));
assertThat(new BigDecimal(10), greaterThanOrEqualTo(new BigDecimal("10.0")));
assertThat(new BigDecimal("2"), comparesEqualTo(new BigDecimal("2.000")));
}
public void testComparesCustomTypesWhoseCompareToReturnsValuesGreaterThatOne() {
assertThat(new CustomInt(5), lessThan(new CustomInt(10)));
}
private static final class CustomInt implements Comparable<CustomInt> {
private final int value;
public CustomInt(int value) {
this.value = value;
}
public int compareTo(CustomInt other) {
return value - other.value;
}
}
}