public void GetHashCode_TwoIdenticalObjects_BothUninitialized_HashCodesAreEqual() { // Arrange var package1 = new SystemInformation(); var package2 = new SystemInformation(); // Act int hashCodeObject1 = package1.GetHashCode(); int hashCodeObject2 = package2.GetHashCode(); // Assert Assert.AreEqual(hashCodeObject1, hashCodeObject2); }
public void GetHashCode_TwoIdenticalObjects_BothInitialized_HashCodesAreEqual() { // Arrange var timestamp = DateTime.UtcNow; var object1 = new SystemInformation { MachineName = Environment.MachineName, Timestamp = timestamp, SystemPerformance = new SystemPerformanceData() }; var object2 = new SystemInformation { MachineName = Environment.MachineName, Timestamp = timestamp, SystemPerformance = new SystemPerformanceData() }; // Act int hashCodeObject1 = object1.GetHashCode(); int hashCodeObject2 = object2.GetHashCode(); // Assert Assert.AreEqual(hashCodeObject1, hashCodeObject2); }
public void GetHashCode_SameHashCodeIsReturnedEveryTimeTheMethodIsCalled_AsLongAsTheObjectDoesNotChange() { // Arrange var machineName = Environment.MachineName; var timeStamp = DateTime.UtcNow; var object1 = new SystemInformation { MachineName = machineName, Timestamp = timeStamp, SystemPerformance = new SystemPerformanceData() }; int expectedHashcode = object1.GetHashCode(); for (var i = 0; i < 100; i++) { // Act object1.MachineName = machineName; object1.Timestamp = timeStamp; int generatedHashCode = object1.GetHashCode(); // Assert Assert.AreEqual(expectedHashcode, generatedHashCode); } }
public void GetHashCode_TwoDistinctObjects_HashCodesAreDifferent() { // Arrange var object1 = new SystemInformation { MachineName = Environment.MachineName, Timestamp = DateTime.UtcNow, SystemPerformance = new SystemPerformanceData() }; var object2 = new SystemInformation { MachineName = "Different Machine", Timestamp = DateTime.UtcNow, SystemPerformance = new SystemPerformanceData() }; // Act int hashCodeObject1 = object1.GetHashCode(); int hashCodeObject2 = object2.GetHashCode(); // Assert Assert.AreNotEqual(hashCodeObject1, hashCodeObject2); }
public void GetHashCode_ForAllUniqueObject_AUniqueHashCodeIsReturned() { var timeStamp = DateTime.UtcNow; var hashCodes = new Dictionary<int, SystemInformation>(); for (var i = 0; i < 1000; i++) { // Act var object1 = new SystemInformation { MachineName = Environment.MachineName + i, Timestamp = timeStamp, SystemPerformance = new SystemPerformanceData() }; int generatedHashCode = object1.GetHashCode(); // Assert Assert.IsFalse(hashCodes.ContainsKey(generatedHashCode)); hashCodes.Add(generatedHashCode, object1); } }