public void NonNullInstance_ComparedWillObject_IsFalse()
        {
            EntityWithIdOfInt entity1 = new EntityWithIdOfInt { Id = 1 };
            object entity2 = null;

            Assert.IsFalse(entity1.Equals(entity2));
        }
        public void Compare_InstanceWithTransientID_With_InstanceWithNonTransientID_AreNotEqual()
        {
            var entity1 = new EntityWithIdOfInt();
            var entity2 = new EntityWithIdOfInt { Id = 1 };

            Assert.IsFalse(entity1.Equals(entity2));
        }
        public void TwoInstances_WithDifferentIds_Should_NOT_BeEqual()
        {
            var entity1 = new EntityWithIdOfInt { Id = 1 };
            var entity2 = new EntityWithIdOfInt { Id = 2 };

            Assert.IsFalse(Equals(entity1, entity2));
            Assert.IsFalse(entity2.Equals(entity1));
            Assert.AreNotEqual(entity1.GetHashCode(), entity2.GetHashCode());
        }
        public void TwoInstances_WithSameId_ShouldBeEqual()
        {
            var entity1 = new EntityWithIdOfInt { Id = 1 };
            var entity2 = new EntityWithIdOfInt { Id = 1 };

            Assert.IsTrue(Equals(entity1, entity2));
            Assert.IsTrue(entity2.Equals(entity1));
            Assert.AreEqual(entity1.GetHashCode(), entity2.GetHashCode());
        }