IsEmptyCollection.java revision c1dbb44e71e47410ad5685aba3ef3fccb095a2b4
1c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinpackage org.hamcrest.collection; 2c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 3c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinimport org.hamcrest.Description; 4c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinimport org.hamcrest.Matcher; 5c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinimport org.hamcrest.TypeSafeMatcher; 6c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 7c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinimport java.util.Collection; 8c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 9c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin/** 10c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * Tests if collection is empty. 11c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin */ 12c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinpublic class IsEmptyCollection<E> extends TypeSafeMatcher<Collection<? extends E>> { 13c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 14c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin @Override 15c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin public boolean matchesSafely(Collection<? extends E> item) { 16c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin return item.isEmpty(); 17c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin } 18c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 19c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin @Override 20c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin public void describeMismatchSafely(Collection<? extends E> item, Description mismatchDescription) { 21c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin mismatchDescription.appendValue(item); 22c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin } 23c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 24c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin @Override 25c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin public void describeTo(Description description) { 26c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin description.appendText("an empty collection"); 27c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin } 28c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 29c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin /** 30c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * Creates a matcher for {@link java.util.Collection}s matching examined collections whose <code>isEmpty</code> 31c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * method returns <code>true</code>. 32c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * For example: 33c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * <pre>assertThat(new ArrayList<String>(), is(empty()))</pre> 34c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * 35c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin */ 36c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin public static <E> Matcher<Collection<? extends E>> empty() { 37c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin return new IsEmptyCollection<E>(); 38c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin } 39c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 40c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin /** 41c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * Creates a matcher for {@link java.util.Collection}s matching examined collections whose <code>isEmpty</code> 42c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * method returns <code>true</code>. 43c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * For example: 44c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * <pre>assertThat(new ArrayList<String>(), is(emptyCollectionOf(String.class)))</pre> 45c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * 46c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * @param unusedToForceReturnType 47c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * the type of the collection's content 48c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin */ 49c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin @SuppressWarnings({"unchecked", "UnusedParameters"}) 50c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin public static <E> Matcher<Collection<E>> emptyCollectionOf(Class<E> unusedToForceReturnType) { 51c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin return (Matcher)empty(); 52c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin } 53c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin} 54