< Summary

Information
Class: ArturRios.Messaging.Email.IEmailService
Assembly: ArturRios.Messaging
File(s): /home/ci/agent/workspace/dotnet-messaging-docs_main/app/src/Email/IEmailService.cs
Line coverage
100%
Covered lines: 3
Uncovered lines: 0
Coverable lines: 3
Total lines: 37
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage
100%
Covered methods: 1
Fully covered methods: 1
Total methods: 1
Method coverage: 100%
Full method coverage: 100%

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
SendEmailAsync(...)100%22100%

File(s)

/home/ci/agent/workspace/dotnet-messaging-docs_main/app/src/Email/IEmailService.cs

#LineLine coverage
 1using ArturRios.Output;
 2
 3namespace ArturRios.Messaging.Email;
 4
 5/// <summary>
 6/// Defines an e-mail delivery service.
 7/// </summary>
 8public interface IEmailService
 9{
 10    /// <summary>
 11    /// Sends a plain text e-mail.
 12    /// </summary>
 13    /// <param name="to">Recipient e-mail address.</param>
 14    /// <param name="subject">Subject line of the e-mail.</param>
 15    /// <param name="body">Plain text body of the e-mail.</param>
 16    /// <returns>A <see cref="ProcessOutput"/> describing whether the e-mail was accepted for delivery.</returns>
 17    Task<ProcessOutput> SendEmailAsync(string to, string subject, string body);
 18
 19    /// <summary>
 20    /// Sends a plain text e-mail, observing <paramref name="cancellationToken"/>.
 21    /// </summary>
 22    /// <param name="to">Recipient e-mail address.</param>
 23    /// <param name="subject">Subject line of the e-mail.</param>
 24    /// <param name="body">Plain text body of the e-mail.</param>
 25    /// <param name="cancellationToken">Cancels the send.</param>
 26    /// <returns>A <see cref="ProcessOutput"/> describing whether the e-mail was accepted for delivery.</returns>
 27    /// <exception cref="OperationCanceledException"><paramref name="cancellationToken"/> was canceled.</exception>
 28    /// <remarks>
 29    /// The default implementation, for implementations written before this overload existed, only checks the token
 30    /// before delegating to <see cref="SendEmailAsync(string, string, string)"/>. <see cref="MailgunEmailService"/>
 31    /// passes it on to the HTTP request.
 32    /// </remarks>
 33    Task<ProcessOutput> SendEmailAsync(string to, string subject, string body, CancellationToken cancellationToken)
 234        => cancellationToken.IsCancellationRequested
 235            ? Task.FromCanceled<ProcessOutput>(cancellationToken)
 236            : SendEmailAsync(to, subject, body);
 37}