public void GetHashCode_SameHashCodeIsReturnedEveryTimeTheMethodIsCalled_AsLongAsTheObjectDoesNotChange() { // Arrange string resourceName = "Some Name"; string resourcePath = "Some\\Path"; var assemblyFileResourceInfo = new AssemblyFileResourceInfo(resourceName, resourcePath); int expectedHashcode = assemblyFileResourceInfo.GetHashCode(); for (var i = 0; i < 100; i++) { // Act assemblyFileResourceInfo.ResourceName = resourceName; assemblyFileResourceInfo.ResourcePath = resourcePath; int generatedHashCode = assemblyFileResourceInfo.GetHashCode(); // Assert Assert.AreEqual(expectedHashcode, generatedHashCode); } }
public void GetHashCode_TwoIdenticalObjects_HashCodesAreEqual(string resourceName, string resourcePath) { // Arrange var assemblyFileResourceInfo1 = new AssemblyFileResourceInfo(resourceName, resourcePath); var assemblyFileResourceInfo2 = new AssemblyFileResourceInfo(resourceName, resourcePath); // Act int hashCodeObject1 = assemblyFileResourceInfo1.GetHashCode(); int hashCodeObject2 = assemblyFileResourceInfo2.GetHashCode(); // Assert Assert.AreEqual(hashCodeObject1, hashCodeObject2); }
public void GetHashCode_ForAllUniqueObject_AUniqueHashCodeIsReturned() { var hashCodes = new Dictionary<int, AssemblyFileResourceInfo>(); for (var i = 0; i < 10000; i++) { // Act var assemblyFileResourceInfo = new AssemblyFileResourceInfo(Guid.NewGuid().ToString(), Guid.NewGuid().ToString()); int generatedHashCode = assemblyFileResourceInfo.GetHashCode(); // Assert Assert.IsFalse(hashCodes.ContainsKey(generatedHashCode)); hashCodes.Add(generatedHashCode, assemblyFileResourceInfo); } }