X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2FMatchers.java;h=9bd4cbb6820af8ded8da88d169847c4f2c9cfbab;hp=88732782cb3466bfc3fb3131077b8ca8df345bc4;hb=1ee9dd5b296837c3a90ebd17b7aa191d86d06aca;hpb=9f23092d7f3820e31ff34f38bcf11fcc594ae645 diff --git a/src/test/java/net/pterodactylus/sone/Matchers.java b/src/test/java/net/pterodactylus/sone/Matchers.java index 8873278..9bd4cbb 100644 --- a/src/test/java/net/pterodactylus/sone/Matchers.java +++ b/src/test/java/net/pterodactylus/sone/Matchers.java @@ -17,6 +17,8 @@ package net.pterodactylus.sone; +import static com.google.common.base.Objects.equal; +import static com.google.common.collect.Iterators.size; import static java.util.Arrays.asList; import static java.util.regex.Pattern.compile; @@ -26,6 +28,8 @@ import java.util.Collection; import java.util.Iterator; import java.util.List; +import freenet.support.SimpleFieldSet; + import com.google.common.base.Objects; import com.google.common.collect.Lists; import org.hamcrest.Description; @@ -152,4 +156,27 @@ public class Matchers { }; } + public static Matcher matches(final SimpleFieldSet fieldSetToMatch) { + return new TypeSafeMatcher() { + @Override + protected boolean matchesSafely(SimpleFieldSet fieldSet) { + if (size(fieldSet.keyIterator()) != size(fieldSetToMatch.keyIterator())) { + return false; + } + for (Iterator keys = fieldSetToMatch.keyIterator(); keys.hasNext(); ) { + String key = keys.next(); + if (!equal(fieldSet.get(key), fieldSetToMatch.get(key))) { + return false; + } + } + return true; + } + + @Override + public void describeTo(Description description) { + description.appendText("is ").appendValue(fieldSetToMatch); + } + }; + } + }