GetHashCode() public method

public GetHashCode ( ) : int
return int
        public void GetHashCode_TwoIdenticalObjects_BothUninitialized_HashCodesAreEqual()
        {
            // Arrange
            var package1 = new PackageInfo();
            var package2 = new PackageInfo();

            // Act
            int hashCodeObject1 = package1.GetHashCode();
            int hashCodeObject2 = package2.GetHashCode();

            // Assert
            Assert.AreEqual(hashCodeObject1, hashCodeObject2);
        }
        public void GetHashCode_SameHashCodeIsReturnedEveryTimeTheMethodIsCalled_AsLongAsTheObjectDoesNotChange()
        {
            // Arrange
            var packageId = "Package";
            var packageVersion = "1.0.0";
            var package = new PackageInfo { Id = packageId, Version = packageVersion };

            int expectedHashcode = package.GetHashCode();

            for (var i = 0; i < 100; i++)
            {
                // Act
                package.Id = packageId;
                package.Version = packageVersion;
                int generatedHashCode = package.GetHashCode();

                // Assert
                Assert.AreEqual(expectedHashcode, generatedHashCode);
            }
        }
        public void GetHashCode_TwoIdenticalObjects_BothInitialized_HashCodesAreEqual()
        {
            // Arrange
            var package1 = new PackageInfo { Id = "Package1", Version = "1.0.0" };
            var package2 = new PackageInfo { Id = "Package1", Version = "1.0.0" };

            // Act
            int hashCodeObject1 = package1.GetHashCode();
            int hashCodeObject2 = package2.GetHashCode();

            // Assert
            Assert.AreEqual(hashCodeObject1, hashCodeObject2);
        }
        public void GetHashCode_ForAllUniqueObject_AUniqueHashCodeIsReturned()
        {
            var hashCodes = new Dictionary<int, PackageInfo>();

            for (var i = 0; i < 10000; i++)
            {
                // Act
                var packageInfo = new PackageInfo { Id = Guid.NewGuid().ToString(), Version = Guid.NewGuid().ToString() };

                int generatedHashCode = packageInfo.GetHashCode();

                // Assert
                Assert.IsFalse(hashCodes.ContainsKey(generatedHashCode));
                hashCodes.Add(generatedHashCode, packageInfo);
            }
        }