Skip to content

Commit

Permalink
Make EncodeImpl<T> static.
Browse files Browse the repository at this point in the history
Add unit tests for overloads.
  • Loading branch information
tommysor committed Dec 22, 2021
1 parent 7e81feb commit cc80d19
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 2 deletions.
30 changes: 30 additions & 0 deletions source/Handlebars.Test/HtmlEncoderLegacyTests.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.IO;
using System.Text;
using Xunit;

namespace HandlebarsDotNet.Test
Expand Down Expand Up @@ -56,5 +57,34 @@ public void EncodeTestHandlebarsNetLegacyRules(string input, string expected)
// Assert
Assert.Equal(expected, writer.ToString());
}

[Theory]
[InlineData(null, "")]
[InlineData("", "")]
[InlineData("a", "a")]
[InlineData("<", "&lt;")]
public void EncodeStringBuilderOverload(string input, string expected)
{
using var writer = new StringWriter();

var inputStringBuilder = input == null ? null : new StringBuilder(input);

_htmlEncoderLegacy.Encode(inputStringBuilder, writer);

Assert.Equal(expected, writer.ToString());
}

[Theory]
[InlineData(null, "")]
[InlineData("a", "a")]
[InlineData("<", "&lt;")]
public void EncodeCharEnumeratorOverload(string input, string expected)
{
using var writer = new StringWriter();

_htmlEncoderLegacy.Encode(input?.GetEnumerator(), writer);

Assert.Equal(expected, writer.ToString());
}
}
}
30 changes: 30 additions & 0 deletions source/Handlebars.Test/HtmlEncoderTests.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.IO;
using System.Text;
using Xunit;

namespace HandlebarsDotNet.Test
Expand Down Expand Up @@ -55,5 +56,34 @@ public void EncodeTest(string input, string expected)
// Assert
Assert.Equal(expected, writer.ToString());
}

[Theory]
[InlineData(null, "")]
[InlineData("", "")]
[InlineData("a", "a")]
[InlineData("<", "&lt;")]
public void EncodeStringBuilderOverload(string input, string expected)
{
using var writer = new StringWriter();

var inputStringBuilder = input == null ? null : new StringBuilder(input);

_htmlEncoder.Encode(inputStringBuilder, writer);

Assert.Equal(expected, writer.ToString());
}

[Theory]
[InlineData(null, "")]
[InlineData("a", "a")]
[InlineData("<", "&lt;")]
public void EncodeCharEnumeratorOverload(string input, string expected)
{
using var writer = new StringWriter();

_htmlEncoder.Encode(input?.GetEnumerator(), writer);

Assert.Equal(expected, writer.ToString());
}
}
}
2 changes: 1 addition & 1 deletion source/Handlebars/IO/HtmlEncoder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public void Encode(string text, TextWriter target)
EncodeImpl(text, target);
}

private void EncodeImpl<T>(T text, TextWriter target) where T : IEnumerator<char>
private static void EncodeImpl<T>(T text, TextWriter target) where T : IEnumerator<char>
{
/*
* Based on: https://github.com/handlebars-lang/handlebars.js/blob/master/lib/handlebars/utils.js
Expand Down
2 changes: 1 addition & 1 deletion source/Handlebars/IO/HtmlEncoderLegacy.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public void Encode(string text, TextWriter target)
EncodeImpl(text, target);
}

private void EncodeImpl<T>(T text, TextWriter target) where T : IEnumerator<char>
private static void EncodeImpl<T>(T text, TextWriter target) where T : IEnumerator<char>
{
while (text.MoveNext())
{
Expand Down

0 comments on commit cc80d19

Please sign in to comment.