errors.add(new ElementCheckFailure(EQUAL_TO_NULL, classNumber, elementNumber, element)); errors.add(new ElementCheckFailure(EQUAL_NULL_EXCEPTION, classNumber, elementNumber, element)); try { ((Comparable<?>) element).compareTo(null); errors.add(new ElementCheckFailure(COMPARE_EQUAL_TO_NULL, classNumber, elementNumber, element)); errors.add(new ElementCheckFailure(EQUAL_TO_UNRELATED_CLASS, classNumber, elementNumber, element)); errors.add(new ElementCheckFailure(EQUAL_TO_UNRELATED_CLASS_CLASS_CAST_EXCEPTION, classNumber, elementNumber, element)); for (Object element : congruenceClass) { if (!element.equals(element)) { errors.add(new ElementCheckFailure(NOT_REFLEXIVE, classNumber, elementNumber, element)); errors.add(new ElementCheckFailure(COMPARE_NOT_REFLEXIVE, classNumber, elementNumber, element));
return false; if (!super.equals(o)) { return false;
@Override public int hashCode() { int result = super.hashCode(); result = 31 * result + type.hashCode(); result = 31 * result + primaryClassNumber; result = 31 * result + primaryElementNumber; result = 31 * result + primaryObject.hashCode(); result = 31 * result + secondaryClassNumber; result = 31 * result + secondaryElementNumber; result = 31 * result + secondaryObject.hashCode(); return result; } }
errors.add(new ElementCheckFailure(EQUAL_TO_NULL, classNumber, elementNumber, element)); errors.add(new ElementCheckFailure(EQUAL_NULL_EXCEPTION, classNumber, elementNumber, element)); try { ((Comparable<?>) element).compareTo(null); errors.add(new ElementCheckFailure(COMPARE_EQUAL_TO_NULL, classNumber, elementNumber, element)); errors.add(new ElementCheckFailure(EQUAL_TO_UNRELATED_CLASS, classNumber, elementNumber, element)); errors.add(new ElementCheckFailure(EQUAL_TO_UNRELATED_CLASS_CLASS_CAST_EXCEPTION, classNumber, elementNumber, element)); for (Object element : congruenceClass) { if (!element.equals(element)) { errors.add(new ElementCheckFailure(NOT_REFLEXIVE, classNumber, elementNumber, element)); errors.add(new ElementCheckFailure(COMPARE_NOT_REFLEXIVE, classNumber, elementNumber, element));
errors.add(new ElementCheckFailure(EQUAL_TO_NULL, classNumber, elementNumber, element)); errors.add(new ElementCheckFailure(EQUAL_NULL_EXCEPTION, classNumber, elementNumber, element)); try { ((Comparable<?>) element).compareTo(null); errors.add(new ElementCheckFailure(COMPARE_EQUAL_TO_NULL, classNumber, elementNumber, element)); errors.add(new ElementCheckFailure(EQUAL_TO_UNRELATED_CLASS, classNumber, elementNumber, element)); errors.add(new ElementCheckFailure(EQUAL_TO_UNRELATED_CLASS_CLASS_CAST_EXCEPTION, classNumber, elementNumber, element)); for (Object element : congruenceClass) { if (!element.equals(element)) { errors.add(new ElementCheckFailure(NOT_REFLEXIVE, classNumber, elementNumber, element)); errors.add(new ElementCheckFailure(COMPARE_NOT_REFLEXIVE, classNumber, elementNumber, element));
return false; if (!super.equals(o)) { return false;
return false; if (!super.equals(o)) { return false;
@Test public void compareToAgainstNull() { ComparableThatDoesNotThrowNPE comparableThatDoesNotThrowNPE = new ComparableThatDoesNotThrowNPE(1); try { equivalenceTester() .addEquivalentGroup(comparableThatDoesNotThrowNPE) .check(); fail("Expected EquivalenceAssertionError"); } catch (EquivalenceAssertionError e) { assertExpectedFailures(e, new ElementCheckFailure(COMPARE_EQUAL_TO_NULL, 0, 0, comparableThatDoesNotThrowNPE) ); } }
@Test public void compareToAgainstNull() { ComparableThatDoesNotThrowNPE comparableThatDoesNotThrowNPE = new ComparableThatDoesNotThrowNPE(1); try { equivalenceTester() .addEquivalentGroup(comparableThatDoesNotThrowNPE) .check(); fail("Expected EquivalenceAssertionError"); } catch (EquivalenceAssertionError e) { assertExpectedFailures(e, new ElementCheckFailure(COMPARE_EQUAL_TO_NULL, 0, 0, comparableThatDoesNotThrowNPE)); } }
@Test public void compareToAgainstNull() { ComparableThatDoesNotThrowNPE comparableThatDoesNotThrowNPE = new ComparableThatDoesNotThrowNPE(1); try { equivalenceTester() .addEquivalentGroup(comparableThatDoesNotThrowNPE) .check(); fail("Expected EquivalenceAssertionError"); } catch (EquivalenceAssertionError e) { assertExpectedFailures(e, new ElementCheckFailure(COMPARE_EQUAL_TO_NULL, 0, 0, comparableThatDoesNotThrowNPE)); } }
@Test public void equalsUnrelatedClassThrowsException() { EqualsOtherClassThrowsException equalsOtherClassThrowsException = new EqualsOtherClassThrowsException(); try { equivalenceTester() .addEquivalentGroup(equalsOtherClassThrowsException) .check(); fail("Expected EquivalenceAssertionError"); } catch (EquivalenceAssertionError e) { assertExpectedFailures(e, new ElementCheckFailure(EQUAL_TO_UNRELATED_CLASS_CLASS_CAST_EXCEPTION, 0, 0, equalsOtherClassThrowsException)); } }
@Test public void equalsUnrelatedClass() { EqualsUnrelatedClass equalsUnrelatedClass = new EqualsUnrelatedClass(); try { equivalenceTester() .addEquivalentGroup(equalsUnrelatedClass) .check(); fail("Expected EquivalenceAssertionError"); } catch (EquivalenceAssertionError e) { assertExpectedFailures(e, new ElementCheckFailure(EQUAL_TO_UNRELATED_CLASS, 0, 0, equalsUnrelatedClass)); } }
@Test public void equalsNull() { EqualsNull equalsNull = new EqualsNull(); try { equivalenceTester() .addEquivalentGroup(equalsNull) .check(); fail("Expected EquivalenceAssertionError"); } catch (EquivalenceAssertionError e) { assertExpectedFailures(e, new ElementCheckFailure(EQUAL_TO_NULL, 0, 0, equalsNull)); } }
@Test public void equalsNullThrowsException() { EqualsNullThrowsException equalsNullThrowsException = new EqualsNullThrowsException(); try { equivalenceTester() .addEquivalentGroup(equalsNullThrowsException) .check(); fail("Expected EquivalenceAssertionError"); } catch (EquivalenceAssertionError e) { assertExpectedFailures(e, new ElementCheckFailure(EQUAL_NULL_EXCEPTION, 0, 0, equalsNullThrowsException)); } }
@Test public void notReflexive() { NotReflexive notReflexive = new NotReflexive(); try { equivalenceTester() .addEquivalentGroup(notReflexive) .check(); fail("Expected EquivalenceAssertionError"); } catch (EquivalenceAssertionError e) { assertExpectedFailures(e, new ElementCheckFailure(NOT_REFLEXIVE, 0, 0, notReflexive)); } }
@Test public void equalsUnrelatedClass() { EqualsUnrelatedClass equalsUnrelatedClass = new EqualsUnrelatedClass(); try { equivalenceTester() .addEquivalentGroup(equalsUnrelatedClass) .check(); fail("Expected EquivalenceAssertionError"); } catch (EquivalenceAssertionError e) { assertExpectedFailures(e, new ElementCheckFailure(EQUAL_TO_UNRELATED_CLASS, 0, 0, equalsUnrelatedClass)); } }
@Test public void notReflexive() { NotReflexive notReflexive = new NotReflexive(); try { equivalenceTester() .addEquivalentGroup(notReflexive) .check(); fail("Expected EquivalenceAssertionError"); } catch (EquivalenceAssertionError e) { assertExpectedFailures(e, new ElementCheckFailure(NOT_REFLEXIVE, 0, 0, notReflexive)); } }
@Test public void equalsNullThrowsException() { EqualsNullThrowsException equalsNullThrowsException = new EqualsNullThrowsException(); try { equivalenceTester() .addEquivalentGroup(equalsNullThrowsException) .check(); fail("Expected EquivalenceAssertionError"); } catch (EquivalenceAssertionError e) { assertExpectedFailures(e, new ElementCheckFailure(EQUAL_NULL_EXCEPTION, 0, 0, equalsNullThrowsException)); } }
@Test public void notReflexive() { NotReflexive notReflexive = new NotReflexive(); try { equivalenceTester() .addEquivalentGroup(notReflexive) .check(); fail("Expected EquivalenceAssertionError"); } catch (EquivalenceAssertionError e) { assertExpectedFailures(e, new ElementCheckFailure(NOT_REFLEXIVE, 0, 0, notReflexive)); } }
@Test public void equalsUnrelatedClass() { EqualsUnrelatedClass equalsUnrelatedClass = new EqualsUnrelatedClass(); try { equivalenceTester() .addEquivalentGroup(equalsUnrelatedClass) .check(); fail("Expected EquivalenceAssertionError"); } catch (EquivalenceAssertionError e) { assertExpectedFailures(e, new ElementCheckFailure(EQUAL_TO_UNRELATED_CLASS, 0, 0, equalsUnrelatedClass)); } }