diff options
Diffstat (limited to 'hamcrest-library/src/main/java/org/hamcrest/collection/IsArrayContaining.java')
-rw-r--r-- | hamcrest-library/src/main/java/org/hamcrest/collection/IsArrayContaining.java | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/hamcrest-library/src/main/java/org/hamcrest/collection/IsArrayContaining.java b/hamcrest-library/src/main/java/org/hamcrest/collection/IsArrayContaining.java new file mode 100644 index 0000000..76ddf9d --- /dev/null +++ b/hamcrest-library/src/main/java/org/hamcrest/collection/IsArrayContaining.java @@ -0,0 +1,42 @@ +package org.hamcrest.collection; + +import org.hamcrest.Description; +import org.hamcrest.Matcher; +import org.hamcrest.Factory; +import org.hamcrest.TypeSafeMatcher; +import static org.hamcrest.core.IsEqual.equalTo; + +public class IsArrayContaining<T> extends TypeSafeMatcher<T[]> { + + private final Matcher<T> elementMatcher; + + public IsArrayContaining(Matcher<T> elementMatcher) { + this.elementMatcher = elementMatcher; + } + + public boolean matchesSafely(T[] array) { + for (T item : array) { + if (elementMatcher.matches(item)) { + return true; + } + } + return false; + } + + public void describeTo(Description description) { + description + .appendText("an array containing ") + .appendDescriptionOf(elementMatcher); + } + + @Factory + public static <T> Matcher<T[]> hasItemInArray(Matcher<T> elementMatcher) { + return new IsArrayContaining<T>(elementMatcher); + } + + @Factory + public static <T> Matcher<T[]> hasItemInArray(T element) { + return hasItemInArray(equalTo(element)); + } + +} |