Skip to content

Commit 27173ee

Browse files
committed
fix ReplaceRenderer class. Method Parse, NullReferenceException
lukencode#356
1 parent ae546e7 commit 27173ee

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

src/FluentEmail.Core/Defaults/ReplaceRenderer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public string Parse<T>(string template, T model, bool isHtml = true)
1010
{
1111
foreach (PropertyInfo pi in model.GetType().GetRuntimeProperties())
1212
{
13-
template = template.Replace($"##{pi.Name}##", pi.GetValue(model, null).ToString());
13+
template = template.Replace($"##{pi.Name}##", pi.GetValue(model, null)?.ToString());
1414
}
1515

1616
return template;
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
using FluentEmail.Core.Defaults;
2+
using FluentEmail.Core.Interfaces;
3+
using FluentEmail.Core.Models;
4+
using NUnit.Framework;
5+
6+
namespace FluentEmail.Core.Tests
7+
{
8+
[TestFixture]
9+
public class ReplaceRendererTest
10+
{
11+
[Test]
12+
public void ModelPropertyValueIsNull_Test()
13+
{
14+
ITemplateRenderer templateRenderer = new ReplaceRenderer();
15+
16+
var address = new Address("james@test.com", "james");
17+
Assert.True(address.Name == "james");
18+
var template = "this is name: ##Name##";
19+
Assert.True("this is name: james" == templateRenderer.Parse(template, address));
20+
21+
address.Name = null;
22+
Assert.True("this is name: " == templateRenderer.Parse(template, address));
23+
}
24+
}
25+
}

0 commit comments

Comments
 (0)