diff options
Diffstat (limited to 'guava-testlib/src/com/google/common/testing/RelationshipTester.java')
-rw-r--r-- | guava-testlib/src/com/google/common/testing/RelationshipTester.java | 62 |
1 files changed, 18 insertions, 44 deletions
diff --git a/guava-testlib/src/com/google/common/testing/RelationshipTester.java b/guava-testlib/src/com/google/common/testing/RelationshipTester.java index 97d6c21..88bea63 100644 --- a/guava-testlib/src/com/google/common/testing/RelationshipTester.java +++ b/guava-testlib/src/com/google/common/testing/RelationshipTester.java @@ -34,24 +34,11 @@ import java.util.List; */ @GwtCompatible final class RelationshipTester<T> { - - static class ItemReporter { - String reportItem(Item item) { - return item.toString(); - } - } - private final List<ImmutableList<T>> groups = Lists.newArrayList(); private final RelationshipAssertion<T> assertion; - private final ItemReporter itemReporter; - - RelationshipTester(RelationshipAssertion<T> assertion, ItemReporter itemReporter) { - this.assertion = checkNotNull(assertion); - this.itemReporter = checkNotNull(itemReporter); - } RelationshipTester(RelationshipAssertion<T> assertion) { - this(assertion, new ItemReporter()); + this.assertion = checkNotNull(assertion); } public RelationshipTester<T> addRelatedGroup(Iterable<? extends T> group) { @@ -93,9 +80,8 @@ final class RelationshipTester<T> { } catch (AssertionFailedError e) { // TODO(gak): special handling for ComparisonFailure? throw new AssertionFailedError(e.getMessage() - .replace("$ITEM", itemReporter.reportItem(new Item(item, groupNumber, itemNumber))) - .replace("$RELATED", - itemReporter.reportItem(new Item(related, groupNumber, relatedItemNumber)))); + .replace("$ITEM", itemString(item, groupNumber, itemNumber)) + .replace("$RELATED", itemString(related, groupNumber, relatedItemNumber))); } } @@ -108,33 +94,20 @@ final class RelationshipTester<T> { } catch (AssertionFailedError e) { // TODO(gak): special handling for ComparisonFailure? throw new AssertionFailedError(e.getMessage() - .replace("$ITEM", itemReporter.reportItem(new Item(item, groupNumber, itemNumber))) - .replace("$UNRELATED", itemReporter.reportItem( - new Item(unrelated, unrelatedGroupNumber, unrelatedItemNumber)))); + .replace("$ITEM", itemString(item, groupNumber, itemNumber)) + .replace("$UNRELATED", itemString(unrelated, unrelatedGroupNumber, unrelatedItemNumber))); } } - static final class Item { - final Object value; - final int groupNumber; - final int itemNumber; - - Item(Object value, int groupNumber, int itemNumber) { - this.value = value; - this.groupNumber = groupNumber; - this.itemNumber = itemNumber; - } - - @Override public String toString() { - return new StringBuilder() - .append(value) - .append(" [group ") - .append(groupNumber + 1) - .append(", item ") - .append(itemNumber + 1) - .append(']') - .toString(); - } + private static String itemString(Object item, int groupNumber, int itemNumber) { + return new StringBuilder() + .append(item) + .append(" [group ") + .append(groupNumber + 1) + .append(", item ") + .append(itemNumber + 1) + .append(']') + .toString(); } /** @@ -146,8 +119,9 @@ final class RelationshipTester<T> { * item number and group number of the respective item. * */ - static abstract class RelationshipAssertion<T> { - abstract void assertRelated(T item, T related); - abstract void assertUnrelated(T item, T unrelated); + interface RelationshipAssertion<T> { + void assertRelated(T item, T related); + + void assertUnrelated(T item, T unrelated); } } |