From 6f42aa99bce27e73b1127da9828b2fc28de3170f Mon Sep 17 00:00:00 2001 From: Stef Heyenrath Date: Wed, 7 Jul 2021 17:02:15 +0200 Subject: [PATCH] Handlebars.Net.Helpers.Humanizer (#617) --- Directory.Build.props | 2 +- src/WireMock.Net/WireMock.Net.csproj | 15 +++--- .../ResponseWithHandlebarsHumanizerTests.cs | 50 +++++++++++++++++++ 3 files changed, 60 insertions(+), 7 deletions(-) create mode 100644 test/WireMock.Net.Tests/ResponseBuilders/ResponseWithHandlebarsHumanizerTests.cs diff --git a/Directory.Build.props b/Directory.Build.props index 914b6785..4c7a6838 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -4,7 +4,7 @@ - 1.4.16 + 1.4.17 See CHANGELOG.md https://raw.githubusercontent.com/WireMock-Net/WireMock.Net/master/WireMock.Net-Logo.png https://github.com/WireMock-Net/WireMock.Net diff --git a/src/WireMock.Net/WireMock.Net.csproj b/src/WireMock.Net/WireMock.Net.csproj index 606e2c25..b785f8da 100644 --- a/src/WireMock.Net/WireMock.Net.csproj +++ b/src/WireMock.Net/WireMock.Net.csproj @@ -121,13 +121,16 @@ - - - - - - + + + + + + + + + \ No newline at end of file diff --git a/test/WireMock.Net.Tests/ResponseBuilders/ResponseWithHandlebarsHumanizerTests.cs b/test/WireMock.Net.Tests/ResponseBuilders/ResponseWithHandlebarsHumanizerTests.cs new file mode 100644 index 00000000..629cd4cf --- /dev/null +++ b/test/WireMock.Net.Tests/ResponseBuilders/ResponseWithHandlebarsHumanizerTests.cs @@ -0,0 +1,50 @@ +using System; +using System.Threading.Tasks; +using Moq; +using Newtonsoft.Json.Linq; +using NFluent; +using WireMock.Handlers; +using WireMock.Models; +using WireMock.ResponseBuilders; +using WireMock.Settings; +using Xunit; + +namespace WireMock.Net.Tests.ResponseBuilders +{ + public class ResponseWithHandlebarsHumanizerTests + { + private const string ClientIp = "::1"; + + private readonly Mock _filesystemHandlerMock; + private readonly WireMockServerSettings _settings = new WireMockServerSettings(); + + public ResponseWithHandlebarsHumanizerTests() + { + _filesystemHandlerMock = new Mock(MockBehavior.Strict); + _filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny())).Returns("abc"); + + _settings.FileSystemHandler = _filesystemHandlerMock.Object; + } + + [Fact] + public async Task Response_ProvideResponseAsync_Handlebars_Humanizer() + { + // Assign + var request = new RequestMessage(new UrlDetails("http://localhost:1234"), "GET", ClientIp); + + var responseBuilder = Response.Create() + .WithBodyAsJson(new + { + DateTime = string.Format("{{{{[Humanizer.Humanize] \"{0}\" }}}}", DateTime.UtcNow.AddHours(-30).ToString("O")) + }) + .WithTransformer(); + + // Act + var response = await responseBuilder.ProvideResponseAsync(request, _settings); + + // Assert + JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson); + Check.That(j["DateTime"].Value()).IsEqualTo("yesterday"); + } + } +} \ No newline at end of file