Refactor email handling for multiple recipients
Refactored the `Email` and `OutgoingEmailEvent` classes to replace the `Recipient` property with a `Recipients` collection, enabling support for multiple recipients. Updated all related test cases, including `EmailSenderTests`, `EmailSenderUrlOverloadTests`, and `OutgoingEmailPublisherTests`, to reflect this change. Moved the `EmailAccountDto` class and its references from the `DigitalData.MessagingService.Application.Common.Dtos` namespace to the `DigitalData.MessagingService.Publisher.Abstraction` namespace for better code organization. Updated `using` directives across affected files. Removed unused `using` directives and updated the `Email` class's `ToEvent` method to map the new `Recipients` property. Adjusted test assertions to validate collections instead of single recipient strings.
This commit is contained in:
@@ -77,7 +77,7 @@ public sealed class EmailSenderTests
|
||||
{
|
||||
var email = new Email
|
||||
{
|
||||
Recipient = "hakanttek@gmail.com",
|
||||
Recipients = ["hakanttek@gmail.com"],
|
||||
Subject = "EmailSender.Send Integration Test",
|
||||
Body = "<p>Sent via EmailSender static client.</p>",
|
||||
IsHtml = true,
|
||||
@@ -93,7 +93,7 @@ public sealed class EmailSenderTests
|
||||
{
|
||||
var email = new Email
|
||||
{
|
||||
Recipient = "hakanttek@gmail.com",
|
||||
Recipients = ["hakanttek@gmail.com"],
|
||||
Subject = "Plain Text Test",
|
||||
Body = "This is a plain text email.",
|
||||
IsHtml = false
|
||||
|
||||
@@ -57,7 +57,7 @@ public sealed class EmailSenderUrlOverloadTests
|
||||
{
|
||||
var email = new Email
|
||||
{
|
||||
Recipient = "url-overload-test@example.com",
|
||||
Recipients = ["url-overload-test@example.com"],
|
||||
Subject = "URL Overload Integration Test",
|
||||
Body = "<p>Sent after URL-based connection.</p>",
|
||||
IsHtml = true
|
||||
|
||||
@@ -37,7 +37,7 @@ public sealed class OutgoingEmailPublisherTests : IAsyncDisposable
|
||||
var email = new OutgoingEmailEvent
|
||||
{
|
||||
Id = Guid.NewGuid(),
|
||||
Recipient = "test@example.com",
|
||||
Recipients = ["test@example.com"],
|
||||
Subject = "Integration Test - EnqueueAsync",
|
||||
Body = "<p>Hello from integration test.</p>",
|
||||
IsHtml = true,
|
||||
@@ -62,7 +62,7 @@ public sealed class OutgoingEmailPublisherTests : IAsyncDisposable
|
||||
var emails = Enumerable.Range(1, 3).Select(i => new OutgoingEmailEvent
|
||||
{
|
||||
Id = Guid.NewGuid(),
|
||||
Recipient = $"recipient{i}@example.com",
|
||||
Recipients = new List<string> { $"recipient{i}@example.com" },
|
||||
Subject = $"Integration Test - Batch #{i}",
|
||||
Body = $"Batch message {i}",
|
||||
IsHtml = false,
|
||||
@@ -85,7 +85,7 @@ public sealed class OutgoingEmailPublisherTests : IAsyncDisposable
|
||||
var email = new OutgoingEmailEvent
|
||||
{
|
||||
Id = Guid.NewGuid(),
|
||||
Recipient = "depth-test@example.com",
|
||||
Recipients = ["depth-test@example.com"],
|
||||
Subject = "Integration Test - GetQueueDepth",
|
||||
Body = "Queue depth test",
|
||||
IsHtml = false,
|
||||
@@ -108,7 +108,7 @@ public sealed class OutgoingEmailPublisherTests : IAsyncDisposable
|
||||
var email = new OutgoingEmailEvent
|
||||
{
|
||||
Id = id,
|
||||
Recipient = "serialize@example.com",
|
||||
Recipients = new List<string> { "serialize@example.com" },
|
||||
Subject = "Serialization Test",
|
||||
Body = "<strong>Bold</strong>",
|
||||
IsHtml = true,
|
||||
@@ -123,7 +123,7 @@ public sealed class OutgoingEmailPublisherTests : IAsyncDisposable
|
||||
|
||||
Assert.NotNull(received);
|
||||
Assert.Equal(id, received.Id);
|
||||
Assert.Equal("serialize@example.com", received.Recipient);
|
||||
Assert.Equal(["serialize@example.com"], received.Recipients);
|
||||
Assert.Equal("Serialization Test", received.Subject);
|
||||
Assert.Equal("<strong>Bold</strong>", received.Body);
|
||||
Assert.True(received.IsHtml);
|
||||
|
||||
Reference in New Issue
Block a user