--- src/main/java/org/junit/internal/matchers/CombinableMatcher.java 2009-06-12 05:01:46.000000000 +0200 +++ src/main/java/org/junit/internal/matchers/CombinableMatcher.java 2009-06-12 15:54:29.000000000 +0200 @@ -1,34 +1,14 @@ package org.junit.internal.matchers; -import static org.hamcrest.CoreMatchers.allOf; -import static org.hamcrest.CoreMatchers.anyOf; -import org.hamcrest.BaseMatcher; -import org.hamcrest.Description; import org.hamcrest.Matcher; -public class CombinableMatcher<T> extends BaseMatcher<T> { - - private final Matcher<? extends T> fMatcher; - - public CombinableMatcher(Matcher<? extends T> matcher) { - fMatcher= matcher; - } - - public boolean matches(Object item) { - return fMatcher.matches(item); - } - - public void describeTo(Description description) { - description.appendDescriptionOf(fMatcher); - } - - @SuppressWarnings("unchecked") - public CombinableMatcher<T> and(Matcher<? extends T> matcher) { - return new CombinableMatcher<T>(allOf(matcher, fMatcher)); - } - - @SuppressWarnings("unchecked") - public CombinableMatcher<T> or(Matcher<? extends T> matcher) { - return new CombinableMatcher<T>(anyOf(matcher, fMatcher)); +/** + * @deprectated Use org.hamcrest.core.CombinableMatcher directly + */ +@Deprecated +public class CombinableMatcher<T> extends org.hamcrest.core.CombinableMatcher<T> { + // should only be using static factories + private CombinableMatcher(Matcher<? super T> matcher) { + super(matcher); } } \ No newline at end of file --- src/main/java/org/junit/internal/matchers/Each.java 2009-06-12 05:01:46.000000000 +0200 +++ src/main/java/org/junit/internal/matchers/Each.java 2009-06-12 15:54:29.000000000 +0200 @@ -1,24 +1,15 @@ 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; +import org.hamcrest.core.Every; + +/** + * @deprecated use org.hamcrest.core.Every + */ +@Deprecated 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); - } - }; + return Every.everyItem(individual); } } --- src/main/java/org/junit/internal/matchers/IsCollectionContaining.java 2009-06-12 05:01:46.000000000 +0200 +++ src/main/java/org/junit/internal/matchers/IsCollectionContaining.java 2009-06-12 15:54:29.000000000 +0200 @@ -1,67 +1,16 @@ package org.junit.internal.matchers; -import static org.hamcrest.core.AllOf.allOf; -import static org.hamcrest.core.IsEqual.equalTo; - -import java.util.ArrayList; -import java.util.Collection; - -import org.hamcrest.Description; -import org.hamcrest.Factory; import org.hamcrest.Matcher; // Copied (hopefully temporarily) from hamcrest-library -public class IsCollectionContaining<T> extends TypeSafeMatcher<Iterable<T>> { - private final Matcher<? extends T> elementMatcher; - - public IsCollectionContaining(Matcher<? extends T> elementMatcher) { - this.elementMatcher = elementMatcher; - } - - @Override - public boolean matchesSafely(Iterable<T> collection) { - for (T item : collection) { - if (elementMatcher.matches(item)){ - return true; - } - } - return false; - } - - public void describeTo(Description description) { - description - .appendText("a collection containing ") - .appendDescriptionOf(elementMatcher); - } - - @Factory - public static <T> Matcher<Iterable<T>> hasItem(Matcher<? extends T> elementMatcher) { - return new IsCollectionContaining<T>(elementMatcher); - } - - @Factory - public static <T> Matcher<Iterable<T>> hasItem(T element) { - return hasItem(equalTo(element)); - } - - @Factory - public static <T> Matcher<Iterable<T>> hasItems(Matcher<? extends T>... elementMatchers) { - Collection<Matcher<? extends Iterable<T>>> all - = new ArrayList<Matcher<? extends Iterable<T>>>(elementMatchers.length); - for (Matcher<? extends T> elementMatcher : elementMatchers) { - all.add(hasItem(elementMatcher)); - } - return allOf(all); - } - - @Factory - public static <T> Matcher<Iterable<T>> hasItems(T... elements) { - Collection<Matcher<? extends Iterable<T>>> all - = new ArrayList<Matcher<? extends Iterable<T>>>(elements.length); - for (T element : elements) { - all.add(hasItem(element)); - } - return allOf(all); - } - +/** + * @deprecated use org.hamcrest.core.IsCollectionContaining directly + */ +@Deprecated +public class IsCollectionContaining<T> extends org.hamcrest.core.IsCollectionContaining<T> { + // Client code should just use static factories, so this should be OK + private IsCollectionContaining(Matcher<? super T> elementMatcher) { + super(elementMatcher); + // TODO Auto-generated constructor stub + } } --- src/main/java/org/junit/matchers/JUnitMatchers.java 2009-06-12 05:01:47.000000000 +0200 +++ src/main/java/org/junit/matchers/JUnitMatchers.java 2009-06-12 15:54:29.000000000 +0200 @@ -1,38 +1,46 @@ package org.junit.matchers; +import org.hamcrest.CoreMatchers; import org.hamcrest.Matcher; -import org.junit.internal.matchers.CombinableMatcher; -import org.junit.internal.matchers.Each; -import org.junit.internal.matchers.IsCollectionContaining; -import org.junit.internal.matchers.StringContains; +import org.hamcrest.core.CombinableMatcher; /** * Convenience import class: these are useful matchers for use with the assertThat method, but they are * not currently included in the basic CoreMatchers class from hamcrest. + * @deprecated as of JUnit 4.7, all of these matchers are found in the org.hamcrest.CoreMatchers + * class instead. */ +@Deprecated public class JUnitMatchers { + // TODO (May 27, 2009 11:46:27 AM): deprecate all? /** * @param element * @return A matcher matching any collection containing element + * @deprecated Use org.hamcrest.CoreMatchers.hasItem */ - public static <T> org.hamcrest.Matcher<java.lang.Iterable<T>> hasItem(T element) { - return IsCollectionContaining.hasItem(element); + @Deprecated + public static <T> Matcher<Iterable<? super T>> hasItem(T element) { + return CoreMatchers.<T>hasItem(element); } /** * @param elementMatcher * @return A matcher matching any collection containing an element matching elementMatcher + * @deprecated Use org.hamcrest.CoreMatchers.hasItem */ - public static <T> org.hamcrest.Matcher<java.lang.Iterable<T>> hasItem(org.hamcrest.Matcher<? extends T> elementMatcher) { - return IsCollectionContaining.hasItem(elementMatcher); + @Deprecated + public static <T> Matcher<Iterable<? super T>> hasItem(Matcher<? super T> elementMatcher) { + return CoreMatchers.<T>hasItem(elementMatcher); } /** * @param elements * @return A matcher matching any collection containing every element in elements + * @deprecated Use org.hamcrest.CoreMatchers.hasItems */ + @Deprecated public static <T> org.hamcrest.Matcher<java.lang.Iterable<T>> hasItems(T... elements) { - return IsCollectionContaining.hasItems(elements); + return CoreMatchers.<T>hasItems(elements); } /** @@ -40,25 +48,31 @@ * @return A matcher matching any collection containing at least one element that matches * each matcher in elementMatcher (this may be one element matching all matchers, * or different elements matching each matcher) + * @deprecated Use org.hamcrest.CoreMatchers.hasItems */ - public static <T> org.hamcrest.Matcher<java.lang.Iterable<T>> hasItems(org.hamcrest.Matcher<? extends T>... elementMatchers) { - return IsCollectionContaining.hasItems(elementMatchers); + @Deprecated + public static <T> Matcher<Iterable<T>> hasItems(Matcher<? super T>... elementMatchers) { + return CoreMatchers.<T>hasItems(elementMatchers); } /** * @param elementMatcher * @return A matcher matching any collection in which every element matches elementMatcher + * @deprecated use CoreMatchers.everyItem directly */ + @Deprecated public static <T> Matcher<Iterable<T>> everyItem(final Matcher<T> elementMatcher) { - return Each.each(elementMatcher); + return CoreMatchers.everyItem(elementMatcher); } /** * @param substring * @return a matcher matching any string that contains substring + * @deprecated Use org.hamcrest.CoreMatchers.containsString */ + @Deprecated public static org.hamcrest.Matcher<java.lang.String> containsString(java.lang.String substring) { - return StringContains.containsString(substring); + return CoreMatchers.containsString(substring); } /** @@ -66,9 +80,11 @@ * <pre> * assertThat(string, both(containsString("a")).and(containsString("b"))); * </pre> + * @deprecated Use org.hamcrest.CoreMatchers.both */ - public static <T> CombinableMatcher<T> both(Matcher<T> matcher) { - return new CombinableMatcher<T>(matcher); + @Deprecated + public static <T> CombinableMatcher<T> both(Matcher<? super T> matcher) { + return CoreMatchers.both(matcher); } /** @@ -76,8 +92,10 @@ * <pre> * assertThat(string, both(containsString("a")).and(containsString("b"))); * </pre> + * @deprecated Use org.hamcrest.CoreMatchers.either */ - public static <T> CombinableMatcher<T> either(Matcher<T> matcher) { - return new CombinableMatcher<T>(matcher); + @Deprecated + public static <T> CombinableMatcher<T> either(Matcher<? super T> matcher) { + return CoreMatchers.either(matcher); } }