mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-02-23 17:25:03 +01:00
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7033d85e3a | ||
|
|
7d873611ee | ||
|
|
f26bf62a13 | ||
|
|
6938b6f73c | ||
|
|
5b2cd061a6 | ||
|
|
80993c7740 | ||
|
|
d4d0f8becd |
12
CHANGELOG.md
12
CHANGELOG.md
@@ -1,3 +1,15 @@
|
|||||||
|
# 1.2.10.0 (17 May 2020)
|
||||||
|
- [#456](https://github.com/WireMock-Net/WireMock.Net/pull/456) - Include Handlebars.Net.Helpers project [feature] contributed by [StefH](https://github.com/StefH)
|
||||||
|
- [#457](https://github.com/WireMock-Net/WireMock.Net/pull/457) - Kestrel Options Limits [bug] contributed by [StefH](https://github.com/StefH)
|
||||||
|
- [#455](https://github.com/WireMock-Net/WireMock.Net/issues/455) - There is no option to increase body size while proxying [bug]
|
||||||
|
|
||||||
|
# 1.2.9.0 (14 May 2020)
|
||||||
|
- [#465](https://github.com/WireMock-Net/WireMock.Net/pull/465) - Fix method ResetMappingsAsync in the RestEase-AdminApi [bug] contributed by [StefH](https://github.com/StefH)
|
||||||
|
- [#464](https://github.com/WireMock-Net/WireMock.Net/issues/464) - RestClient Admin API Metadata Base Path Duplication [bug]
|
||||||
|
|
||||||
|
# 1.2.8.0 (04 May 2020)
|
||||||
|
- [#463](https://github.com/WireMock-Net/WireMock.Net/pull/463) - GH161: Fix SourceLink support [bug] contributed by [gitfool](https://github.com/gitfool)
|
||||||
|
|
||||||
# 1.2.7.0 (30 April 2020)
|
# 1.2.7.0 (30 April 2020)
|
||||||
- [#461](https://github.com/WireMock-Net/WireMock.Net/pull/461) - Support Path in ProxyUrl contributed by [StefH](https://github.com/StefH)
|
- [#461](https://github.com/WireMock-Net/WireMock.Net/pull/461) - Support Path in ProxyUrl contributed by [StefH](https://github.com/StefH)
|
||||||
- [#459](https://github.com/WireMock-Net/WireMock.Net/issues/459) - When respond with proxy requestMessage.Url is used, not AbsoluteUrl [bug]
|
- [#459](https://github.com/WireMock-Net/WireMock.Net/issues/459) - When respond with proxy requestMessage.Url is used, not AbsoluteUrl [bug]
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<VersionPrefix>1.2.7</VersionPrefix>
|
<VersionPrefix>1.2.10</VersionPrefix>
|
||||||
<PackageReleaseNotes>See CHANGELOG.md</PackageReleaseNotes>
|
<PackageReleaseNotes>See CHANGELOG.md</PackageReleaseNotes>
|
||||||
<PackageIconUrl>https://raw.githubusercontent.com/WireMock-Net/WireMock.Net/master/WireMock.Net-Logo.png</PackageIconUrl>
|
<PackageIconUrl>https://raw.githubusercontent.com/WireMock-Net/WireMock.Net/master/WireMock.Net-Logo.png</PackageIconUrl>
|
||||||
<PackageProjectUrl>https://github.com/WireMock-Net/WireMock.Net</PackageProjectUrl>
|
<PackageProjectUrl>https://github.com/WireMock-Net/WireMock.Net</PackageProjectUrl>
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
https://github.com/StefH/GitHubReleaseNotes
|
https://github.com/StefH/GitHubReleaseNotes
|
||||||
|
|
||||||
GitHubReleaseNotes.exe --output CHANGELOG.md --skip-empty-releases --exclude-labels question invalid doc --version 1.2.7.0
|
GitHubReleaseNotes.exe --output CHANGELOG.md --skip-empty-releases --exclude-labels question invalid doc --version 1.2.10.0
|
||||||
@@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\..\src\WireMock.Net\WireMock.Net.csproj" />
|
<ProjectReference Include="..\..\src\WireMock.Net\WireMock.Net.csproj" />
|
||||||
<PackageReference Include="Handlebars.Net" Version="1.9.5" />
|
<PackageReference Include="Handlebars.Net.Helpers" Version="0.0.3" />
|
||||||
<PackageReference Include="log4net" Version="2.0.8" />
|
<PackageReference Include="log4net" Version="2.0.8" />
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
|
<PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
|
||||||
<!--<PackageReference Include="Microsoft.CodeAnalysis.Scripting.Common" Version="3.4.0" />-->
|
<!--<PackageReference Include="Microsoft.CodeAnalysis.Scripting.Common" Version="3.4.0" />-->
|
||||||
|
|||||||
@@ -10,12 +10,10 @@
|
|||||||
<PackageId>WireMock.Net.Abstractions</PackageId>
|
<PackageId>WireMock.Net.Abstractions</PackageId>
|
||||||
<PackageTags>wiremock;interfaces;models;classes;enumerations;types</PackageTags>
|
<PackageTags>wiremock;interfaces;models;classes;enumerations;types</PackageTags>
|
||||||
<RootNamespace>WireMock</RootNamespace>
|
<RootNamespace>WireMock</RootNamespace>
|
||||||
<!--<DebugType>full</DebugType>
|
|
||||||
<IncludeSource>True</IncludeSource>
|
|
||||||
<IncludeSymbols>True</IncludeSymbols>-->
|
|
||||||
<ProjectGuid>{B6269AAC-170A-4346-8B9A-579DED3D9A94}</ProjectGuid>
|
<ProjectGuid>{B6269AAC-170A-4346-8B9A-579DED3D9A94}</ProjectGuid>
|
||||||
<PublishRepositoryUrl>true</PublishRepositoryUrl>
|
<PublishRepositoryUrl>true</PublishRepositoryUrl>
|
||||||
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
|
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
|
||||||
|
<EmbedUntrackedSources>true</EmbedUntrackedSources>
|
||||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||||
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
|
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
|
||||||
<CodeAnalysisRuleSet>../WireMock.Net/WireMock.Net.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet>../WireMock.Net/WireMock.Net.ruleset</CodeAnalysisRuleSet>
|
||||||
@@ -26,14 +24,13 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
||||||
<PathMap>$(MSBuildProjectDirectory)=/</PathMap>
|
<!--<PathMap>$(MSBuildProjectDirectory)=/</PathMap>-->
|
||||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="JetBrains.Annotations" Version="2019.1.3">
|
<PackageReference Include="JetBrains.Annotations" Version="2019.1.3" PrivateAssets="All" />
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All" />
|
||||||
</PackageReference>
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
@@ -86,7 +86,7 @@ namespace WireMock.Client
|
|||||||
/// Delete (reset) all mappings.
|
/// Delete (reset) all mappings.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="reloadStaticMappings">A value indicating whether to reload the static mappings after the reset.</param>
|
/// <param name="reloadStaticMappings">A value indicating whether to reload the static mappings after the reset.</param>
|
||||||
[Post("__admin/mappings/reset")]
|
[Post("mappings/reset")]
|
||||||
Task<StatusModel> ResetMappingsAsync(bool? reloadStaticMappings = false);
|
Task<StatusModel> ResetMappingsAsync(bool? reloadStaticMappings = false);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -10,12 +10,10 @@
|
|||||||
<PackageId>WireMock.Net.RestClient</PackageId>
|
<PackageId>WireMock.Net.RestClient</PackageId>
|
||||||
<PackageTags>wiremock;rest;client;restclient;restease;rest;json</PackageTags>
|
<PackageTags>wiremock;rest;client;restclient;restease;rest;json</PackageTags>
|
||||||
<RootNamespace>WireMock.Client</RootNamespace>
|
<RootNamespace>WireMock.Client</RootNamespace>
|
||||||
<!--<DebugType>full</DebugType>
|
|
||||||
<IncludeSource>True</IncludeSource>
|
|
||||||
<IncludeSymbols>True</IncludeSymbols>-->
|
|
||||||
<ProjectGuid>{B6269AAC-170A-43D6-8B9A-579DED3D9A96}</ProjectGuid>
|
<ProjectGuid>{B6269AAC-170A-43D6-8B9A-579DED3D9A96}</ProjectGuid>
|
||||||
<PublishRepositoryUrl>true</PublishRepositoryUrl>
|
<PublishRepositoryUrl>true</PublishRepositoryUrl>
|
||||||
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
|
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
|
||||||
|
<EmbedUntrackedSources>true</EmbedUntrackedSources>
|
||||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||||
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
|
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
|
||||||
<CodeAnalysisRuleSet>../WireMock.Net/WireMock.Net.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet>../WireMock.Net/WireMock.Net.ruleset</CodeAnalysisRuleSet>
|
||||||
@@ -26,11 +24,12 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
||||||
<PathMap>$(MSBuildProjectDirectory)=/</PathMap>
|
<!--<PathMap>$(MSBuildProjectDirectory)=/</PathMap>-->
|
||||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All" />
|
||||||
<PackageReference Include="RestEase" Version="1.4.10" />
|
<PackageReference Include="RestEase" Version="1.4.10" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|||||||
@@ -9,12 +9,10 @@
|
|||||||
<PackageId>WireMock.Net.StandAlone</PackageId>
|
<PackageId>WireMock.Net.StandAlone</PackageId>
|
||||||
<PackageTags>tdd;mock;http;wiremock;test;server;unittest</PackageTags>
|
<PackageTags>tdd;mock;http;wiremock;test;server;unittest</PackageTags>
|
||||||
<RootNamespace>WireMock.Net.StandAlone</RootNamespace>
|
<RootNamespace>WireMock.Net.StandAlone</RootNamespace>
|
||||||
<!--<DebugType>full</DebugType>
|
|
||||||
<IncludeSource>True</IncludeSource>
|
|
||||||
<IncludeSymbols>True</IncludeSymbols>-->
|
|
||||||
<ProjectGuid>{B6269AAC-170A-43D5-8B9A-579DED3D9A95}</ProjectGuid>
|
<ProjectGuid>{B6269AAC-170A-43D5-8B9A-579DED3D9A95}</ProjectGuid>
|
||||||
<PublishRepositoryUrl>true</PublishRepositoryUrl>
|
<PublishRepositoryUrl>true</PublishRepositoryUrl>
|
||||||
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
|
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
|
||||||
|
<EmbedUntrackedSources>true</EmbedUntrackedSources>
|
||||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||||
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
|
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
|
||||||
<CodeAnalysisRuleSet>WireMock.Net.StandAlone.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet>WireMock.Net.StandAlone.ruleset</CodeAnalysisRuleSet>
|
||||||
@@ -25,7 +23,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
||||||
<PathMap>$(MSBuildProjectDirectory)=/</PathMap>
|
<!--<PathMap>$(MSBuildProjectDirectory)=/</PathMap>-->
|
||||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
@@ -38,9 +36,8 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="JetBrains.Annotations" Version="2018.2.1">
|
<PackageReference Include="JetBrains.Annotations" Version="2018.2.1" PrivateAssets="All" />
|
||||||
<PrivateAssets>All</PrivateAssets>
|
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All" />
|
||||||
</PackageReference>
|
|
||||||
<PackageReference Include="SonarAnalyzer.CSharp" Version="7.8.0.7320">
|
<PackageReference Include="SonarAnalyzer.CSharp" Version="7.8.0.7320">
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
|
||||||
|
|||||||
40
src/WireMock.Net/Owin/AspNetCoreSelfHost.NETStandard.cs
Normal file
40
src/WireMock.Net/Owin/AspNetCoreSelfHost.NETStandard.cs
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
#if USE_ASPNETCORE && !NETSTANDARD1_3
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Microsoft.AspNetCore.Hosting;
|
||||||
|
using Microsoft.AspNetCore.Server.Kestrel.Core;
|
||||||
|
|
||||||
|
namespace WireMock.Owin
|
||||||
|
{
|
||||||
|
internal partial class AspNetCoreSelfHost
|
||||||
|
{
|
||||||
|
private static void SetKestrelOptionsLimits(KestrelServerOptions options)
|
||||||
|
{
|
||||||
|
options.Limits.KeepAliveTimeout = TimeSpan.MaxValue;
|
||||||
|
options.Limits.MaxRequestBodySize = null; // https://stackoverflow.com/questions/46738364/increase-upload-request-length-limit-in-kestrel
|
||||||
|
options.Limits.MaxRequestBufferSize = null;
|
||||||
|
options.Limits.MaxRequestHeaderCount = 100;
|
||||||
|
options.Limits.MaxResponseBufferSize = null;
|
||||||
|
options.Limits.RequestHeadersTimeout = TimeSpan.MaxValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void SetHttpsAndUrls(KestrelServerOptions options, ICollection<(string Url, int Port)> urlDetails)
|
||||||
|
{
|
||||||
|
foreach (var detail in urlDetails)
|
||||||
|
{
|
||||||
|
if (detail.Url.StartsWith("https://", StringComparison.OrdinalIgnoreCase))
|
||||||
|
{
|
||||||
|
options.Listen(System.Net.IPAddress.Any, detail.Port, listenOptions =>
|
||||||
|
{
|
||||||
|
listenOptions.UseHttps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
options.Listen(System.Net.IPAddress.Any, detail.Port);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
32
src/WireMock.Net/Owin/AspNetCoreSelfHost.NETStandard13.cs
Normal file
32
src/WireMock.Net/Owin/AspNetCoreSelfHost.NETStandard13.cs
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
#if USE_ASPNETCORE && NETSTANDARD1_3
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using Microsoft.AspNetCore.Hosting;
|
||||||
|
using Microsoft.AspNetCore.Server.Kestrel;
|
||||||
|
using WireMock.HttpsCertificate;
|
||||||
|
|
||||||
|
namespace WireMock.Owin
|
||||||
|
{
|
||||||
|
internal partial class AspNetCoreSelfHost
|
||||||
|
{
|
||||||
|
private static void SetKestrelOptionsLimits(KestrelServerOptions options)
|
||||||
|
{
|
||||||
|
options.Limits.KeepAliveTimeout = TimeSpan.MaxValue;
|
||||||
|
options.Limits.MaxRequestBufferSize = null;
|
||||||
|
options.Limits.MaxRequestHeaderCount = 100;
|
||||||
|
options.Limits.MaxResponseBufferSize = null;
|
||||||
|
options.Limits.RequestHeadersTimeout = TimeSpan.MaxValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void SetHttpsAndUrls(KestrelServerOptions options, ICollection<(string Url, int Port)> urlDetails)
|
||||||
|
{
|
||||||
|
var urls = urlDetails.Select(u => u.Url);
|
||||||
|
if (urls.Any(u => u.StartsWith("https://", StringComparison.OrdinalIgnoreCase)))
|
||||||
|
{
|
||||||
|
options.UseHttps(PublicCertificateHelper.GetX509Certificate2());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@@ -8,7 +8,6 @@ using JetBrains.Annotations;
|
|||||||
using Microsoft.AspNetCore.Builder;
|
using Microsoft.AspNetCore.Builder;
|
||||||
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using WireMock.HttpsCertificate;
|
|
||||||
using WireMock.Logging;
|
using WireMock.Logging;
|
||||||
using WireMock.Owin.Mappers;
|
using WireMock.Owin.Mappers;
|
||||||
using WireMock.Util;
|
using WireMock.Util;
|
||||||
@@ -16,7 +15,7 @@ using WireMock.Validation;
|
|||||||
|
|
||||||
namespace WireMock.Owin
|
namespace WireMock.Owin
|
||||||
{
|
{
|
||||||
internal class AspNetCoreSelfHost : IOwinSelfHost
|
internal partial class AspNetCoreSelfHost : IOwinSelfHost
|
||||||
{
|
{
|
||||||
private readonly CancellationTokenSource _cts = new CancellationTokenSource();
|
private readonly CancellationTokenSource _cts = new CancellationTokenSource();
|
||||||
private readonly IWireMockMiddlewareOptions _options;
|
private readonly IWireMockMiddlewareOptions _options;
|
||||||
@@ -78,31 +77,9 @@ namespace WireMock.Owin
|
|||||||
})
|
})
|
||||||
.UseKestrel(options =>
|
.UseKestrel(options =>
|
||||||
{
|
{
|
||||||
var urlDetails = _urlOptions.GetDetails();
|
SetKestrelOptionsLimits(options);
|
||||||
|
|
||||||
#if NETSTANDARD1_3
|
SetHttpsAndUrls(options, _urlOptions.GetDetails());
|
||||||
|
|
||||||
var urls = urlDetails.Select(u => u.Url);
|
|
||||||
if (urls.Any(u => u.StartsWith("https://", StringComparison.OrdinalIgnoreCase)))
|
|
||||||
{
|
|
||||||
options.UseHttps(PublicCertificateHelper.GetX509Certificate2());
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
foreach (var detail in urlDetails)
|
|
||||||
{
|
|
||||||
if (detail.Url.StartsWith("https://", StringComparison.OrdinalIgnoreCase))
|
|
||||||
{
|
|
||||||
options.Listen(System.Net.IPAddress.Any, detail.Port, listenOptions =>
|
|
||||||
{
|
|
||||||
listenOptions.UseHttps(); // PublicCertificateHelper.GetX509Certificate2()
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
options.Listen(System.Net.IPAddress.Any, detail.Port);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
})
|
})
|
||||||
|
|
||||||
#if NETSTANDARD1_3
|
#if NETSTANDARD1_3
|
||||||
@@ -144,6 +121,7 @@ namespace WireMock.Owin
|
|||||||
#elif NET46
|
#elif NET46
|
||||||
_logger.Info("WireMock.Net server using .net 4.6.1 or higher");
|
_logger.Info("WireMock.Net server using .net 4.6.1 or higher");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if NETSTANDARD1_3
|
#if NETSTANDARD1_3
|
||||||
return Task.Run(() =>
|
return Task.Run(() =>
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ using WireMock.Validation;
|
|||||||
|
|
||||||
namespace WireMock.Transformers
|
namespace WireMock.Transformers
|
||||||
{
|
{
|
||||||
internal static class HandleBarsFile
|
internal static class HandlebarsFile
|
||||||
{
|
{
|
||||||
public static void Register(IHandlebars handlebarsContext, IFileSystemHandler fileSystemHandler)
|
public static void Register(IHandlebars handlebarsContext, IFileSystemHandler fileSystemHandler)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -9,7 +9,7 @@ using WireMock.Validation;
|
|||||||
|
|
||||||
namespace WireMock.Transformers
|
namespace WireMock.Transformers
|
||||||
{
|
{
|
||||||
internal static class HandleBarsJsonPath
|
internal static class HandlebarsJsonPath
|
||||||
{
|
{
|
||||||
public static void Register(IHandlebars handlebarsContext)
|
public static void Register(IHandlebars handlebarsContext)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ using WireMock.Validation;
|
|||||||
|
|
||||||
namespace WireMock.Transformers
|
namespace WireMock.Transformers
|
||||||
{
|
{
|
||||||
internal static class HandleBarsLinq
|
internal static class HandlebarsLinq
|
||||||
{
|
{
|
||||||
public static void Register(IHandlebars handlebarsContext)
|
public static void Register(IHandlebars handlebarsContext)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ using WireMock.Validation;
|
|||||||
|
|
||||||
namespace WireMock.Transformers
|
namespace WireMock.Transformers
|
||||||
{
|
{
|
||||||
internal static class HandleBarsRandom
|
internal static class HandlebarsRandom
|
||||||
{
|
{
|
||||||
public static void Register(IHandlebars handlebarsContext)
|
public static void Register(IHandlebars handlebarsContext)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ using WireMock.Validation;
|
|||||||
|
|
||||||
namespace WireMock.Transformers
|
namespace WireMock.Transformers
|
||||||
{
|
{
|
||||||
internal static class HandleBarsRegex
|
internal static class HandlebarsRegex
|
||||||
{
|
{
|
||||||
public static void Register(IHandlebars handlebarsContext)
|
public static void Register(IHandlebars handlebarsContext)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ using Wmhelp.XPath2;
|
|||||||
|
|
||||||
namespace WireMock.Transformers
|
namespace WireMock.Transformers
|
||||||
{
|
{
|
||||||
internal static class HandleBarsXPath
|
internal static class HandlebarsXPath
|
||||||
{
|
{
|
||||||
public static void Register(IHandlebars handlebarsContext)
|
public static void Register(IHandlebars handlebarsContext)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ using WireMock.Validation;
|
|||||||
|
|
||||||
namespace WireMock.Transformers
|
namespace WireMock.Transformers
|
||||||
{
|
{
|
||||||
internal static class HandleBarsXeger
|
internal static class HandlebarsXeger
|
||||||
{
|
{
|
||||||
public static void Register(IHandlebars handlebarsContext)
|
public static void Register(IHandlebars handlebarsContext)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ namespace WireMock.Transformers
|
|||||||
{
|
{
|
||||||
var handlebars = Handlebars.Create(HandlebarsConfiguration);
|
var handlebars = Handlebars.Create(HandlebarsConfiguration);
|
||||||
|
|
||||||
HandlebarsHelpers.Register(handlebars, _fileSystemHandler);
|
WireMockHandlebarsHelpers.Register(handlebars, _fileSystemHandler);
|
||||||
|
|
||||||
_action?.Invoke(handlebars, _fileSystemHandler);
|
_action?.Invoke(handlebars, _fileSystemHandler);
|
||||||
|
|
||||||
|
|||||||
30
src/WireMock.Net/Transformers/WireMockHandlebarsHelpers.cs
Normal file
30
src/WireMock.Net/Transformers/WireMockHandlebarsHelpers.cs
Normal file
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -9,13 +9,11 @@
|
|||||||
<PackageId>WireMock.Net</PackageId>
|
<PackageId>WireMock.Net</PackageId>
|
||||||
<PackageTags>tdd;mock;http;wiremock;test;server;unittest</PackageTags>
|
<PackageTags>tdd;mock;http;wiremock;test;server;unittest</PackageTags>
|
||||||
<RootNamespace>WireMock</RootNamespace>
|
<RootNamespace>WireMock</RootNamespace>
|
||||||
<!--<DebugType>full</DebugType>
|
|
||||||
<IncludeSource>True</IncludeSource>
|
|
||||||
<IncludeSymbols>True</IncludeSymbols>-->
|
|
||||||
<ProjectGuid>{D3804228-91F4-4502-9595-39584E5A01AD}</ProjectGuid>
|
<ProjectGuid>{D3804228-91F4-4502-9595-39584E5A01AD}</ProjectGuid>
|
||||||
<PublishRepositoryUrl>true</PublishRepositoryUrl>
|
<PublishRepositoryUrl>true</PublishRepositoryUrl>
|
||||||
<!--<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
|
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
|
||||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
<EmbedUntrackedSources>true</EmbedUntrackedSources>
|
||||||
|
<!--<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||||
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>-->
|
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>-->
|
||||||
<SignAssembly>true</SignAssembly>
|
<SignAssembly>true</SignAssembly>
|
||||||
<AssemblyOriginatorKeyFile>WireMock.Net.snk</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>WireMock.Net.snk</AssemblyOriginatorKeyFile>
|
||||||
@@ -53,14 +51,14 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="JetBrains.Annotations" Version="2019.1.3">
|
<PackageReference Include="JetBrains.Annotations" Version="2019.1.3" PrivateAssets="All" />
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All" />
|
||||||
</PackageReference>
|
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
|
<PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
|
||||||
<PackageReference Include="SimMetrics.Net" Version="1.0.5" />
|
<PackageReference Include="SimMetrics.Net" Version="1.0.5" />
|
||||||
<PackageReference Include="System.Linq.Dynamic.Core" Version="1.0.12" />
|
<PackageReference Include="System.Linq.Dynamic.Core" Version="1.0.12" />
|
||||||
<PackageReference Include="RandomDataGenerator.Net" Version="1.0.10" />
|
<PackageReference Include="RandomDataGenerator.Net" Version="1.0.10" />
|
||||||
<PackageReference Include="JmesPath.Net" Version="1.0.125" />
|
<PackageReference Include="JmesPath.Net" Version="1.0.125" />
|
||||||
|
<PackageReference Include="Handlebars.Net.Helpers" Version="1.0.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="'$(Configuration)' == 'Debug - Sonar'">
|
<ItemGroup Condition="'$(Configuration)' == 'Debug - Sonar'">
|
||||||
@@ -70,14 +68,6 @@
|
|||||||
</PackageReference>
|
</PackageReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition=" '$(TargetFramework)' == 'net451' ">
|
|
||||||
<PackageReference Include="Handlebars.Net" Version="[1.9.0]" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup Condition=" '$(TargetFramework)' != 'net451' ">
|
|
||||||
<PackageReference Include="Handlebars.Net" Version="1.9.5" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup Condition=" '$(TargetFramework)' != 'netstandard1.3' ">
|
<ItemGroup Condition=" '$(TargetFramework)' != 'netstandard1.3' ">
|
||||||
<PackageReference Include="XPath2.Extensions" Version="1.0.6.1" />
|
<PackageReference Include="XPath2.Extensions" Version="1.0.6.1" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|||||||
@@ -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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user