X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2FMatchers.java;fp=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2FMatchers.java;h=cdafcca9a07037aff38a6b19cf035161beb9f993;hb=7d95ecaebffebf59a2cc1109e3f98b9a79b21de7;hp=61cee46c1240676dcba8314f5d992363fb2e5c6e;hpb=3112dbc82b31381b0fa65fda1ee46b22e2172aa5;p=Sone.git diff --git a/src/test/java/net/pterodactylus/sone/Matchers.java b/src/test/java/net/pterodactylus/sone/Matchers.java index 61cee46..cdafcca 100644 --- a/src/test/java/net/pterodactylus/sone/Matchers.java +++ b/src/test/java/net/pterodactylus/sone/Matchers.java @@ -57,4 +57,42 @@ public class Matchers { }; } + public static Matcher delivers(final byte[] data) { + return new TypeSafeMatcher() { + byte[] readData = new byte[data.length]; + + @Override + protected boolean matchesSafely(InputStream inputStream) { + int offset = 0; + try { + while (true) { + int r = inputStream.read(); + if (r == -1) { + return offset == data.length; + } + if (offset == data.length) { + return false; + } + if (data[offset] != (readData[offset] = (byte) r)) { + return false; + } + offset++; + } + } catch (IOException ioe1) { + return false; + } + } + + @Override + public void describeTo(Description description) { + description.appendValue(data); + } + + @Override + protected void describeMismatchSafely(InputStream item, Description mismatchDescription) { + mismatchDescription.appendValue(readData); + } + }; + } + }