public void testEqualsEquivalent() { EquivalenceTester.of(Equivalence.equals()) .addEquivalenceGroup(new Integer(42), 42) .addEquivalenceGroup("a") .test(); }
public static <T> EquivalenceTester<T> of(Equivalence<? super T> equivalence) { return new EquivalenceTester<T>(equivalence); }
/** Run tests on equivalence methods, throwing a failure on an invalid test */ public EquivalenceTester<T> test() { for (int run = 0; run < REPETITIONS; run++) { testItems(); delegate.test(); } return this; }
public void testTest_inequivalence() { Object group1Item1 = new TestObject(1, 1); Object group2Item1 = new TestObject(2, 1); equivalenceMock.expectEquivalent(group1Item1, group2Item1); equivalenceMock.expectDistinct(group2Item1, group1Item1); equivalenceMock.expectHash(group1Item1, 1); equivalenceMock.expectHash(group2Item1, 2); equivalenceMock.replay(); try { tester.addEquivalenceGroup(group1Item1).addEquivalenceGroup(group2Item1).test(); } catch (AssertionFailedError expected) { assertThat(expected.getMessage()) .contains( "TestObject{group=1, item=1} [group 1, item 1] must not be equivalent to " + "TestObject{group=2, item=1} [group 2, item 1]"); return; } fail(); }
/** * Adds a group of objects that are supposed to be equivalent to each other and not equivalent to * objects in any other equivalence group added to this tester. */ public EquivalenceTester<T> addEquivalenceGroup(T first, T... rest) { addEquivalenceGroup(Lists.asList(first, rest)); return this; }
@Override public void setUp() throws Exception { super.setUp(); this.equivalenceMock = new MockEquivalence(); this.tester = EquivalenceTester.of(equivalenceMock); }
public void testTest_NoData() { tester.test(); }
public void testTest_symmetric() { Object group1Item1 = new TestObject(1, 1); Object group1Item2 = new TestObject(1, 2); equivalenceMock.expectEquivalent(group1Item1, group1Item2); equivalenceMock.expectDistinct(group1Item2, group1Item1); equivalenceMock.expectHash(group1Item1, 1); equivalenceMock.expectHash(group1Item2, 1); equivalenceMock.replay(); try { tester.addEquivalenceGroup(group1Item1, group1Item2).test(); } catch (AssertionFailedError expected) { assertThat(expected.getMessage()) .contains( "TestObject{group=1, item=2} [group 1, item 2] must be equivalent to " + "TestObject{group=1, item=1} [group 1, item 1]"); return; } fail(); }
@CheckResult public KeyTester addEquivalenceGroup(Key first, Key... rest) { assertUsedAsRule(); isUsedWithoutCallingTest = true; tester.addEquivalenceGroup(first, rest); return this; }
/** Test null reference yields error */ public void testOf_NullPointerException() { try { EquivalenceTester.of(null); fail("Should fail on null reference"); } catch (NullPointerException expected) { } }
public void test() { assertUsedAsRule(); isUsedWithoutCallingTest = false; tester.test(); assertThat(regressionTests).isNotEmpty(); int i = 1; for (Entry<Key, String> entry : regressionTests.entrySet()) { assert_() .withMessage( "Unexpected digest for regression test [" + i + "]: with key: " + entry.getKey()) .that(sha256.getStringDigest(entry.getKey())).isEqualTo(entry.getValue()); i++; } }
public void testIdentityEquivalent() { EquivalenceTester.of(Equivalence.identity()) .addEquivalenceGroup(new Integer(42)) .addEquivalenceGroup(new Integer(42)) .addEquivalenceGroup("a") .test(); }
public void testTest_hash() { Object group1Item1 = new TestObject(1, 1); Object group1Item2 = new TestObject(1, 2); equivalenceMock.expectEquivalent(group1Item1, group1Item2); equivalenceMock.expectEquivalent(group1Item2, group1Item1); equivalenceMock.expectHash(group1Item1, 1); equivalenceMock.expectHash(group1Item2, 2); equivalenceMock.replay(); try { tester.addEquivalenceGroup(group1Item1, group1Item2).test(); } catch (AssertionFailedError expected) { String expectedMessage = "the hash (1) of TestObject{group=1, item=1} [group 1, item 1] must be " + "equal to the hash (2) of TestObject{group=1, item=2} [group 1, item 2]"; if (!expected.getMessage().contains(expectedMessage)) { fail("<" + expected.getMessage() + "> expected to contain <" + expectedMessage + ">"); } return; } fail(); }
/** * Adds a group of objects that are supposed to be equivalent to each other and not equivalent to * objects in any other equivalence group added to this tester. */ public EquivalenceTester<T> addEquivalenceGroup(T first, T... rest) { addEquivalenceGroup(Lists.asList(first, rest)); return this; }
/** Test null reference yields error */ public void testOf_NullPointerException() { try { EquivalenceTester.of(null); fail("Should fail on null reference"); } catch (NullPointerException expected) { } }
public void testTest_NoData() { tester.test(); }
/** Run tests on equivalence methods, throwing a failure on an invalid test */ public EquivalenceTester<T> test() { for (int run = 0; run < REPETITIONS; run++) { testItems(); delegate.test(); } return this; }
public static <T> EquivalenceTester<T> of(Equivalence<? super T> equivalence) { return new EquivalenceTester<T>(equivalence); }
@SuppressWarnings("unchecked") // varargs public void testPairwiseEquivalent() { EquivalenceTester.of(Equivalence.equals().<String>pairwise()) .addEquivalenceGroup(ImmutableList.<String>of()) .addEquivalenceGroup(ImmutableList.of("a")) .addEquivalenceGroup(ImmutableList.of("b")) .addEquivalenceGroup(ImmutableList.of("a", "b"), ImmutableList.of("a", "b")) .test(); }
public void testTest_trasitive() { Object group1Item1 = new TestObject(1, 1); Object group1Item2 = new TestObject(1, 2); Object group1Item3 = new TestObject(1, 3); equivalenceMock.expectEquivalent(group1Item1, group1Item2); equivalenceMock.expectEquivalent(group1Item1, group1Item3); equivalenceMock.expectEquivalent(group1Item2, group1Item1); equivalenceMock.expectDistinct(group1Item2, group1Item3); equivalenceMock.expectEquivalent(group1Item3, group1Item1); equivalenceMock.expectEquivalent(group1Item3, group1Item2); equivalenceMock.expectHash(group1Item1, 1); equivalenceMock.expectHash(group1Item2, 1); equivalenceMock.expectHash(group1Item3, 1); equivalenceMock.replay(); try { tester.addEquivalenceGroup(group1Item1, group1Item2, group1Item3).test(); } catch (AssertionFailedError expected) { assertThat(expected.getMessage()) .contains( "TestObject{group=1, item=2} [group 1, item 2] must be equivalent to " + "TestObject{group=1, item=3} [group 1, item 3]"); return; } fail(); }