Skip to content

Commit

Permalink
Merge branch 'master' into bug/1144-protobuf
Browse files Browse the repository at this point in the history
  • Loading branch information
StefH committed Sep 4, 2024
2 parents bfc8a1c + 07c9aeb commit 63aefc5
Show file tree
Hide file tree
Showing 8 changed files with 59 additions and 34 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
# 1.6.2 (04 September 2024)
- [#1152](https://github.com/WireMock-Net/WireMock.Net/pull/1152) - Update MappingConverter to correctly write the Matcher as C# code [bug] contributed by [StefH](https://github.com/StefH)
- [#1163](https://github.com/WireMock-Net/WireMock.Net/pull/1163) - Upgrade Aspire to version 8.2.0 [feature] contributed by [StefH](https://github.com/StefH)
- [#1166](https://github.com/WireMock-Net/WireMock.Net/pull/1166) - Also update IWireMockMiddlewareOptions when settings are updated via admin interface [bug] contributed by [StefH](https://github.com/StefH)
- [#1151](https://github.com/WireMock-Net/WireMock.Net/issues/1151) - MappingsToCSharpCode should use RegexMatcher when specified [bug]
- [#1164](https://github.com/WireMock-Net/WireMock.Net/issues/1164) - WithParam not working. [bug]

# 1.6.1 (22 August 2024)
- [#1160](https://github.com/WireMock-Net/WireMock.Net/pull/1160) - Use default timeout for Regex [bug] contributed by [StefH](https://github.com/StefH)
- [#1159](https://github.com/WireMock-Net/WireMock.Net/issues/1159) - RegexMatchTimeoutException when trying to parse HTTP version [bug]
Expand Down
2 changes: 1 addition & 1 deletion Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
</PropertyGroup>

<PropertyGroup>
<VersionPrefix>1.6.1</VersionPrefix>
<VersionPrefix>1.6.2</VersionPrefix>
<PackageIcon>WireMock.Net-Logo.png</PackageIcon>
<PackageProjectUrl>https://github.com/WireMock-Net/WireMock.Net</PackageProjectUrl>
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
Expand Down
2 changes: 1 addition & 1 deletion Generate-ReleaseNotes.cmd
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
rem https://github.com/StefH/GitHubReleaseNotes

SET version=1.6.1
SET version=1.6.2

GitHubReleaseNotes --output CHANGELOG.md --skip-empty-releases --exclude-labels question invalid doc duplicate example environment --version %version% --token %GH_TOKEN%

Expand Down
9 changes: 6 additions & 3 deletions PackageReleaseNotes.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# 1.6.1 (22 August 2024)
- #1160 Use default timeout for Regex [bug]
- #1159 RegexMatchTimeoutException when trying to parse HTTP version [bug]
# 1.6.2 (04 September 2024)
- #1152 Update MappingConverter to correctly write the Matcher as C# code [bug]
- #1163 Upgrade Aspire to version 8.2.0 [feature]
- #1166 Also update IWireMockMiddlewareOptions when settings are updated via admin interface [bug]
- #1151 MappingsToCSharpCode should use RegexMatcher when specified [bug]
- #1164 WithParam not working. [bug]

The full release notes can be found here: https://github.com/WireMock-Net/WireMock.Net/blob/master/CHANGELOG.md
7 changes: 6 additions & 1 deletion azure-pipelines-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,13 @@ jobs:
inputs:
script: |
dotnet-coverage collect "dotnet test ./test/WireMock.Net.Tests/WireMock.Net.Tests.csproj --configuration Debug --no-build --framework net8.0" -f xml -o "wiremock-coverage-1.xml"
displayName: 'Execute WireMock.Net.Tests with Coverage'

- task: CmdLine@2
inputs:
script: |
dotnet-coverage collect "dotnet test ./test/WireMock.Net.Aspire.Tests/WireMock.Net.Aspire.Tests.csproj --configuration Debug --no-build" -f xml -o "wiremock-coverage-2.xml"
displayName: 'Execute Unit Tests with Coverage'
displayName: 'Execute WireMock.Net.Aspire.Tests with Coverage'

- task: CmdLine@2
displayName: 'Merge coverage files'
Expand Down
27 changes: 20 additions & 7 deletions src/WireMock.Net/Owin/WireMockMiddlewareOptionsHelper.cs
Original file line number Diff line number Diff line change
@@ -1,27 +1,38 @@
// Copyright © WireMock.Net

using System;
using Stef.Validation;
using WireMock.Settings;

namespace WireMock.Owin;

internal static class WireMockMiddlewareOptionsHelper
{
public static IWireMockMiddlewareOptions InitFromSettings(WireMockServerSettings settings, IWireMockMiddlewareOptions? options = null)
public static IWireMockMiddlewareOptions InitFromSettings(
WireMockServerSettings settings,
IWireMockMiddlewareOptions? options = null,
Action<IWireMockMiddlewareOptions>? postConfigure = null
)
{
Guard.NotNull(settings);

options ??= new WireMockMiddlewareOptions();

options.FileSystemHandler = settings.FileSystemHandler;
options.PreWireMockMiddlewareInit = settings.PreWireMockMiddlewareInit;
options.PostWireMockMiddlewareInit = settings.PostWireMockMiddlewareInit;
options.Logger = settings.Logger;
options.AllowBodyForAllHttpMethods = settings.AllowBodyForAllHttpMethods;
options.AllowOnlyDefinedHttpStatusCodeInResponse = settings.AllowOnlyDefinedHttpStatusCodeInResponse;
options.AllowPartialMapping = settings.AllowPartialMapping;
options.DisableJsonBodyParsing = settings.DisableJsonBodyParsing;
options.HandleRequestsSynchronously = settings.HandleRequestsSynchronously;
options.SaveUnmatchedRequests = settings.SaveUnmatchedRequests;
options.DisableRequestBodyDecompressing = settings.DisableRequestBodyDecompressing;
options.DoNotSaveDynamicResponseInLogEntry = settings.DoNotSaveDynamicResponseInLogEntry;
options.FileSystemHandler = settings.FileSystemHandler;
options.HandleRequestsSynchronously = settings.HandleRequestsSynchronously;
options.Logger = settings.Logger;
options.MaxRequestLogCount = settings.MaxRequestLogCount;
options.PostWireMockMiddlewareInit = settings.PostWireMockMiddlewareInit;
options.PreWireMockMiddlewareInit = settings.PreWireMockMiddlewareInit;
options.QueryParameterMultipleValueSupport = settings.QueryParameterMultipleValueSupport;
options.RequestLogExpirationDuration = settings.RequestLogExpirationDuration;
options.SaveUnmatchedRequests = settings.SaveUnmatchedRequests;

if (settings.CustomCertificateDefined)
{
Expand All @@ -32,6 +43,8 @@ public static IWireMockMiddlewareOptions InitFromSettings(WireMockServerSettings
options.X509CertificatePassword = settings.CertificateSettings.X509CertificatePassword;
}

postConfigure?.Invoke(options);

return options;
}
}
29 changes: 14 additions & 15 deletions src/WireMock.Net/Server/WireMockServer.Admin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
using WireMock.Logging;
using WireMock.Matchers;
using WireMock.Matchers.Request;
using WireMock.Owin;
using WireMock.RequestBuilders;
using WireMock.ResponseProviders;
using WireMock.Serialization;
Expand Down Expand Up @@ -321,28 +322,26 @@ private IResponseMessage SettingsUpdate(IRequestMessage requestMessage)

InitSettings(_settings);

// _options
if (settings.GlobalProcessingDelay != null)
{
_options.RequestProcessingDelay = TimeSpan.FromMilliseconds(settings.GlobalProcessingDelay.Value);
}
_options.AllowBodyForAllHttpMethods = settings.AllowBodyForAllHttpMethods;
_options.AllowPartialMapping = settings.AllowPartialMapping;
_options.HandleRequestsSynchronously = settings.HandleRequestsSynchronously;
_options.MaxRequestLogCount = settings.MaxRequestLogCount;
_options.RequestLogExpirationDuration = settings.RequestLogExpirationDuration;

// _settings & _options
#if USE_ASPNETCORE
if (Enum.TryParse<CorsPolicyOptions>(settings.CorsPolicyOptions, true, out var corsPolicyOptions))
{
_settings.CorsPolicyOptions = corsPolicyOptions;
_options.CorsPolicyOptions = corsPolicyOptions;
}
#endif

WireMockMiddlewareOptionsHelper.InitFromSettings(_settings, _options, o =>
{
if (settings.GlobalProcessingDelay != null)
{
o.RequestProcessingDelay = TimeSpan.FromMilliseconds(settings.GlobalProcessingDelay.Value);
}

_options.ClientCertificateMode = _settings.ClientCertificateMode;
_options.AcceptAnyClientCertificate = _settings.AcceptAnyClientCertificate;
#if USE_ASPNETCORE
o.CorsPolicyOptions = corsPolicyOptions;
o.ClientCertificateMode = _settings.ClientCertificateMode;
o.AcceptAnyClientCertificate = _settings.AcceptAnyClientCertificate;
#endif
});

return ResponseMessageBuilder.Create(200, "Settings updated");
}
Expand Down
10 changes: 4 additions & 6 deletions src/WireMock.Net/Server/WireMockServer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
using WireMock.Handlers;
using WireMock.Http;
using WireMock.Logging;
using WireMock.Matchers.Request;
using WireMock.Models;
using WireMock.Owin;
using WireMock.RequestBuilders;
Expand Down Expand Up @@ -369,9 +368,10 @@ protected WireMockServer(WireMockServerSettings settings)
}
}

WireMockMiddlewareOptionsHelper.InitFromSettings(settings, _options);

_options.LogEntries.CollectionChanged += LogEntries_CollectionChanged;
WireMockMiddlewareOptionsHelper.InitFromSettings(settings, _options, o =>
{
o.LogEntries.CollectionChanged += LogEntries_CollectionChanged;
});

_matcherMapper = new MatcherMapper(_settings);
_mappingConverter = new MappingConverter(_matcherMapper);
Expand Down Expand Up @@ -649,13 +649,11 @@ private void InitSettings(WireMockServerSettings settings)
{
if (settings.AllowBodyForAllHttpMethods == true)
{
_options.AllowBodyForAllHttpMethods = _settings.AllowBodyForAllHttpMethods;
_settings.Logger.Info("AllowBodyForAllHttpMethods is set to True");
}

if (settings.AllowOnlyDefinedHttpStatusCodeInResponse == true)
{
_options.AllowOnlyDefinedHttpStatusCodeInResponse = _settings.AllowOnlyDefinedHttpStatusCodeInResponse;
_settings.Logger.Info("AllowOnlyDefinedHttpStatusCodeInResponse is set to True");
}

Expand Down

0 comments on commit 63aefc5

Please sign in to comment.