From 46d1e37371ae8199449fc20c7f8d84854c272745 Mon Sep 17 00:00:00 2001 From: tumiwisista Date: Sun, 8 Jun 2025 02:27:47 +0200 Subject: [PATCH] Add null value object equality test --- .../ValueObjectNullTests.cs | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 tests/AggregateKit.Tests/ValueObjectNullTests.cs diff --git a/tests/AggregateKit.Tests/ValueObjectNullTests.cs b/tests/AggregateKit.Tests/ValueObjectNullTests.cs new file mode 100644 index 0000000..335a45c --- /dev/null +++ b/tests/AggregateKit.Tests/ValueObjectNullTests.cs @@ -0,0 +1,37 @@ +using System.Collections.Generic; +using Xunit; + +namespace AggregateKit.Tests +{ + public class ValueObjectNullTests + { + private class NullableVO : ValueObject + { + public string? Value { get; } + + public NullableVO(string? value) + { + Value = value; + } + + protected override IEnumerable GetEqualityComponents() + { + yield return Value; + } + } + + [Fact] + public void ValueObjects_With_Null_Value_Are_Equal_And_GetHashCode_Does_Not_Throw() + { + // Arrange + var vo1 = new NullableVO(null); + var vo2 = new NullableVO(null); + + // Act & Assert + Assert.Equal(vo1, vo2); + var hash1 = vo1.GetHashCode(); + var hash2 = vo2.GetHashCode(); + Assert.Equal(hash1, hash2); + } + } +}