Skip to content

Commit 5098600

Browse files
A detailed description for iterable values has been added.
1 parent 6b5489e commit 5098600

File tree

3 files changed

+19
-2
lines changed

3 files changed

+19
-2
lines changed

hamcrest-core/src/main/java/org/hamcrest/BaseDescription.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ public Description appendValue(Object value) {
4949
append("F>");
5050
} else if (value.getClass().isArray()) {
5151
appendValueList("[",", ","]", new ArrayIterator(value));
52+
} else if (value instanceof Iterable) {
53+
final Iterable iterable = (Iterable) value;
54+
appendValueList("<[",", ","]>", iterable.iterator());
5255
} else {
5356
append('<');
5457
append(descriptionOf(value));

hamcrest-core/src/test/java/org/hamcrest/BaseDescriptionTest.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44

55
import org.junit.Test;
66

7+
import java.util.Arrays;
8+
import java.util.Iterator;
9+
710
public final class BaseDescriptionTest {
811

912
private final StringBuilder result = new StringBuilder();
@@ -56,7 +59,18 @@ public final class BaseDescriptionTest {
5659
assertEquals("[\"2\", \"3\"]", result.toString());
5760
}
5861

59-
@Test public void
62+
@Test public void
63+
describesAppendedIterableValue() {
64+
baseDescription.appendValue(new Iterable<String>() {
65+
@Override
66+
public Iterator<String> iterator() {
67+
return Arrays.asList("2", "3").iterator();
68+
}
69+
});
70+
assertEquals("<[\"2\", \"3\"]>", result.toString());
71+
}
72+
73+
@Test public void
6074
bracketsAppendedObjectValue() {
6175
final Object value = new Object();
6276
baseDescription.appendValue(value);

hamcrest-library/src/test/java/org/hamcrest/collection/IsEmptyCollectionTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public void testMatchesAnEmptyCollection() {
2222
}
2323

2424
public void testDoesNotMatchACollectionWithAnItem() {
25-
assertMismatchDescription("<[one, three]>", is(createMatcher()), collectionOfValues());
25+
assertMismatchDescription("<[\"one\", \"three\"]>", is(createMatcher()), collectionOfValues());
2626
}
2727

2828
public void testHasAReadableDescription() {

0 commit comments

Comments
 (0)