diff --git a/examples/WireMock.Net.Console.NETCoreApp3/WireMock.Net.Console.NETCoreApp3.csproj b/examples/WireMock.Net.Console.NETCoreApp3/WireMock.Net.Console.NETCoreApp3.csproj
index 23b9b418..ba94bb1d 100644
--- a/examples/WireMock.Net.Console.NETCoreApp3/WireMock.Net.Console.NETCoreApp3.csproj
+++ b/examples/WireMock.Net.Console.NETCoreApp3/WireMock.Net.Console.NETCoreApp3.csproj
@@ -28,7 +28,7 @@
-
+
diff --git a/src/WireMock.Net/Transformers/HandleBarsFile.cs b/src/WireMock.Net/Transformers/HandleBarsFile.cs
index 51a35ccf..e5bbf8e2 100644
--- a/src/WireMock.Net/Transformers/HandleBarsFile.cs
+++ b/src/WireMock.Net/Transformers/HandleBarsFile.cs
@@ -5,7 +5,7 @@ using WireMock.Validation;
namespace WireMock.Transformers
{
- internal static class HandleBarsFile
+ internal static class HandlebarsFile
{
public static void Register(IHandlebars handlebarsContext, IFileSystemHandler fileSystemHandler)
{
diff --git a/src/WireMock.Net/Transformers/HandleBarsHelpers.cs b/src/WireMock.Net/Transformers/HandleBarsHelpers.cs
deleted file mode 100644
index 2bb64cc6..00000000
--- a/src/WireMock.Net/Transformers/HandleBarsHelpers.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using HandlebarsDotNet;
-using WireMock.Handlers;
-
-namespace WireMock.Transformers
-{
- internal static class HandlebarsHelpers
- {
- public static void Register(IHandlebars handlebarsContext, IFileSystemHandler fileSystemHandler)
- {
- HandleBarsRegex.Register(handlebarsContext);
-
- HandleBarsJsonPath.Register(handlebarsContext);
-
- HandleBarsLinq.Register(handlebarsContext);
-
- HandleBarsRandom.Register(handlebarsContext);
-
- HandleBarsXeger.Register(handlebarsContext);
-
- HandleBarsXPath.Register(handlebarsContext);
-
- HandleBarsFile.Register(handlebarsContext, fileSystemHandler);
- }
- }
-}
\ No newline at end of file
diff --git a/src/WireMock.Net/Transformers/HandleBarsJsonPath.cs b/src/WireMock.Net/Transformers/HandleBarsJsonPath.cs
index dc6e9871..b976b62e 100644
--- a/src/WireMock.Net/Transformers/HandleBarsJsonPath.cs
+++ b/src/WireMock.Net/Transformers/HandleBarsJsonPath.cs
@@ -9,7 +9,7 @@ using WireMock.Validation;
namespace WireMock.Transformers
{
- internal static class HandleBarsJsonPath
+ internal static class HandlebarsJsonPath
{
public static void Register(IHandlebars handlebarsContext)
{
diff --git a/src/WireMock.Net/Transformers/HandleBarsLinq.cs b/src/WireMock.Net/Transformers/HandleBarsLinq.cs
index 2eb43a82..be5a473f 100644
--- a/src/WireMock.Net/Transformers/HandleBarsLinq.cs
+++ b/src/WireMock.Net/Transformers/HandleBarsLinq.cs
@@ -9,7 +9,7 @@ using WireMock.Validation;
namespace WireMock.Transformers
{
- internal static class HandleBarsLinq
+ internal static class HandlebarsLinq
{
public static void Register(IHandlebars handlebarsContext)
{
diff --git a/src/WireMock.Net/Transformers/HandleBarsRandom.cs b/src/WireMock.Net/Transformers/HandleBarsRandom.cs
index 1f6a89f8..4bc11ba7 100644
--- a/src/WireMock.Net/Transformers/HandleBarsRandom.cs
+++ b/src/WireMock.Net/Transformers/HandleBarsRandom.cs
@@ -11,7 +11,7 @@ using WireMock.Validation;
namespace WireMock.Transformers
{
- internal static class HandleBarsRandom
+ internal static class HandlebarsRandom
{
public static void Register(IHandlebars handlebarsContext)
{
diff --git a/src/WireMock.Net/Transformers/HandleBarsRegex.cs b/src/WireMock.Net/Transformers/HandleBarsRegex.cs
index a22d5554..490ceed2 100644
--- a/src/WireMock.Net/Transformers/HandleBarsRegex.cs
+++ b/src/WireMock.Net/Transformers/HandleBarsRegex.cs
@@ -7,7 +7,7 @@ using WireMock.Validation;
namespace WireMock.Transformers
{
- internal static class HandleBarsRegex
+ internal static class HandlebarsRegex
{
public static void Register(IHandlebars handlebarsContext)
{
diff --git a/src/WireMock.Net/Transformers/HandleBarsXPath.cs b/src/WireMock.Net/Transformers/HandleBarsXPath.cs
index 6118e70a..48ba898e 100644
--- a/src/WireMock.Net/Transformers/HandleBarsXPath.cs
+++ b/src/WireMock.Net/Transformers/HandleBarsXPath.cs
@@ -10,7 +10,7 @@ using Wmhelp.XPath2;
namespace WireMock.Transformers
{
- internal static class HandleBarsXPath
+ internal static class HandlebarsXPath
{
public static void Register(IHandlebars handlebarsContext)
{
diff --git a/src/WireMock.Net/Transformers/HandleBarsXeger.cs b/src/WireMock.Net/Transformers/HandleBarsXeger.cs
index 1928c6ca..92786aab 100644
--- a/src/WireMock.Net/Transformers/HandleBarsXeger.cs
+++ b/src/WireMock.Net/Transformers/HandleBarsXeger.cs
@@ -5,7 +5,7 @@ using WireMock.Validation;
namespace WireMock.Transformers
{
- internal static class HandleBarsXeger
+ internal static class HandlebarsXeger
{
public static void Register(IHandlebars handlebarsContext)
{
diff --git a/src/WireMock.Net/Transformers/HandlebarsContextFactory.cs b/src/WireMock.Net/Transformers/HandlebarsContextFactory.cs
index 40354e54..b34b8c47 100644
--- a/src/WireMock.Net/Transformers/HandlebarsContextFactory.cs
+++ b/src/WireMock.Net/Transformers/HandlebarsContextFactory.cs
@@ -24,7 +24,7 @@ namespace WireMock.Transformers
{
var handlebars = Handlebars.Create(HandlebarsConfiguration);
- HandlebarsHelpers.Register(handlebars, _fileSystemHandler);
+ WireMockHandlebarsHelpers.Register(handlebars, _fileSystemHandler);
_action?.Invoke(handlebars, _fileSystemHandler);
diff --git a/src/WireMock.Net/Transformers/WireMockHandlebarsHelpers.cs b/src/WireMock.Net/Transformers/WireMockHandlebarsHelpers.cs
new file mode 100644
index 00000000..0ecce91d
--- /dev/null
+++ b/src/WireMock.Net/Transformers/WireMockHandlebarsHelpers.cs
@@ -0,0 +1,30 @@
+using HandlebarsDotNet;
+using HandlebarsDotNet.Helpers;
+using WireMock.Handlers;
+
+namespace WireMock.Transformers
+{
+ internal static class WireMockHandlebarsHelpers
+ {
+ public static void Register(IHandlebars handlebarsContext, IFileSystemHandler fileSystemHandler)
+ {
+ // Register https://github.com/StefH/Handlebars.Net.Helpers
+ HandlebarsHelpers.Register(handlebarsContext);
+
+ // Register WireMock.Net specific helpers
+ HandlebarsRegex.Register(handlebarsContext);
+
+ HandlebarsJsonPath.Register(handlebarsContext);
+
+ HandlebarsLinq.Register(handlebarsContext);
+
+ HandlebarsRandom.Register(handlebarsContext);
+
+ HandlebarsXeger.Register(handlebarsContext);
+
+ HandlebarsXPath.Register(handlebarsContext);
+
+ HandlebarsFile.Register(handlebarsContext, fileSystemHandler);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/WireMock.Net/WireMock.Net.csproj b/src/WireMock.Net/WireMock.Net.csproj
index c791163e..d3d63717 100644
--- a/src/WireMock.Net/WireMock.Net.csproj
+++ b/src/WireMock.Net/WireMock.Net.csproj
@@ -58,6 +58,7 @@
+
@@ -67,14 +68,6 @@
-
-
-
-
-
-
-
-
diff --git a/test/WireMock.Net.Tests/ResponseBuilders/ResponseWithHandlebarsHelpersTests.cs b/test/WireMock.Net.Tests/ResponseBuilders/ResponseWithHandlebarsHelpersTests.cs
new file mode 100644
index 00000000..963a95d6
--- /dev/null
+++ b/test/WireMock.Net.Tests/ResponseBuilders/ResponseWithHandlebarsHelpersTests.cs
@@ -0,0 +1,36 @@
+using System.Threading.Tasks;
+using NFluent;
+using WireMock.Models;
+using WireMock.ResponseBuilders;
+using WireMock.Settings;
+using WireMock.Types;
+using WireMock.Util;
+using Xunit;
+
+namespace WireMock.Net.Tests.ResponseBuilders
+{
+ public class ResponseWithHandlebarsHelpersTests
+ {
+ private readonly WireMockServerSettings _settings = new WireMockServerSettings();
+ private const string ClientIp = "::1";
+
+ [Fact]
+ public async Task Response_ProvideResponseAsync_HandlebarsHelpers_String_Uppercase()
+ {
+ // Assign
+ var body = new BodyData { BodyAsString = "abc", DetectedBodyType = BodyType.String };
+
+ var request = new RequestMessage(new UrlDetails("http://localhost:1234"), "POST", ClientIp, body);
+
+ var response = Response.Create()
+ .WithBody("{{String.Uppercase request.body}}")
+ .WithTransformer();
+
+ // Act
+ var responseMessage = await response.ProvideResponseAsync(request, _settings);
+
+ // assert
+ Check.That(responseMessage.BodyData.BodyAsString).Equals("ABC");
+ }
+ }
+}
\ No newline at end of file