Open Source Repository

Home /junit/junit-4.8.2 | Repository Home



org/junit/internal/matchers/Each.java
package org.junit.internal.matchers;

import static org.hamcrest.CoreMatchers.not;
import static org.junit.internal.matchers.IsCollectionContaining.hasItem;
import org.hamcrest.BaseMatcher;
import org.hamcrest.Description;
import org.hamcrest.Matcher;

public class Each {
  public static <T> Matcher<Iterable<T>> each(final Matcher<T> individual) {
    final Matcher<Iterable<T>> allItemsAre = not(hasItem(not(individual)));
    
    return new BaseMatcher<Iterable<T>>() {
      public boolean matches(Object item) {
        return allItemsAre.matches(item);
      }
      
      public void describeTo(Description description) {
        description.appendText("each ");
        individual.describeTo(description);
      }
    };
  }
}