![JAR search and dependency download from the Maven repository](/logo.png)
org.hamcrest.number.OrderingComparison Maven / Gradle / Ivy
/* Copyright (c) 2000-2009 hamcrest.org
*/
package org.hamcrest.number;
import org.hamcrest.Description;
import org.hamcrest.Factory;
import org.hamcrest.Matcher;
import org.hamcrest.TypeSafeMatcher;
public class OrderingComparison> extends TypeSafeMatcher {
private static final int LESS_THAN = -1;
private static final int GREATER_THAN = 1;
private static final int EQUAL = 0;
private final T expected;
private final int minCompare, maxCompare;
private OrderingComparison(T expected, int minCompare, int maxCompare) {
this.expected = expected;
this.minCompare = minCompare;
this.maxCompare = maxCompare;
}
@Override
public boolean matchesSafely(T actual) {
int compare = Integer.signum(actual.compareTo(expected));
return minCompare <= compare && compare <= maxCompare;
}
@Override
public void describeMismatchSafely(T actual, Description mismatchDescription) {
mismatchDescription.appendValue(expected) .appendText(" was ")
.appendText(comparison(actual.compareTo(expected)))
.appendText(" ").appendValue(actual);
};
public void describeTo(Description description) {
description.appendText("a value ").appendText(comparison(minCompare));
if (minCompare != maxCompare) {
description.appendText(" or ").appendText(comparison(maxCompare));
}
description.appendText(" ").appendValue(expected);
}
private String comparison(int compare) {
if (compare == EQUAL) {
return "equal to";
} else if (compare > EQUAL) {
return "greater than";
} else {
return "less than";
}
}
/**
* Is value = expected?
*/
@Factory
public static > Matcher super T> comparesEqualTo(T value) {
return new OrderingComparison(value, EQUAL, EQUAL);
}
/**
* Is value > expected?
*/
@Factory
public static > Matcher super T> greaterThan(T value) {
return new OrderingComparison(value, GREATER_THAN, GREATER_THAN);
}
/**
* Is value >= expected?
*/
@Factory
public static > Matcher super T> greaterThanOrEqualTo(T value) {
return new OrderingComparison(value, EQUAL, GREATER_THAN);
}
/**
* Is value < expected?
*/
@Factory
public static > Matcher super T> lessThan(T value) {
return new OrderingComparison(value, LESS_THAN, LESS_THAN);
}
/**
* Is value <= expected?
*/
@Factory
public static > Matcher super T> lessThanOrEqualTo(T value) {
return new OrderingComparison(value, LESS_THAN, EQUAL);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy