public static void GetHashCode___Should_return_same_hash_code___When_called_twice_with_null() { // Arrange var systemUnderTest = new NullableDateTimeEqualityComparer(); // Act var hash1 = systemUnderTest.GetHashCode(null); var hash2 = systemUnderTest.GetHashCode(null); // Assert hash1.Should().Be(hash2); }
public static void GetHashCode___Should_return_same_hash_code___When_called_twice_on_same_object_reference() { // Arrange DateTime?dateTime = DateTime.UtcNow; var systemUnderTest = new NullableDateTimeEqualityComparer(); // Act var hash1 = systemUnderTest.GetHashCode(dateTime); var hash2 = systemUnderTest.GetHashCode(dateTime); // Assert hash1.Should().Be(hash2); }
public static void GetHashCode___Should_return_same_hash_code___For_DateTime_objects_that_are_equal() { // Arrange DateTime?item1 = DateTime.UtcNow; DateTime?item2 = new DateTime(((DateTime)item1).Ticks, ((DateTime)item1).Kind); var systemUnderTest = new NullableDateTimeEqualityComparer(); // Act var hash1 = systemUnderTest.GetHashCode(item1); var hash2 = systemUnderTest.GetHashCode(item2); // Assert hash1.Should().Be(hash2); }
public static void GetHashCode___Should_not_throw___When_Nullable_DateTime_is_null() { // Arrange var systemUnderTest = new NullableDateTimeEqualityComparer(); // Act var hash = Record.Exception(() => systemUnderTest.GetHashCode(null)); // Assert hash.Should().BeNull(); }
public static void GetHashCode___Should_return_different_hash_code___For_different_DateTime_objects() { // Arrange DateTime?item1a = DateTime.UtcNow; DateTime?item1b = ((DateTime)item1a).AddTicks(1); DateTime?item2a = DateTime.Now; DateTime?item2b = ((DateTime)item2a).AddTicks(1); DateTime?item3a = new DateTime(DateTime.UtcNow.Ticks, DateTimeKind.Unspecified); DateTime?item3b = ((DateTime)item3a).AddTicks(1); DateTime?item4a = DateTime.UtcNow; DateTime?item4b = new DateTime(((DateTime)item4a).Ticks, DateTimeKind.Local); DateTime?item5a = DateTime.UtcNow; DateTime?item5b = new DateTime(((DateTime)item5a).Ticks, DateTimeKind.Unspecified); DateTime?item6a = DateTime.Now; DateTime?item6b = new DateTime(((DateTime)item6a).Ticks, DateTimeKind.Unspecified); var systemUnderTest = new NullableDateTimeEqualityComparer(); // Act var hash1a = systemUnderTest.GetHashCode(item1a); var hash1b = systemUnderTest.GetHashCode(item1b); var hash2a = systemUnderTest.GetHashCode(item2a); var hash2b = systemUnderTest.GetHashCode(item2b); var hash3a = systemUnderTest.GetHashCode(item3a); var hash3b = systemUnderTest.GetHashCode(item3b); var hash4a = systemUnderTest.GetHashCode(item4a); var hash4b = systemUnderTest.GetHashCode(item4b); var hash5a = systemUnderTest.GetHashCode(item5a); var hash5b = systemUnderTest.GetHashCode(item5b); var hash6a = systemUnderTest.GetHashCode(item6a); var hash6b = systemUnderTest.GetHashCode(item6b); // Assert hash1a.Should().NotBe(hash1b); hash2a.Should().NotBe(hash2b); hash3a.Should().NotBe(hash3b); hash4a.Should().NotBe(hash4b); hash5a.Should().NotBe(hash5b); hash6a.Should().NotBe(hash6b); }