public void EntityIsComparedBasedOnId()
        {
            // Arrange
            var comp = new MediaEntityComparer();
            var a    = new MediaEntity
            {
                ID = 123
            };
            var b = new MediaEntity
            {
                ID = 123
            };
            var c = new MediaEntity
            {
                ID = 111
            };

            // Act
            var ab = comp.Equals(a, b);
            var ba = comp.Equals(b, a);
            var ac = comp.Equals(a, c);

            // Assert
            Assert.IsTrue(ab);
            Assert.IsTrue(ba);
            Assert.IsFalse(ac);
        }
        public void HashCodeForNullThrowsException()
        {
            // Arrange
            var comp = new MediaEntityComparer();

            // Act
            var ex = ExceptionAssert.Catch <ArgumentNullException>(() => comp.GetHashCode(null));

            // Assert
            Assert.IsNotNull(ex);
        }
        public void HashCodeForNullThrowsException()
        {
            // Arrange
            var comp = new MediaEntityComparer();

            // Act
            // ReSharper disable once ReturnValueOfPureMethodIsNotUsed
            var ex = ExceptionAssert.Catch <ArgumentNullException>(() => comp.GetHashCode(null));

            // Assert
            Assert.IsNotNull(ex);
        }
        public void HashCodeForObjectIsCalculatedCorrectly()
        {
            // Arrange
            var comp   = new MediaEntityComparer();
            var entity = new MediaEntity
            {
                ID = 123
            };

            // Act
            var hash = comp.GetHashCode(entity);

            // Assert
            Assert.AreEqual(entity.ID.GetHashCode(), hash);
        }