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);
+ }
+ };
+ }
+
+}