public void Equals_returns_true_if_entity_types_and_values_are_equal([Frozen] IGetsEntityTypeForIdentityEquality equalityTypeProvider, IdentityEqualityComparer sut, IIdentity identity1, IIdentity identity2) { Mock.Get(identity1).SetupGet(x => x.Value).Returns(1); Mock.Get(identity1).SetupGet(x => x.EntityType).Returns(typeof(Cat)); Mock.Get(equalityTypeProvider).Setup(x => x.GetIdentityEqualityType(typeof(Cat))).Returns(typeof(Animal)); Mock.Get(identity2).SetupGet(x => x.Value).Returns(1); Mock.Get(identity2).SetupGet(x => x.EntityType).Returns(typeof(Dog)); Mock.Get(equalityTypeProvider).Setup(x => x.GetIdentityEqualityType(typeof(Dog))).Returns(typeof(Animal)); Assert.That(sut.Equals(identity1, identity2), Is.True); }
public void GetHashCode_gets_hash_code_equal_to_hash_of_entity_type_and_identity_value([Frozen] IGetsEntityTypeForIdentityEquality equalityTypeProvider, IdentityEqualityComparer sut, IIdentity identity) { Mock.Get(identity).SetupGet(x => x.Value).Returns(55); Mock.Get(identity).SetupGet(x => x.EntityType).Returns(typeof(Cat)); Mock.Get(equalityTypeProvider).Setup(x => x.GetIdentityEqualityType(typeof(Cat))).Returns(typeof(Animal)); Assert.That(sut.GetHashCode(identity), Is.EqualTo(55.GetHashCode() ^ typeof(Animal).GetHashCode())); }
/// <summary> /// Initializes a new instance of the <see cref="IdentityEqualityComparer"/> class. /// </summary> /// <param name="identityEqualityTypeProvider">An identity equality type provider implementation (use <c>null</c> here to select a default implementation).</param> public IdentityEqualityComparer(IGetsEntityTypeForIdentityEquality identityEqualityTypeProvider = null) { this.identityEqualityTypeProvider = identityEqualityTypeProvider ?? new EntityIdentityEqualityTypeProvider(); }