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 23b9b4181..ba94bb1d7 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 51a35ccfa..e5bbf8e24 100644
--- a/src/WireMock.Net/Transformers/HandleBarsFile.cs
+++ b/src/WireMock.Net/Transformers/HandleBarsFile.cs
@@ -5,7 +5,7 @@
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 2bb64cc64..000000000
--- 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 dc6e98719..b976b62e1 100644
--- a/src/WireMock.Net/Transformers/HandleBarsJsonPath.cs
+++ b/src/WireMock.Net/Transformers/HandleBarsJsonPath.cs
@@ -9,7 +9,7 @@
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 2eb43a829..be5a473f8 100644
--- a/src/WireMock.Net/Transformers/HandleBarsLinq.cs
+++ b/src/WireMock.Net/Transformers/HandleBarsLinq.cs
@@ -9,7 +9,7 @@
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 1f6a89f88..4bc11ba70 100644
--- a/src/WireMock.Net/Transformers/HandleBarsRandom.cs
+++ b/src/WireMock.Net/Transformers/HandleBarsRandom.cs
@@ -11,7 +11,7 @@
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 a22d55543..490ceed24 100644
--- a/src/WireMock.Net/Transformers/HandleBarsRegex.cs
+++ b/src/WireMock.Net/Transformers/HandleBarsRegex.cs
@@ -7,7 +7,7 @@
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 6118e70a3..48ba898e9 100644
--- a/src/WireMock.Net/Transformers/HandleBarsXPath.cs
+++ b/src/WireMock.Net/Transformers/HandleBarsXPath.cs
@@ -10,7 +10,7 @@
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 1928c6ca5..92786aab6 100644
--- a/src/WireMock.Net/Transformers/HandleBarsXeger.cs
+++ b/src/WireMock.Net/Transformers/HandleBarsXeger.cs
@@ -5,7 +5,7 @@
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 40354e548..b34b8c470 100644
--- a/src/WireMock.Net/Transformers/HandlebarsContextFactory.cs
+++ b/src/WireMock.Net/Transformers/HandlebarsContextFactory.cs
@@ -24,7 +24,7 @@ public IHandlebarsContext Create()
{
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 000000000..0ecce91d3
--- /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 fb8116041..e7b8be536 100644
--- a/src/WireMock.Net/WireMock.Net.csproj
+++ b/src/WireMock.Net/WireMock.Net.csproj
@@ -61,6 +61,7 @@
+
@@ -70,14 +71,6 @@
-
-
-
-
-
-
-
-
diff --git a/test/WireMock.Net.Tests/ResponseBuilders/ResponseWithHandlebarsHelpersTests.cs b/test/WireMock.Net.Tests/ResponseBuilders/ResponseWithHandlebarsHelpersTests.cs
new file mode 100644
index 000000000..963a95d6f
--- /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