package org.test4j.hamcrest.matcher.array; import java.util.Collection; import org.test4j.hamcrest.matcher.modes.ItemsMode; import org.test4j.tools.commons.ListHelper; import ext.test4j.hamcrest.BaseMatcher; import ext.test4j.hamcrest.Description; import ext.test4j.hamcrest.Matcher; @SuppressWarnings("rawtypes") public class ListEveryItemMatcher extends BaseMatcher { private Matcher matcher = null; private ItemsMode itemsMode = null; public ListEveryItemMatcher(Matcher matcher, ItemsMode itemsMode) { this.matcher = matcher; this.itemsMode = itemsMode; } public boolean matches(Object actual) { if (actual == null) { return false; } Collection _actual = ListHelper.toList(actual, true); for (Object item : _actual) { boolean match = false; if (item != null) { match = matcher.matches(item); } if (match == false && itemsMode == ItemsMode.AllItems) { return false; } if (match == true && itemsMode == ItemsMode.AnyItems) { return true; } } if (itemsMode == ItemsMode.AllItems) { return true; } else { return false; } } public void describeTo(Description description) { if (itemsMode == ItemsMode.AllItems) { description.appendText("all of item is "); } else { description.appendText("any of item is "); } description.appendDescriptionOf(matcher); } }