diff --git a/src/core/DigitalData.MessagingService.Application/EmailSending/Commands/GetEmailAccountQueryExtensions.cs b/src/core/DigitalData.MessagingService.Application/EmailSending/Commands/GetEmailAccountQueryExtensions.cs index bb9c832..20ca898 100644 --- a/src/core/DigitalData.MessagingService.Application/EmailSending/Commands/GetEmailAccountQueryExtensions.cs +++ b/src/core/DigitalData.MessagingService.Application/EmailSending/Commands/GetEmailAccountQueryExtensions.cs @@ -5,7 +5,7 @@ namespace DigitalData.MessagingService.Application.EmailSending.Commands; public static class GetEmailAccountQueryExtensions { - public static GetEmailAccountQuery ToSender(string emailAddress) + public static GetEmailAccountQuery ToSender(this string emailAddress) { return new GetEmailAccountQuery { diff --git a/src/presentation/DigitalData.MessagingService.Client/DigitalData.MessagingService.Client.csproj b/src/presentation/DigitalData.MessagingService.Client/DigitalData.MessagingService.Client.csproj index d2a5af4..1568c6b 100644 --- a/src/presentation/DigitalData.MessagingService.Client/DigitalData.MessagingService.Client.csproj +++ b/src/presentation/DigitalData.MessagingService.Client/DigitalData.MessagingService.Client.csproj @@ -11,9 +11,9 @@ icon.png http://git.dd:3000/AppStd/Rec.git digital data messaging service api client - 2.0.0 - 2.0.0.0 - 2.0.0.0 + 3.0.0 + 3.0.0.0 + 3.0.0.0 enable enable diff --git a/tests/DigitalData.MessagingService.Tests/Integration/MessagingServiceClientTests.cs b/tests/DigitalData.MessagingService.Tests/Integration/MessagingServiceClientTests.cs index f741c67..6b74fa8 100644 --- a/tests/DigitalData.MessagingService.Tests/Integration/MessagingServiceClientTests.cs +++ b/tests/DigitalData.MessagingService.Tests/Integration/MessagingServiceClientTests.cs @@ -18,6 +18,7 @@ public sealed class MessagingServiceClientTests : IAsyncDisposable { private const string SenderAddress = "test-flow@digitaldata.works"; private const string RecipientAddress = "htek0100@gmail.com"; + private const string MessagingServiceApiBaseAddress = "http://172.24.12.39:1414"; private readonly ServiceProvider _serviceProvider; private readonly IMessagingServiceClient _client; @@ -59,21 +60,41 @@ public sealed class MessagingServiceClientTests : IAsyncDisposable { var subject = $"MessagingServiceClient Integration Test {Guid.NewGuid():N}"; - var command = new PublishEmailViaSmtpCommand + var command = CreateCommand(subject); + + await _client.SendAsync(command); + + Assert.True(true, "Verify in mailbox."); + } + + [Fact] + public async Task SendAsync_WithHttpClientDependencyInjection_PublishesExpectedMessage() + { + var services = new ServiceCollection(); + services.AddLogging(); + services.AddMessagingServiceHttpClient(client => client.BaseAddress = new Uri(MessagingServiceApiBaseAddress)); + + await using var serviceProvider = services.BuildServiceProvider(); + var client = serviceProvider.GetRequiredService(); + + var subject = $"MessagingServiceHttpClient Integration Test {Guid.NewGuid():N}"; + var command = CreateCommand(subject); + + await Record.ExceptionAsync(() => client.SendAsync(command)); + + Assert.True(true, "Verify in mailbox."); + } + + private static PublishEmailViaSmtpCommand CreateCommand(string subject) + { + return new PublishEmailViaSmtpCommand { - Sender = new GetEmailAccountQuery - { - Username = SenderAddress - }, + Sender = SenderAddress.ToSender(), Recipients = [RecipientAddress], Subject = subject, Body = "

Realistic test mail via MessagingServiceClient.

", IsHtml = true }; - - await _client.SendAsync(command); - - Assert.True(true, "Verify in mailbox."); } private async Task FindMessageBySubjectAsync(string subject, int maxMessages = 100)