mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-04-21 07:51:23 +02:00
Workaround for: Random.Generate Type="Long" (#1034)
* Workaround for: Random.Generate Type="Long" * x * 11 * . * 2
This commit is contained in:
@@ -5,7 +5,6 @@ using System.Linq;
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using Stef.Validation;
|
using Stef.Validation;
|
||||||
using WireMock.ResponseBuilders;
|
|
||||||
using WireMock.Settings;
|
using WireMock.Settings;
|
||||||
using WireMock.Types;
|
using WireMock.Types;
|
||||||
using WireMock.Util;
|
using WireMock.Util;
|
||||||
@@ -250,7 +249,7 @@ internal class Transformer : ITransformer
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var transformed = transformerContext.ParseAndEvaluate(stringValue, model);
|
var transformed = transformerContext.ParseAndEvaluate(stringValue!, model);
|
||||||
if (!Equals(stringValue, transformed))
|
if (!Equals(stringValue, transformed))
|
||||||
{
|
{
|
||||||
ReplaceNodeValue(options, node, transformed);
|
ReplaceNodeValue(options, node, transformed);
|
||||||
|
|||||||
@@ -80,7 +80,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition=" '$(TargetFramework)' != 'netstandard1.3' ">
|
<ItemGroup Condition=" '$(TargetFramework)' != 'netstandard1.3' ">
|
||||||
<PackageReference Include="XPath2.Extensions" Version="1.1.3" />
|
<PackageReference Include="XPath2.Extensions" Version="1.1.4" />
|
||||||
<PackageReference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="6.12.2" />
|
<PackageReference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="6.12.2" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
@@ -189,13 +189,13 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Handlebars.Net.Helpers" Version="2.4.0" />
|
<PackageReference Include="Handlebars.Net.Helpers" Version="2.4.1.2" />
|
||||||
<PackageReference Include="Handlebars.Net.Helpers.DynamicLinq" Version="2.4.0" />
|
<PackageReference Include="Handlebars.Net.Helpers.DynamicLinq" Version="2.4.1.2" />
|
||||||
<PackageReference Include="Handlebars.Net.Helpers.Humanizer" Version="2.4.0" />
|
<PackageReference Include="Handlebars.Net.Helpers.Humanizer" Version="2.4.1.2" />
|
||||||
<PackageReference Include="Handlebars.Net.Helpers.Json" Version="2.4.0" />
|
<PackageReference Include="Handlebars.Net.Helpers.Json" Version="2.4.1.2" />
|
||||||
<PackageReference Include="Handlebars.Net.Helpers.Random" Version="2.4.0" />
|
<PackageReference Include="Handlebars.Net.Helpers.Random" Version="2.4.1.2" />
|
||||||
<PackageReference Include="Handlebars.Net.Helpers.XPath" Version="2.4.0" />
|
<PackageReference Include="Handlebars.Net.Helpers.XPath" Version="2.4.1.2" />
|
||||||
<PackageReference Include="Handlebars.Net.Helpers.Xeger" Version="2.4.0" />
|
<PackageReference Include="Handlebars.Net.Helpers.Xeger" Version="2.4.1.2" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using FluentAssertions;
|
||||||
using Moq;
|
using Moq;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using NFluent;
|
using NFluent;
|
||||||
@@ -149,7 +150,7 @@ public class ResponseWithHandlebarsRandomTests
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task Response_ProvideResponseAsync_Handlebars_Random2()
|
public async Task Response_ProvideResponseAsync_Handlebars_Random_Integer()
|
||||||
{
|
{
|
||||||
// Assign
|
// Assign
|
||||||
var request = new RequestMessage(new UrlDetails("http://localhost:1234"), "GET", ClientIp);
|
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);
|
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
||||||
Check.That(j["Integer"].Value<int>()).IsStrictlyGreaterThan(10000000).And.IsStrictlyLessThan(99999999);
|
Check.That(j["Integer"].Value<int>()).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<long>().Should().BeInRange(1000000000, 9999999999);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user