feat: E-Mail-Vorlagenverarbeitung hinzufügen
- Methode `FillTemplate` für Platzhalterersetzung hinzugefügt. - `TemplatePlaceholderAttribute` eingeführt. - `EmailOutService` mit Vorlagenmethoden aktualisiert. - Unit-Tests für Vorlagenverarbeitung hinzugefügt.
This commit is contained in:
68
EmailProfilerDispatcher.Tests/FillTemplateTests.cs
Normal file
68
EmailProfilerDispatcher.Tests/FillTemplateTests.cs
Normal file
@@ -0,0 +1,68 @@
|
||||
using DigitalData.EmailProfilerDispatcher.Application.Services;
|
||||
using DigitalData.EmailProfilerDispatcher.Domain.Attributes;
|
||||
using DigitalData.EmailProfilerDispatcher.Domain.Entities;
|
||||
|
||||
namespace EmailProfilerDispatcher.Tests
|
||||
{
|
||||
[TestFixture]
|
||||
public class FillTemplateTests
|
||||
{
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void FillTemplate_ShouldReplacePlaceholdersWithPropertyValues()
|
||||
{
|
||||
// Arrange
|
||||
var template = @"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]";
|
||||
|
||||
var mailData1 = new MailData1();
|
||||
var mailData2 = new MailData2();
|
||||
var mailData3 = new MailData3();
|
||||
|
||||
var expectedOutput = @"Guten Tag Tom,<br />
|
||||
<br />
|
||||
hiermit bestätigen wir Ihnen die erfolgreiche Signatur für den Vorgang <B><I>'Vertragsdokument'</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 />
|
||||
DokumentenPortal";
|
||||
|
||||
// Act
|
||||
var result = EmailOutService<Resource>.FillTemplate(template, mailData1, mailData2, mailData3);
|
||||
|
||||
// Assert
|
||||
Assert.That(result, Is.EqualTo(expectedOutput));
|
||||
}
|
||||
|
||||
public class Resource {}
|
||||
|
||||
public class MailData1
|
||||
{
|
||||
[TemplatePlaceholder("[NAME_RECEIVER]")]
|
||||
public string NameReceiver { get; set; } = "Tom";
|
||||
}
|
||||
|
||||
public class MailData2
|
||||
{
|
||||
[TemplatePlaceholder("[DOCUMENT_TITLE]")]
|
||||
public string DocumentTitle { get; set; } = "Vertragsdokument";
|
||||
}
|
||||
|
||||
public class MailData3
|
||||
{
|
||||
[TemplatePlaceholder("[NAME_PORTAL]")]
|
||||
public string NamePortal { get; set; } = "DokumentenPortal";
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user