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";
}
}
}