aboutsummaryrefslogtreecommitdiffstats
path: root/guava-testlib/src/com/google/common/testing/RelationshipTester.java
diff options
context:
space:
mode:
Diffstat (limited to 'guava-testlib/src/com/google/common/testing/RelationshipTester.java')
-rw-r--r--guava-testlib/src/com/google/common/testing/RelationshipTester.java62
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);
}
}