using CM.Authentication.Abstractions; using CM.TransactionalEmail; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Xunit.Abstractions; namespace CM.Tests; public class TransactionalEmailTests(TestFixture fixture, ITestOutputHelper output) : IClassFixture { [Fact] public async Task AuthenticationAsync() { var jwtTokenManagerService = fixture.ServiceProvider.GetRequiredService(); var response = await jwtTokenManagerService.GetTokenAsync(); output.WriteLine("Successfully receive token type {0}", response.TokenType.ToString()); } [Fact] public async Task SendEmailAsync() { var configuration = fixture.ServiceProvider.GetRequiredService(); var transactionalEmailService = fixture.ServiceProvider.GetRequiredService(); var testRecipient = configuration["TestRecipient"]; var senderId = configuration["SenderId"]; Assert.NotNull(testRecipient); Assert.NotNull(senderId); await transactionalEmailService.SendEmailAsync(new SendEmailOptions() { Email = testRecipient, Sender = new Sender { Id = senderId }, Content = new EmailContent { Subject = "Send Email Test", Text = "Test Email", Encoding = EmailEncoding.Utf8, }, Tracking = new TrackingOptions { ClicksHtml = false, ClicksText = false, Opens = true }, Queue = 0 }); } }