Class RelationshipTester<T>

java.lang.Object
com.google.common.testing.RelationshipTester<T>

final class RelationshipTester<T> extends Object
Implementation helper for EqualsTester and EquivalenceTester that tests for equivalence classes.
  • Field Details

    • equivalence

      private final Equivalence<? super T> equivalence
      A word about using Equivalence, which automatically checks for null and identical inputs: This sounds like it ought to be a problem here, since the goals of this class include testing that equals() is reflexive and is tolerant of null. However, there's no problem. The reason: EqualsTester tests null and identical inputs directly against equals() rather than through the Equivalence.
    • relationshipName

      private final String relationshipName
    • hashName

      private final String hashName
    • itemReporter

      private final RelationshipTester.ItemReporter itemReporter
    • groups

      private final List<ImmutableList<T>> groups
  • Constructor Details

  • Method Details

    • addRelatedGroup

      public RelationshipTester<T> addRelatedGroup(Iterable<? extends T> group)
    • test

      public void test()
    • assertRelated

      private void assertRelated(int groupNumber, int itemNumber, int relatedItemNumber)
    • assertUnrelated

      private void assertUnrelated(int groupNumber, int itemNumber, int unrelatedGroupNumber, int unrelatedItemNumber)
    • assertWithTemplate

      private void assertWithTemplate(String template, RelationshipTester.Item<T> item, RelationshipTester.Item<T> other, boolean condition)
    • getItem

      private RelationshipTester.Item<T> getItem(int groupNumber, int itemNumber)