Refactored Fake.cs to configure both in-memory and SQL Server database contexts for testing, using the "Default" connection string from configuration. Added detailed EF logging and SQL executor setup. In TestBase.cs, fixed Setup to use the correct repository instance for seeding email templates.
141 lines
7.9 KiB
C#
141 lines
7.9 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;
|
|
|
|
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();
|
|
|
|
var repo = GetRepository<EmailTemplate>();
|
|
|
|
// Add seed email templates
|
|
foreach (var temp in SeedEmailTemplates)
|
|
await repo.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")
|
|
}
|
|
};
|
|
} |