diff --git a/src/WireMock.Net/Transformers/Transformer.cs b/src/WireMock.Net/Transformers/Transformer.cs index bea06a52..c6943629 100644 --- a/src/WireMock.Net/Transformers/Transformer.cs +++ b/src/WireMock.Net/Transformers/Transformer.cs @@ -5,7 +5,6 @@ using System.Linq; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Stef.Validation; -using WireMock.ResponseBuilders; using WireMock.Settings; using WireMock.Types; using WireMock.Util; @@ -250,7 +249,7 @@ internal class Transformer : ITransformer return; } - var transformed = transformerContext.ParseAndEvaluate(stringValue, model); + var transformed = transformerContext.ParseAndEvaluate(stringValue!, model); if (!Equals(stringValue, transformed)) { ReplaceNodeValue(options, node, transformed); diff --git a/src/WireMock.Net/WireMock.Net.csproj b/src/WireMock.Net/WireMock.Net.csproj index d7874b96..895c5acf 100644 --- a/src/WireMock.Net/WireMock.Net.csproj +++ b/src/WireMock.Net/WireMock.Net.csproj @@ -80,7 +80,7 @@ - + @@ -189,13 +189,13 @@ - - - - - - - + + + + + + + diff --git a/test/WireMock.Net.Tests/ResponseBuilders/ResponseWithHandlebarsRandomTests.cs b/test/WireMock.Net.Tests/ResponseBuilders/ResponseWithHandlebarsRandomTests.cs index a90b2c83..8f6c7dcf 100644 --- a/test/WireMock.Net.Tests/ResponseBuilders/ResponseWithHandlebarsRandomTests.cs +++ b/test/WireMock.Net.Tests/ResponseBuilders/ResponseWithHandlebarsRandomTests.cs @@ -1,5 +1,6 @@ using System.Linq; using System.Threading.Tasks; +using FluentAssertions; using Moq; using Newtonsoft.Json.Linq; using NFluent; @@ -149,7 +150,7 @@ public class ResponseWithHandlebarsRandomTests } [Fact] - public async Task Response_ProvideResponseAsync_Handlebars_Random2() + public async Task Response_ProvideResponseAsync_Handlebars_Random_Integer() { // Assign var request = new RequestMessage(new UrlDetails("http://localhost:1234"), "GET", ClientIp); @@ -168,4 +169,25 @@ public class ResponseWithHandlebarsRandomTests JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson); Check.That(j["Integer"].Value()).IsStrictlyGreaterThan(10000000).And.IsStrictlyLessThan(99999999); } + + [Fact] + public async Task Response_ProvideResponseAsync_Handlebars_Random_Long() + { + // Assign + var request = new RequestMessage(new UrlDetails("http://localhost:1234"), "GET", ClientIp); + + var responseBuilder = Response.Create() + .WithBodyAsJson(new + { + Long = "{{#Random Type=\"Long\" Min=1000000000 Max=9999999999}}{{this}}{{/Random}}", + }) + .WithTransformer(); + + // Act + var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false); + + // Assert + var j = JObject.FromObject(response.Message.BodyData.BodyAsJson); + j["Long"].Value().Should().BeInRange(1000000000, 9999999999); + } } \ No newline at end of file