using DigitalData.EmailProfilerDispatcher.Abstraction.Attributes; using DigitalData.EmailProfilerDispatcher; namespace EmailProfilerDispatcher.Tests { [TestFixture] public class FillTemplateTests { [SetUp] public void Setup() { } [Test] public void FillTemplate_ShouldReplacePlaceholdersWithPropertyValues() { // Arrange var template = @"Guten Tag [NAME_RECEIVER],

hiermit bestätigen wir Ihnen die erfolgreiche Signatur für den Vorgang '[DOCUMENT_TITLE]'.
Wenn alle Vertragspartner unterzeichnet haben, erhalten Sie ebenfalls per email ein unterschriebenes Exemplar mit dem Signierungszertifikat!
Mit freundlichen Grüßen

[NAME_PORTAL]"; var mailData1 = new MailData1(); var mailData2 = new MailData2(); Dictionary placeholders = new() { { @"[NAME_PORTAL]", "DokumentenPortal" } }; var expectedOutput = @"Guten Tag Tom,

hiermit bestätigen wir Ihnen die erfolgreiche Signatur für den Vorgang 'Vertragsdokument'.
Wenn alle Vertragspartner unterzeichnet haben, erhalten Sie ebenfalls per email ein unterschriebenes Exemplar mit dem Signierungszertifikat!
Mit freundlichen Grüßen

DokumentenPortal"; // Act var result = template .FillTemplate(placeholders) .FillTemplate(template, mailData1, mailData2); // Assert Assert.That(result, Is.EqualTo(expectedOutput)); } public class Resource {} public class MailData1 { [TemplatePlaceholder("[NAME_RECEIVER]")] public string NameReceiver { get; set; } = "Tom"; } public record MailData2 { [TemplatePlaceholder("[DOCUMENT_TITLE]")] public string DocumentTitle { get; set; } = "Vertragsdokument"; } } }