blob: c050924cd80495a259ea28ca27134f72365392d1 [file] [log] [blame]
package org.hamcrest.collection;
import org.hamcrest.AbstractMatcherTest;
import org.hamcrest.Matcher;
import org.hamcrest.MatcherAssert;
import java.util.HashMap;
import java.util.Map;
import static org.hamcrest.collection.IsMapWithSize.aMapWithSize;
import static org.hamcrest.core.IsEqual.equalTo;
public final class IsMapWithSizeTest extends AbstractMatcherTest {
@Override
protected Matcher<?> createMatcher() {
return aMapWithSize(7);
}
public void testMatchesWhenSizeIsCorrect() {
assertMatches("correct size", aMapWithSize(equalTo(2)), mapWithKeys("a", "b"));
assertMismatchDescription("map size was <3>", aMapWithSize(equalTo(2)), mapWithKeys("a", "b", "c"));
}
public void testMatchesMapWhenSizeIsCorrectUsingObjectElementType() {
Map<Object, Object> map = mapWithKeys(new Object(), new Object());
assertMatches("correct size", aMapWithSize(equalTo(2)), map);
assertMismatchDescription("map size was <2>", aMapWithSize(equalTo(3)), map);
}
public void testMatchesMapWhenSizeIsCorrectUsingStringElementType() {
Map<String, Integer> map = mapWithKeys("a", "b");
assertMatches("correct size", aMapWithSize(equalTo(2)), map);
assertMismatchDescription("map size was <2>", aMapWithSize(equalTo(3)), map);
}
public void testMatchesMapWhenSizeIsCorrectUsingWildcardElementType() {
Map<?, ?> map = mapWithKeys("a", "b");
assertMatches("correct size", aMapWithSize(equalTo(2)), map);
assertMismatchDescription("map size was <2>", aMapWithSize(equalTo(3)), map);
}
public void testMatchesListWhenSizeIsCorrectUsingObjectElementType() {
Map<Object, Object> map = mapWithKeys(new Object(), new Object());
assertMatches("correct size", aMapWithSize(equalTo(2)), map);
assertMismatchDescription("map size was <2>", aMapWithSize(equalTo(3)), map);
}
public void testMatchesListWhenSizeIsCorrectUsingStringElementType() {
Map<String, Integer> list = mapWithKeys("a", "b");
assertMatches("correct size", aMapWithSize(equalTo(2)), list);
assertMismatchDescription("map size was <2>", aMapWithSize(equalTo(3)), list);
}
public void testMatchesListWhenSizeIsCorrectUsingWildcardElementType() {
Map<?, ?> list = mapWithKeys("a", "b");
assertMatches("correct size", aMapWithSize(equalTo(2)), list);
assertMismatchDescription("map size was <2>", aMapWithSize(equalTo(3)), list);
}
public void testProvidesConvenientShortcutForHasSizeEqualTo() {
assertMatches("correct size", aMapWithSize(2), mapWithKeys(new Object(), new Object()));
assertMismatchDescription("map size was <3>", aMapWithSize(2), mapWithKeys(new Object(), new Object(), new Object()));
}
public void testHasAReadableDescription() {
assertDescription("a map with size <3>", aMapWithSize(equalTo(3)));
}
public void testCompilesWithATypedMap() {
Map<String, Integer> arrayList = new HashMap<String, Integer>();
MatcherAssert.assertThat(arrayList, aMapWithSize(0));
}
private static <K, V> Map<K, V> mapWithKeys(K... keys) {
final Map<K, V> result = new HashMap<K, V>();
for (K key : keys) {
result.put(key, null);
}
return result;
}
}