1 package net.pterodactylus.fcp;
3 import org.hamcrest.Description;
4 import org.hamcrest.Matcher;
5 import org.hamcrest.TypeSafeDiagnosingMatcher;
8 * Hamcrest matcher for {@link RequestProgress}.
10 * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
12 public class RequestProgressMatcher {
14 public static Matcher<RequestProgress> isRequestProgress(int total, int required, int failed, int fatallyFailed,
15 int succeeded, long lastProgress, boolean finalizedTotal, int minSuccessFetchBlocks) {
16 return new TypeSafeDiagnosingMatcher<RequestProgress>() {
18 protected boolean matchesSafely(RequestProgress requestProgress, Description mismatchDescription) {
19 if (requestProgress.getTotal() != total) {
20 mismatchDescription.appendText("total is ").appendValue(requestProgress.getTotal());
23 if (requestProgress.getRequired() != required) {
24 mismatchDescription.appendText("required is ").appendValue(requestProgress.getRequired());
27 if (requestProgress.getFailed() != failed) {
28 mismatchDescription.appendText("failed is ").appendValue(requestProgress.getFailed());
31 if (requestProgress.getFatallyFailed() != fatallyFailed) {
32 mismatchDescription.appendText("fatally failed is ")
33 .appendValue(requestProgress.getFatallyFailed());
36 if (requestProgress.getSucceeded() != succeeded) {
37 mismatchDescription.appendText("succeeded is ").appendValue(requestProgress.getSucceeded());
40 if (requestProgress.getLastProgress() != lastProgress) {
41 mismatchDescription.appendText("last progress is ").appendValue(requestProgress.getLastProgress());
44 if (requestProgress.isFinalizedTotal() != finalizedTotal) {
45 mismatchDescription.appendText("finalized total is ")
46 .appendValue(requestProgress.isFinalizedTotal());
49 if (requestProgress.getMinSuccessFetchBlocks() != minSuccessFetchBlocks) {
50 mismatchDescription.appendText("min success fetch blocks is ")
51 .appendValue(requestProgress.getMinSuccessFetchBlocks());
58 public void describeTo(Description description) {
59 description.appendText("total ").appendValue(total);
60 description.appendText(", required ").appendValue(required);
61 description.appendText(", failed ").appendValue(failed);
62 description.appendText(", fatally failed ").appendValue(fatallyFailed);
63 description.appendText(", succeeded ").appendValue(succeeded);
64 description.appendText(", last progress ").appendValue(lastProgress);
65 description.appendText(", finalized total ").appendValue(finalizedTotal);
66 description.appendText(", min success fetch blocks ").appendValue(minSuccessFetchBlocks);