X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Ffcp%2FRequestProgressMatcher.java;fp=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Ffcp%2FRequestProgressMatcher.java;h=e2adf307fda6e7b8d5c2b4d862ab7aae18e92ba5;hb=0e2b31d9770e0548962a863f7e96d8a55da63e7d;hp=0000000000000000000000000000000000000000;hpb=872b858bdb4fd4bfadf50491567d0dd5207851b4;p=jFCPlib.git diff --git a/src/test/java/net/pterodactylus/fcp/RequestProgressMatcher.java b/src/test/java/net/pterodactylus/fcp/RequestProgressMatcher.java new file mode 100644 index 0000000..e2adf30 --- /dev/null +++ b/src/test/java/net/pterodactylus/fcp/RequestProgressMatcher.java @@ -0,0 +1,71 @@ +package net.pterodactylus.fcp; + +import org.hamcrest.Description; +import org.hamcrest.Matcher; +import org.hamcrest.TypeSafeDiagnosingMatcher; + +/** + * Hamcrest matcher for {@link RequestProgress}. + * + * @author David ‘Bombe’ Roden + */ +public class RequestProgressMatcher { + + public static Matcher isRequestProgress(int total, int required, int failed, int fatallyFailed, + int succeeded, long lastProgress, boolean finalizedTotal, int minSuccessFetchBlocks) { + return new TypeSafeDiagnosingMatcher() { + @Override + protected boolean matchesSafely(RequestProgress requestProgress, Description mismatchDescription) { + if (requestProgress.getTotal() != total) { + mismatchDescription.appendText("total is ").appendValue(requestProgress.getTotal()); + return false; + } + if (requestProgress.getRequired() != required) { + mismatchDescription.appendText("required is ").appendValue(requestProgress.getRequired()); + return false; + } + if (requestProgress.getFailed() != failed) { + mismatchDescription.appendText("failed is ").appendValue(requestProgress.getFailed()); + return false; + } + if (requestProgress.getFatallyFailed() != fatallyFailed) { + mismatchDescription.appendText("fatally failed is ") + .appendValue(requestProgress.getFatallyFailed()); + return false; + } + if (requestProgress.getSucceeded() != succeeded) { + mismatchDescription.appendText("succeeded is ").appendValue(requestProgress.getSucceeded()); + return false; + } + if (requestProgress.getLastProgress() != lastProgress) { + mismatchDescription.appendText("last progress is ").appendValue(requestProgress.getLastProgress()); + return false; + } + if (requestProgress.isFinalizedTotal() != finalizedTotal) { + mismatchDescription.appendText("finalized total is ") + .appendValue(requestProgress.isFinalizedTotal()); + return false; + } + if (requestProgress.getMinSuccessFetchBlocks() != minSuccessFetchBlocks) { + mismatchDescription.appendText("min success fetch blocks is ") + .appendValue(requestProgress.getMinSuccessFetchBlocks()); + return false; + } + return true; + } + + @Override + public void describeTo(Description description) { + description.appendText("total ").appendValue(total); + description.appendText(", required ").appendValue(required); + description.appendText(", failed ").appendValue(failed); + description.appendText(", fatally failed ").appendValue(fatallyFailed); + description.appendText(", succeeded ").appendValue(succeeded); + description.appendText(", last progress ").appendValue(lastProgress); + description.appendText(", finalized total ").appendValue(finalizedTotal); + description.appendText(", min success fetch blocks ").appendValue(minSuccessFetchBlocks); + } + }; + } + +}