From a0529a0431a5b00172a0c28b516f9973bf3a6f02 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 16 May 2022 15:46:14 +0800 Subject: [PATCH] Fix the problem of `ValueObject` return value. https://github.com/abpframework/abp/pull/12510 --- .../Volo/Abp/Domain/Values/ValueObject.cs | 2 +- .../Volo/Abp/Domain/Values/EmailAddress.cs | 25 +++++++++++++++++++ .../Abp/Domain/Values/ValueObject_Tests.cs | 5 ++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 framework/test/Volo.Abp.Ddd.Tests/Volo/Abp/Domain/Values/EmailAddress.cs diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Values/ValueObject.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Values/ValueObject.cs index ff6fef3def..4c9dab3487 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Values/ValueObject.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Values/ValueObject.cs @@ -44,6 +44,6 @@ public abstract class ValueObject } } - return !thisValues.MoveNext() && !otherValues.MoveNext(); + return !thisMoveNext && !otherMoveNext; } } diff --git a/framework/test/Volo.Abp.Ddd.Tests/Volo/Abp/Domain/Values/EmailAddress.cs b/framework/test/Volo.Abp.Ddd.Tests/Volo/Abp/Domain/Values/EmailAddress.cs new file mode 100644 index 0000000000..68a12326c4 --- /dev/null +++ b/framework/test/Volo.Abp.Ddd.Tests/Volo/Abp/Domain/Values/EmailAddress.cs @@ -0,0 +1,25 @@ +using System.Collections.Generic; + +namespace Volo.Abp.Domain.Values; + +public class EmailAddress : ValueObject +{ + public string Email { get; } + + private EmailAddress() + { + } + + public EmailAddress(string email) + { + Email = email; + } + + protected override IEnumerable GetAtomicValues() + { + if (Email != null) + { + yield return Email; + } + } +} diff --git a/framework/test/Volo.Abp.Ddd.Tests/Volo/Abp/Domain/Values/ValueObject_Tests.cs b/framework/test/Volo.Abp.Ddd.Tests/Volo/Abp/Domain/Values/ValueObject_Tests.cs index 144d4350d3..11b2581437 100644 --- a/framework/test/Volo.Abp.Ddd.Tests/Volo/Abp/Domain/Values/ValueObject_Tests.cs +++ b/framework/test/Volo.Abp.Ddd.Tests/Volo/Abp/Domain/Values/ValueObject_Tests.cs @@ -31,5 +31,10 @@ public class ValueObject_Tests address2 = new Address(cityId, "Baris Manco", 42, "home"); address1.ValueEquals(address2).ShouldBeFalse(); + + var emailAddress1 = new EmailAddress("test@abp.io"); + var emailAddress2 = new EmailAddress(null); + + emailAddress1.ValueEquals(emailAddress2).ShouldBeFalse(); } }