private static <T> void testEquals( Class<T> interfaceType, Function<? super T, ? extends T> wrapperFunction) { FreshValueGenerator generator = new FreshValueGenerator(); T instance = generator.newFreshProxy(interfaceType); new EqualsTester() .addEqualityGroup(wrapperFunction.apply(instance), wrapperFunction.apply(instance)) .addEqualityGroup(wrapperFunction.apply(generator.newFreshProxy(interfaceType))) // TODO: add an overload to EqualsTester to print custom error message? .testEquals(); }
/** * Test EqualsTester after populating equalObjects. This checks proper handling of equality and * verifies hashCode for valid objects */ public void testTestEqualsEqualsObjects() { equalsTester.addEqualityGroup(reference, equalObject1, equalObject2); equalsTester.testEquals(); }
public void testNullObjectInEqualityGroup() { EqualsTester tester = new EqualsTester(); try { tester.addEqualityGroup(1, null, 3); fail(); } catch (NullPointerException e) { assertErrorMessage(e, "at index 1"); } }
TypeVariableEqualsTester addEqualityGroup(Type jvmType, Type... types) { if (Types.NativeTypeVariableEquals.NATIVE_TYPE_VARIABLE_ONLY) { tester.addEqualityGroup(jvmType); tester.addEqualityGroup((Object[]) types); } else { tester.addEqualityGroup(Lists.asList(jvmType, types).toArray()); } return this; }
/** Run tests on equals method, throwing a failure on an invalid test */ public EqualsTester testEquals() { RelationshipTester<Object> delegate = new RelationshipTester<>( Equivalence.equals(), "Object#equals", "Object#hashCode", itemReporter); for (List<Object> group : equalityGroups) { delegate.addRelatedGroup(group); } for (int run = 0; run < REPETITIONS; run++) { testItems(); delegate.test(); } return this; }
/** Test proper handling where an object is not equal to one the user has said should be equal */ public void testInvalidNotEqualsEqualObject() { equalsTester.addEqualityGroup(reference, notEqualObject1); try { equalsTester.testEquals(); } catch (AssertionFailedError e) { assertErrorMessage(e, reference + " [group 1, item 1]"); assertErrorMessage(e, notEqualObject1 + " [group 1, item 2]"); return; } fail("Should get not equal to equal object error"); }
/** Test equalObjects after adding multiple instances at once with a null */ public void testAddTwoEqualObjectsAtOnceWithNull() { try { equalsTester.addEqualityGroup(reference, equalObject1, null); fail("Should fail on null equal object"); } catch (NullPointerException e) { } }
@CollectionSize.Require(absent = ZERO) public void testNotEqualsEmpty() { new EqualsTester() .addEqualityGroup(multimap()) .addEqualityGroup(getSubjectGenerator().create()) .testEquals(); }
/** Test null reference yields error */ public void testAddNullReference() { try { equalsTester.addEqualityGroup((Object) null); fail("Should fail on null reference"); } catch (NullPointerException e) { } }
@CollectionSize.Require(absent = ZERO) public void testNotEqualsEmpty() { new EqualsTester() .addEqualityGroup(getMultiset()) .addEqualityGroup(getSubjectGenerator().create()) .testEquals(); }
public <A, B> void testEquals() throws Exception { Method method = TypeParameterTest.class.getDeclaredMethod("testEquals"); new EqualsTester() .addEqualityGroup(new TypeParameter<A>() {}, new TypeParameter<A>() {}) .addEqualityGroup(new TypeParameter<B>() {}) .testEquals(); }
public void testEqualsReflexive() { final Object delegate = new Object(); ForwardingObject forward = new ForwardingObject() { @Override protected Object delegate() { return delegate; } }; new EqualsTester().addEqualityGroup(forward).testEquals(); }
public void testEqualsSameContents() { new EqualsTester() .addEqualityGroup( getMultiset(), getSubjectGenerator().create(getSampleElements().toArray())) .testEquals(); }
public void testEqualsTrue() { new EqualsTester() .addEqualityGroup(multimap(), getSubjectGenerator().create(getSampleElements().toArray())) .testEquals(); }
@CollectionFeature.Require(SERIALIZABLE) public void testReserializeMap() { Map<K, V> deserialized = SerializableTester.reserialize(getMap()); new EqualsTester().addEqualityGroup(getMap(), deserialized).testEquals(); } }
public void testEqualsFalse() { List<Entry<K, V>> targetEntries = new ArrayList<>(getSampleElements()); targetEntries.add(Helpers.mapEntry(k0(), v3())); new EqualsTester() .addEqualityGroup(multimap()) .addEqualityGroup(getSubjectGenerator().create(targetEntries.toArray())) .testEquals(); }
public void testOfInstance_equals() { new EqualsTester() .addEqualityGroup(Suppliers.ofInstance("foo"), Suppliers.ofInstance("foo")) .addEqualityGroup(Suppliers.ofInstance("bar")) .testEquals(); }
public void testIsEqualTo_equality() { new EqualsTester() .addEqualityGroup(Predicates.equalTo(1), Predicates.equalTo(1)) .addEqualityGroup(Predicates.equalTo(2)) .addEqualityGroup(Predicates.equalTo(null)) .testEquals(); }
public void testIsEqualToNull_equality() { new EqualsTester() .addEqualityGroup(Predicates.equalTo(null), Predicates.equalTo(null)) .addEqualityGroup(Predicates.equalTo(1)) .addEqualityGroup(Predicates.equalTo("null")) .testEquals(); }
public void testEquals() { new EqualsTester() .addEqualityGroup(ImmutableMultimap.of(), ImmutableMultimap.of()) .addEqualityGroup(ImmutableMultimap.of(1, "a"), ImmutableMultimap.of(1, "a")) .addEqualityGroup( ImmutableMultimap.of(1, "a", 2, "b"), ImmutableMultimap.of(2, "b", 1, "a")) .testEquals(); } }