- Added `RealEmailTemplates` property with predefined email templates. - Populated the repository with these templates in the `Setup` method. - Ensures tests have consistent, realistic email data available.
139 lines
7.8 KiB
C#
139 lines
7.8 KiB
C#
using Bogus;
|
|
using DigitalData.Core.Abstraction.Application.Repository;
|
|
using DigitalData.UserManager.Domain.Entities;
|
|
using EnvelopeGenerator.Application.Envelopes.Commands;
|
|
using EnvelopeGenerator.Domain.Entities;
|
|
using MediatR;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
namespace EnvelopeGenerator.Tests.Application;
|
|
|
|
public abstract class TestBase : Faker
|
|
{
|
|
protected Fake.Host Host;
|
|
|
|
protected User User => Host.User;
|
|
|
|
protected IMediator Mediator => Host.Mediator;
|
|
|
|
protected CreateEnvelopeCommand FakeCreateEnvelopeCommand => this.CreateEnvelopeCommand(Host.User.Id);
|
|
|
|
protected Envelope FakeEnvelope => this.CreateEnvelope(Host.User.Id);
|
|
|
|
protected IRepository<T> GetRepository<T>() where T : class => Host.GetRepository<T>();
|
|
|
|
protected IRepository Repository => Host.Services.GetRequiredService<IRepository>();
|
|
|
|
protected abstract void ConfigureServices(IServiceCollection services);
|
|
|
|
[SetUp]
|
|
public virtual async Task Setup()
|
|
{
|
|
Host = Fake.CreateHost(ConfigureServices);
|
|
await Host.AddSamples();
|
|
|
|
// Add seed email templates
|
|
foreach (var temp in SeedEmailTemplates)
|
|
await Repository.CreateAsync(temp);
|
|
}
|
|
|
|
[TearDown]
|
|
public virtual void TearDown()
|
|
{
|
|
Host.Dispose();
|
|
}
|
|
|
|
protected static List<EmailTemplate> SeedEmailTemplates => new()
|
|
{
|
|
new EmailTemplate
|
|
{
|
|
Id = 1,
|
|
Name = "DocumentReceived",
|
|
Body = "Guten Tag [NAME_RECEIVER],<br /> <br /><B><I> [NAME_SENDER]</I></B> hat Ihnen ein Dokument zum [SIGNATURE_TYPE] gesendet.<br /> <br /> Über den folgenden Link können Sie das Dokument einsehen und elektronisch unterschreiben: <a href=\"[LINK_TO_DOCUMENT]\">[LINK_TO_DOCUMENT_TEXT]</a><br /> <br /> [MESSAGE]<br /> <br /> Mit freundlichen Grüßen<br /> <br /> [NAME_PORTAL]",
|
|
Subject = "Dokument erhalten: '[DOCUMENT_TITLE]'",
|
|
AddedWhen = DateTime.Parse("2024-05-29 09:33:54.913"),
|
|
ChangedWhen = DateTime.Parse("2025-05-09 10:25:03.020")
|
|
},
|
|
new EmailTemplate
|
|
{
|
|
Id = 2,
|
|
Name = "DocumentDeleted",
|
|
Body = "Guten Tag [NAME_RECEIVER],<br /> <br /><B><I> [NAME_SENDER]</I></B> hat den Umschlag <B><I>'[DOCUMENT_TITLE]'</I></B> gelöscht/zurückgezogen.<br /><p> Begründung: <br /> <I>[REASON]</I> <p> <br /> Mit freundlichen Grüßen<br /> <br /> [NAME_PORTAL]",
|
|
Subject = "Umschlag zurückgezogen: '[DOCUMENT_TITLE]'",
|
|
AddedWhen = DateTime.Parse("2024-05-29 09:33:54.913"),
|
|
ChangedWhen = DateTime.Parse("2025-05-09 10:25:03.033")
|
|
},
|
|
new EmailTemplate
|
|
{
|
|
Id = 3,
|
|
Name = "DocumentSigned",
|
|
Body = "Guten Tag [NAME_RECEIVER],<br /> <br /> hiermit bestätigen wir Ihnen die erfolgreiche Signatur für den Vorgang <B><I>'[DOCUMENT_TITLE]'</I></B>.<br /> Wenn alle Vertragspartner unterzeichnet haben, erhalten Sie ebenfalls per email ein unterschriebenes Exemplar mit dem Signierungszertifikat! <br /> Mit freundlichen Grüßen<br /> <br /> [NAME_PORTAL]",
|
|
Subject = "Dokument unterschrieben: '[DOCUMENT_TITLE]'",
|
|
AddedWhen = DateTime.Parse("2024-05-29 09:33:54.913"),
|
|
ChangedWhen = DateTime.Parse("2025-05-09 10:25:03.033")
|
|
},
|
|
new EmailTemplate
|
|
{
|
|
Id = 4,
|
|
Name = "DocumentCompleted",
|
|
Body = "Guten Tag [NAME_RECEIVER],<br /> <br /> Der Signaturvorgang <B><I>'[DOCUMENT_TITLE]'</I></B> wurde erfolgreich abgeschlossen.<br /> <br /> Sie erhalten das Dokument mit einem detaillierten Ergebnisbericht als Anhang zu dieser Email.<br /> <br /> Mit freundlichen Grüßen<br /> <br /> [NAME_PORTAL]",
|
|
Subject = "Umschlag abgeschlossen: '[DOCUMENT_TITLE]'",
|
|
AddedWhen = DateTime.Parse("2024-05-29 09:33:54.913"),
|
|
ChangedWhen = DateTime.Parse("2025-05-09 10:25:03.050")
|
|
},
|
|
new EmailTemplate
|
|
{
|
|
Id = 5,
|
|
Name = "DocumentAccessCodeReceived",
|
|
Body = "Guten Tag [NAME_RECEIVER],<br /> <br /><B><I> [NAME_SENDER]</I></B> hat Ihnen ein Dokument zum [SIGNATURE_TYPE] gesendet. <br /> <br /> Verwenden Sie den folgenden Zugriffscode, um das Dokument einzusehen:<br /> <br /> [DOCUMENT_ACCESS_CODE]<br /> <br /> Mit freundlichen Grüßen<br /> <br /> [NAME_PORTAL]",
|
|
Subject = "Zugriffscode für Dokument erhalten: '[DOCUMENT_TITLE]'",
|
|
AddedWhen = DateTime.Parse("2024-05-29 09:33:54.913"),
|
|
ChangedWhen = DateTime.Parse("2025-05-09 10:25:03.050")
|
|
},
|
|
new EmailTemplate
|
|
{
|
|
Id = 6,
|
|
Name = "DocumentRejected_ADM",
|
|
Body = "Guten Tag [NAME_SENDER],<p><B><I>[NAME_RECEIVER]</I></B> hat den Umschlag <B><I>'[DOCUMENT_TITLE]'</I></B> mit folgendem Grund abgelehnt: <p> [REASON] <p>Der Umschlag wurde auf den Status Rejected gesetzt. <p> Mit freundlichen Grüßen<br /> <br /> [NAME_PORTAL]",
|
|
Subject = "'[DOCUMENT_TITLE]' - Unterzeichnungsvorgang zurückgezogen",
|
|
AddedWhen = DateTime.Parse("2024-06-06 10:25:14.917"),
|
|
ChangedWhen = DateTime.Parse("2025-05-09 10:25:03.067")
|
|
},
|
|
new EmailTemplate
|
|
{
|
|
Id = 9,
|
|
Name = "DocumentRejected_REC",
|
|
Body = "Guten Tag [NAME_RECEIVER], <p>Hiermit bestätigen wir Ihnen die Ablehnung des Unterzeichnungsvorganges <B><I>'[DOCUMENT_TITLE]'</I></B>!<p>Der Vertragsinhaber <B><I>[NAME_SENDER]</I></B> wurde über die Ablehnung informiert. <p> Mit freundlichen Grüßen<br /> <br /> [NAME_PORTAL]",
|
|
Subject = "'[DOCUMENT_TITLE]' - Bestätigung Ablehnung",
|
|
AddedWhen = DateTime.Parse("2024-06-12 09:24:34.927"),
|
|
ChangedWhen = DateTime.Parse("2025-05-09 10:25:03.067")
|
|
},
|
|
new EmailTemplate
|
|
{
|
|
Id = 10,
|
|
Name = "DocumentRejected_REC_2",
|
|
Body = "Guten Tag [NAME_RECEIVER], <p>Der Unterzeichnungsvorganges <B><I>'[DOCUMENT_TITLE]'</I></B> wurde durch einen anderen Vertragspartner abgelehnt! Ihre notwendige Unterzeichnung wurde verworfen.<p> Der Vertragsinhaber <B><I>[NAME_SENDER]</I></B> wird sich bei Bedarf mit Ihnen in Verbindung setzen. <p> Mit freundlichen Grüßen<br /> <br /> [NAME_PORTAL]",
|
|
Subject = "'[DOCUMENT_TITLE]' - Unterzeichnungsvorgang abgelehnt.",
|
|
AddedWhen = DateTime.Parse("2024-06-12 09:55:40.613"),
|
|
ChangedWhen = DateTime.Parse("2025-05-09 10:25:03.080")
|
|
},
|
|
new EmailTemplate
|
|
{
|
|
Id = 11,
|
|
Name = "DocumentShared",
|
|
Body = "Guten Tag,<br /> <br /><B><I> [NAME_RECEIVER]</I></B> hat Ihnen ein Dokument zum Ansehen gesendet.<br /> <br /> Über den folgenden Link können Sie das Dokument einsehen: <a href=\"[LINK_TO_DOCUMENT]\">[LINK_TO_DOCUMENT_TEXT]</a><br /> <br /> <br /> Mit freundlichen Grüßen<br /> <br /> [NAME_PORTAL]",
|
|
Subject = "Dokument geteilt: '[DOCUMENT_TITLE]'",
|
|
AddedWhen = DateTime.Parse("2024-09-27 11:37:47.860"),
|
|
ChangedWhen = DateTime.Parse("2025-05-09 10:25:03.097")
|
|
},
|
|
new EmailTemplate
|
|
{
|
|
Id = 12,
|
|
Name = "TotpSecret",
|
|
Body = "Guten Tag,<br /> <br />Sie können auf Ihren Zwei-Faktor-Authentifizierungscode zugreifen, indem Sie den unten stehenden QR-Code mit einer beliebigen Authentifizierungs-App auf Ihrem Telefon scannen (Google Authenticator, Microsoft Authenticator usw.). Dieser Code ist bis zum [TFA_EXPIRATION] gültig.<br /> <br /> <img src=\"data:image/png;base64,[TFA_QR_CODE]\" style=\"width: 13rem; height: 13rem;\"><br /> <br /> <br /> Mit freundlichen Grüßen<br /> <br /> [NAME_PORTAL]",
|
|
Subject = "2-Faktor-Authentifizierung QR-Code",
|
|
AddedWhen = DateTime.Parse("2024-12-11 10:07:08.400"),
|
|
ChangedWhen = DateTime.Parse("2025-05-12 10:43:44.290")
|
|
}
|
|
};
|
|
} |