equalityTest<T> function

void equalityTest<T>(
  1. Nullary<T> tester,
  2. Nullary<T> other
)

ensure tester over deep equality

Implementation

void equalityTest<T>(
  Nullary<T> tester,
  Nullary<T> other,
) {
  /// ensure [tester] over deep equality with identical
  test(
    'GIVEN 2 instances of $T "tester" '
    'WHEN tester == other '
    'THEN returns false',
    () {
      expect(
        tester(),
        equals(tester()),
        reason: 'should be identical',
      );

      expect(
        tester().hashCode,
        equals(tester().hashCode),
        reason: 'hashCode should be identical',
      );
    },
  );

  /// ensure [tester] over deep equality against non identical
  test(
    'GIVEN 2 instances of $T "tester" and "other" '
    'WHEN tester == other '
    'THEN returns false',
    () {
      expect(
        tester(),
        isNot(equals(other())),
        reason: 'should NOT be identical',
      );

      expect(
        tester().hashCode,
        isNot(equals(other().hashCode)),
        reason: 'hashCode should NOT be identical',
      );
    },
  );
}