mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-05-08 08:03:27 +02:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4bfb97b192 |
10
CHANGELOG.md
10
CHANGELOG.md
@@ -1,13 +1,3 @@
|
|||||||
# 1.3.3 (15 October 2020)
|
|
||||||
- [#520](https://github.com/WireMock-Net/WireMock.Net/pull/520) - Make kestrel limits configurable contributed by [eduherminio](https://github.com/eduherminio)
|
|
||||||
- [#521](https://github.com/WireMock-Net/WireMock.Net/issues/521) - Make Kestrel limits configurable [feature]
|
|
||||||
|
|
||||||
# 1.3.2 (14 October 2020)
|
|
||||||
- [#505](https://github.com/WireMock-Net/WireMock.Net/pull/505) - Fix reading JsonMatcher-mapping with object as pattern [bug] contributed by [StefH](https://github.com/StefH)
|
|
||||||
- [#514](https://github.com/WireMock-Net/WireMock.Net/pull/514) - Update .NET Core 3.1 example contributed by [Crossbow78](https://github.com/Crossbow78)
|
|
||||||
- [#504](https://github.com/WireMock-Net/WireMock.Net/issues/504) - Loading mapping models with `JsonMatcher` is not working correctly [bug]
|
|
||||||
- [#513](https://github.com/WireMock-Net/WireMock.Net/issues/513) - Static mapping break from 1.2.17 to 1.2.18 and higher [bug]
|
|
||||||
|
|
||||||
# 1.3.1 (30 September 2020)
|
# 1.3.1 (30 September 2020)
|
||||||
- [#509](https://github.com/WireMock-Net/WireMock.Net/pull/509) - Adding netcoreapp3.1 as a target framework [feature] contributed by [APIWT](https://github.com/APIWT)
|
- [#509](https://github.com/WireMock-Net/WireMock.Net/pull/509) - Adding netcoreapp3.1 as a target framework [feature] contributed by [APIWT](https://github.com/APIWT)
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<VersionPrefix>1.3.3</VersionPrefix>
|
<VersionPrefix>1.3.1</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.3.3
|
GitHubReleaseNotes.exe --output CHANGELOG.md --skip-empty-releases --exclude-labels question invalid doc --version 1.3.1
|
||||||
@@ -62,9 +62,9 @@ namespace WireMock.Server
|
|||||||
void AddGlobalProcessingDelay(TimeSpan delay);
|
void AddGlobalProcessingDelay(TimeSpan delay);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Allows the partial mapping.
|
/// Set the partial mapping to allowed (if true, you can also provide 'enforceHttpMethod').
|
||||||
/// </summary>
|
/// </summary>
|
||||||
void AllowPartialMapping(bool allow = true);
|
void AllowPartialMapping(bool allow = true, bool enforceHttpMethod = false);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Deletes a LogEntry.
|
/// Deletes a LogEntry.
|
||||||
|
|||||||
@@ -3,8 +3,6 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using Microsoft.AspNetCore.Server.Kestrel.Core;
|
using Microsoft.AspNetCore.Server.Kestrel.Core;
|
||||||
using Microsoft.Extensions.Configuration;
|
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
|
||||||
|
|
||||||
namespace WireMock.Owin
|
namespace WireMock.Owin
|
||||||
{
|
{
|
||||||
@@ -36,24 +34,5 @@ namespace WireMock.Owin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static class IWebHostBuilderExtensions
|
|
||||||
{
|
|
||||||
internal static IWebHostBuilder ConfigureAppConfigurationUsingEnvironmentVariables(this IWebHostBuilder builder)
|
|
||||||
{
|
|
||||||
return builder.ConfigureAppConfiguration(config =>
|
|
||||||
{
|
|
||||||
config.AddEnvironmentVariables();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
internal static IWebHostBuilder ConfigureKestrelServerOptions(this IWebHostBuilder builder)
|
|
||||||
{
|
|
||||||
return builder.ConfigureServices((context, services) =>
|
|
||||||
{
|
|
||||||
services.Configure<KestrelServerOptions>(context.Configuration.GetSection("Kestrel"));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -4,8 +4,6 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using Microsoft.AspNetCore.Server.Kestrel;
|
using Microsoft.AspNetCore.Server.Kestrel;
|
||||||
using Microsoft.Extensions.Configuration;
|
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
|
||||||
using WireMock.HttpsCertificate;
|
using WireMock.HttpsCertificate;
|
||||||
|
|
||||||
namespace WireMock.Owin
|
namespace WireMock.Owin
|
||||||
@@ -28,22 +26,5 @@ namespace WireMock.Owin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static class IWebHostBuilderExtensions
|
|
||||||
{
|
|
||||||
internal static IWebHostBuilder ConfigureAppConfigurationUsingEnvironmentVariables(this IWebHostBuilder builder) => builder;
|
|
||||||
|
|
||||||
internal static IWebHostBuilder ConfigureKestrelServerOptions(this IWebHostBuilder builder)
|
|
||||||
{
|
|
||||||
var configuration = new ConfigurationBuilder()
|
|
||||||
.AddEnvironmentVariables()
|
|
||||||
.Build();
|
|
||||||
|
|
||||||
return builder.ConfigureServices(services =>
|
|
||||||
{
|
|
||||||
services.Configure<KestrelServerOptions>(configuration.GetSection("Kestrel"));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -58,7 +58,6 @@ namespace WireMock.Owin
|
|||||||
}
|
}
|
||||||
|
|
||||||
_host = builder
|
_host = builder
|
||||||
.ConfigureAppConfigurationUsingEnvironmentVariables()
|
|
||||||
.ConfigureServices(services =>
|
.ConfigureServices(services =>
|
||||||
{
|
{
|
||||||
services.AddSingleton(_options);
|
services.AddSingleton(_options);
|
||||||
@@ -82,7 +81,6 @@ namespace WireMock.Owin
|
|||||||
|
|
||||||
SetHttpsAndUrls(options, _urlOptions.GetDetails());
|
SetHttpsAndUrls(options, _urlOptions.GetDetails());
|
||||||
})
|
})
|
||||||
.ConfigureKestrelServerOptions()
|
|
||||||
|
|
||||||
#if NETSTANDARD1_3
|
#if NETSTANDARD1_3
|
||||||
.UseUrls(_urlOptions.GetDetails().Select(u => u.Url).ToArray())
|
.UseUrls(_urlOptions.GetDetails().Select(u => u.Url).ToArray())
|
||||||
@@ -120,10 +118,8 @@ namespace WireMock.Owin
|
|||||||
_logger.Info("WireMock.Net server using netstandard2.0");
|
_logger.Info("WireMock.Net server using netstandard2.0");
|
||||||
#elif NETSTANDARD2_1
|
#elif NETSTANDARD2_1
|
||||||
_logger.Info("WireMock.Net server using netstandard2.1");
|
_logger.Info("WireMock.Net server using netstandard2.1");
|
||||||
#elif NETCOREAPP3_1
|
|
||||||
_logger.Info("WireMock.Net server using .NET Core 3.1");
|
|
||||||
#elif NET46
|
#elif NET46
|
||||||
_logger.Info("WireMock.Net server using .NET Framework 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
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ using WireMock.Handlers;
|
|||||||
using WireMock.Logging;
|
using WireMock.Logging;
|
||||||
using WireMock.Matchers;
|
using WireMock.Matchers;
|
||||||
using WireMock.Util;
|
using WireMock.Util;
|
||||||
|
using WireMock.Settings;
|
||||||
#if !USE_ASPNETCORE
|
#if !USE_ASPNETCORE
|
||||||
using Owin;
|
using Owin;
|
||||||
#else
|
#else
|
||||||
@@ -22,6 +23,8 @@ namespace WireMock.Owin
|
|||||||
|
|
||||||
bool? AllowPartialMapping { get; set; }
|
bool? AllowPartialMapping { get; set; }
|
||||||
|
|
||||||
|
IPartialMappingSettings PartialMappingSettings { get; set; }
|
||||||
|
|
||||||
ConcurrentDictionary<Guid, IMapping> Mappings { get; }
|
ConcurrentDictionary<Guid, IMapping> Mappings { get; }
|
||||||
|
|
||||||
ConcurrentDictionary<string, ScenarioState> Scenarios { get; }
|
ConcurrentDictionary<string, ScenarioState> Scenarios { get; }
|
||||||
|
|||||||
@@ -42,6 +42,16 @@ namespace WireMock.Owin
|
|||||||
.OrderBy(m => m.RequestMatchResult)
|
.OrderBy(m => m.RequestMatchResult)
|
||||||
.ThenBy(m => m.Mapping.Priority)
|
.ThenBy(m => m.Mapping.Priority)
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
|
if (_options.PartialMappingSettings?.EnforceHttpMethod == true)
|
||||||
|
{
|
||||||
|
// Check if any partialMappings contain a HttpMethodMatcher, and check if this returns a 0
|
||||||
|
foreach (var partialMapping in partialMappings)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var partialMatch = partialMappings.FirstOrDefault(pm => pm.RequestMatchResult.AverageTotalScore > 0.0);
|
var partialMatch = partialMappings.FirstOrDefault(pm => pm.RequestMatchResult.AverageTotalScore > 0.0);
|
||||||
|
|
||||||
if (_options.AllowPartialMapping == true)
|
if (_options.AllowPartialMapping == true)
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ using WireMock.Handlers;
|
|||||||
using WireMock.Logging;
|
using WireMock.Logging;
|
||||||
using WireMock.Matchers;
|
using WireMock.Matchers;
|
||||||
using WireMock.Util;
|
using WireMock.Util;
|
||||||
|
using WireMock.Settings;
|
||||||
#if !USE_ASPNETCORE
|
#if !USE_ASPNETCORE
|
||||||
using Owin;
|
using Owin;
|
||||||
#else
|
#else
|
||||||
@@ -22,6 +23,8 @@ namespace WireMock.Owin
|
|||||||
|
|
||||||
public bool? AllowPartialMapping { get; set; }
|
public bool? AllowPartialMapping { get; set; }
|
||||||
|
|
||||||
|
public IPartialMappingSettings PartialMappingSettings { get; set; }
|
||||||
|
|
||||||
public ConcurrentDictionary<Guid, IMapping> Mappings { get; } = new ConcurrentDictionary<Guid, IMapping>();
|
public ConcurrentDictionary<Guid, IMapping> Mappings { get; } = new ConcurrentDictionary<Guid, IMapping>();
|
||||||
|
|
||||||
public ConcurrentDictionary<string, ScenarioState> Scenarios { get; } = new ConcurrentDictionary<string, ScenarioState>();
|
public ConcurrentDictionary<string, ScenarioState> Scenarios { get; } = new ConcurrentDictionary<string, ScenarioState>();
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ namespace WireMock.Serialization
|
|||||||
string matcherName = parts[0];
|
string matcherName = parts[0];
|
||||||
string matcherType = parts.Length > 1 ? parts[1] : null;
|
string matcherType = parts.Length > 1 ? parts[1] : null;
|
||||||
|
|
||||||
string[] stringPatterns = (matcher.Patterns != null ? matcher.Patterns : new[] { matcher.Pattern }).OfType<string>().ToArray();
|
string[] stringPatterns = matcher.Patterns != null ? matcher.Patterns.OfType<string>().ToArray() : new[] { matcher.Pattern as string };
|
||||||
MatchBehaviour matchBehaviour = matcher.RejectOnMatch == true ? MatchBehaviour.RejectOnMatch : MatchBehaviour.AcceptOnMatch;
|
MatchBehaviour matchBehaviour = matcher.RejectOnMatch == true ? MatchBehaviour.RejectOnMatch : MatchBehaviour.AcceptOnMatch;
|
||||||
bool ignoreCase = matcher.IgnoreCase == true;
|
bool ignoreCase = matcher.IgnoreCase == true;
|
||||||
bool throwExceptionWhenMatcherFails = _settings.ThrowExceptionWhenMatcherFails == true;
|
bool throwExceptionWhenMatcherFails = _settings.ThrowExceptionWhenMatcherFails == true;
|
||||||
@@ -64,8 +64,7 @@ namespace WireMock.Serialization
|
|||||||
return new RegexMatcher(matchBehaviour, stringPatterns, ignoreCase, throwExceptionWhenMatcherFails);
|
return new RegexMatcher(matchBehaviour, stringPatterns, ignoreCase, throwExceptionWhenMatcherFails);
|
||||||
|
|
||||||
case "JsonMatcher":
|
case "JsonMatcher":
|
||||||
object value = matcher.Pattern ?? matcher.Patterns;
|
return new JsonMatcher(matchBehaviour, stringPatterns, ignoreCase, throwExceptionWhenMatcherFails);
|
||||||
return new JsonMatcher(matchBehaviour, value, ignoreCase, throwExceptionWhenMatcherFails);
|
|
||||||
|
|
||||||
case "JsonPathMatcher":
|
case "JsonPathMatcher":
|
||||||
return new JsonPathMatcher(matchBehaviour, throwExceptionWhenMatcherFails, stringPatterns);
|
return new JsonPathMatcher(matchBehaviour, throwExceptionWhenMatcherFails, stringPatterns);
|
||||||
|
|||||||
@@ -367,6 +367,7 @@ namespace WireMock.Server
|
|||||||
if (settings.AllowPartialMapping != null)
|
if (settings.AllowPartialMapping != null)
|
||||||
{
|
{
|
||||||
_options.AllowPartialMapping = settings.AllowPartialMapping.Value;
|
_options.AllowPartialMapping = settings.AllowPartialMapping.Value;
|
||||||
|
// TODO stef _options.PartialMappingSettings = settings.
|
||||||
}
|
}
|
||||||
|
|
||||||
if (settings.GlobalProcessingDelay != null)
|
if (settings.GlobalProcessingDelay != null)
|
||||||
|
|||||||
@@ -283,7 +283,7 @@ namespace WireMock.Server
|
|||||||
|
|
||||||
if (settings.AllowPartialMapping == true)
|
if (settings.AllowPartialMapping == true)
|
||||||
{
|
{
|
||||||
AllowPartialMapping();
|
AllowPartialMapping(true, settings.PartialMappingSettings);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (settings.StartAdminInterface == true)
|
if (settings.StartAdminInterface == true)
|
||||||
@@ -389,10 +389,21 @@ namespace WireMock.Server
|
|||||||
|
|
||||||
/// <inheritdoc cref="IWireMockServer.AllowPartialMapping" />
|
/// <inheritdoc cref="IWireMockServer.AllowPartialMapping" />
|
||||||
[PublicAPI]
|
[PublicAPI]
|
||||||
public void AllowPartialMapping(bool allow = true)
|
public void AllowPartialMapping(bool allow = true, bool enforceHttpMethod = false)
|
||||||
|
{
|
||||||
|
AllowPartialMapping(allow, new PartialMappingSettings
|
||||||
|
{
|
||||||
|
EnforceHttpMethod = enforceHttpMethod
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc cref="IWireMockServer.AllowPartialMapping" />
|
||||||
|
[PublicAPI]
|
||||||
|
public void AllowPartialMapping(bool allow = true, IPartialMappingSettings partialMappingSettings = null)
|
||||||
{
|
{
|
||||||
_settings.Logger.Info("AllowPartialMapping is set to {0}", allow);
|
_settings.Logger.Info("AllowPartialMapping is set to {0}", allow);
|
||||||
_options.AllowPartialMapping = allow;
|
_options.AllowPartialMapping = allow;
|
||||||
|
_options.PartialMappingSettings = partialMappingSettings;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc cref="IWireMockServer.SetBasicAuthentication" />
|
/// <inheritdoc cref="IWireMockServer.SetBasicAuthentication" />
|
||||||
|
|||||||
13
src/WireMock.Net/Settings/IPartialMappingSettings.cs
Normal file
13
src/WireMock.Net/Settings/IPartialMappingSettings.cs
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
namespace WireMock.Settings
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// IPartialMappingSettings
|
||||||
|
/// </summary>
|
||||||
|
public interface IPartialMappingSettings
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// ...
|
||||||
|
/// </summary>
|
||||||
|
bool EnforceHttpMethod { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -73,6 +73,12 @@ namespace WireMock.Settings
|
|||||||
[PublicAPI]
|
[PublicAPI]
|
||||||
bool? AllowPartialMapping { get; set; }
|
bool? AllowPartialMapping { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the partial mapping settings (optional).
|
||||||
|
/// </summary>
|
||||||
|
[PublicAPI]
|
||||||
|
IPartialMappingSettings PartialMappingSettings { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The username needed for __admin access.
|
/// The username needed for __admin access.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
15
src/WireMock.Net/Settings/PartialMappingSettings.cs
Normal file
15
src/WireMock.Net/Settings/PartialMappingSettings.cs
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
using JetBrains.Annotations;
|
||||||
|
|
||||||
|
namespace WireMock.Settings
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// PartialMappingSettings
|
||||||
|
/// </summary>
|
||||||
|
/// <seealso cref="IPartialMappingSettings" />
|
||||||
|
public class PartialMappingSettings : IPartialMappingSettings
|
||||||
|
{
|
||||||
|
/// <inheritdoc cref="IPartialMappingSettings.EnforceHttpMethod"/>
|
||||||
|
[PublicAPI]
|
||||||
|
public bool EnforceHttpMethod { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -53,6 +53,10 @@ namespace WireMock.Settings
|
|||||||
[PublicAPI]
|
[PublicAPI]
|
||||||
public bool? AllowPartialMapping { get; set; }
|
public bool? AllowPartialMapping { get; set; }
|
||||||
|
|
||||||
|
/// <inheritdoc cref="IWireMockServerSettings.PartialMappingSettings"/>
|
||||||
|
[PublicAPI]
|
||||||
|
public IPartialMappingSettings PartialMappingSettings { get; set; }
|
||||||
|
|
||||||
/// <inheritdoc cref="IWireMockServerSettings.AdminUsername"/>
|
/// <inheritdoc cref="IWireMockServerSettings.AdminUsername"/>
|
||||||
[PublicAPI]
|
[PublicAPI]
|
||||||
public string AdminUsername { get; set; }
|
public string AdminUsername { get; set; }
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using NFluent;
|
using System.Collections.Generic;
|
||||||
using System.Collections.Generic;
|
using FluentAssertions;
|
||||||
|
using NFluent;
|
||||||
using WireMock.Matchers.Request;
|
using WireMock.Matchers.Request;
|
||||||
using WireMock.Models;
|
using WireMock.Models;
|
||||||
using WireMock.RequestBuilders;
|
using WireMock.RequestBuilders;
|
||||||
@@ -13,6 +14,34 @@ namespace WireMock.Net.Tests
|
|||||||
{
|
{
|
||||||
private const string ClientIp = "::1";
|
private const string ClientIp = "::1";
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void Should_Match_When_Verb_Does_Match()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var requestPut = Request.Create().WithPath("/bar").UsingPut();
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var request = new RequestMessage(new UrlDetails("http://localhost/bar"), "PUT", ClientIp);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
var requestMatchResult = new RequestMatchResult();
|
||||||
|
requestPut.GetMatchingScore(request, requestMatchResult).Should().Be(1.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void Should_NotMatch_When_Verb_Does_Not_Match()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var requestGet = Request.Create().WithPath("/bar").UsingGet();
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var request = new RequestMessage(new UrlDetails("http://localhost/bar"), "PUT", ClientIp);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
var requestMatchResult = new RequestMatchResult();
|
||||||
|
requestGet.GetMatchingScore(request, requestMatchResult).Should().Be(0.0);
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void Should_exclude_requests_matching_given_http_method_but_not_url()
|
public void Should_exclude_requests_matching_given_http_method_but_not_url()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
using System;
|
using Moq;
|
||||||
using FluentAssertions;
|
|
||||||
using Moq;
|
|
||||||
using NFluent;
|
using NFluent;
|
||||||
|
using System;
|
||||||
using WireMock.Admin.Mappings;
|
using WireMock.Admin.Mappings;
|
||||||
using WireMock.Matchers;
|
using WireMock.Matchers;
|
||||||
using WireMock.Serialization;
|
using WireMock.Serialization;
|
||||||
@@ -27,7 +26,7 @@ namespace WireMock.Net.Tests.Serialization
|
|||||||
var model = _sut.Map((IMatcher)null);
|
var model = _sut.Map((IMatcher)null);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
model.Should().BeNull();
|
Check.That(model).IsNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@@ -37,7 +36,7 @@ namespace WireMock.Net.Tests.Serialization
|
|||||||
var model = _sut.Map((IMatcher[])null);
|
var model = _sut.Map((IMatcher[])null);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
model.Should().BeNull();
|
Check.That(model).IsNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@@ -51,7 +50,7 @@ namespace WireMock.Net.Tests.Serialization
|
|||||||
var models = _sut.Map(new[] { matcherMock1.Object, matcherMock2.Object });
|
var models = _sut.Map(new[] { matcherMock1.Object, matcherMock2.Object });
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
models.Should().HaveCount(2);
|
Check.That(models).HasSize(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@@ -66,10 +65,10 @@ namespace WireMock.Net.Tests.Serialization
|
|||||||
var model = _sut.Map(matcherMock.Object);
|
var model = _sut.Map(matcherMock.Object);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
model.IgnoreCase.Should().BeNull();
|
Check.That(model.IgnoreCase).IsNull();
|
||||||
model.Name.Should().Be("test");
|
Check.That(model.Name).Equals("test");
|
||||||
model.Pattern.Should().BeNull();
|
Check.That(model.Pattern).IsNull();
|
||||||
model.Patterns.Should().Contain("p1", "p2");
|
Check.That(model.Patterns).ContainsExactly("p1", "p2");
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@@ -83,7 +82,7 @@ namespace WireMock.Net.Tests.Serialization
|
|||||||
var model = _sut.Map(matcherMock.Object);
|
var model = _sut.Map(matcherMock.Object);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
model.IgnoreCase.Should().BeTrue();
|
Check.That(model.IgnoreCase).Equals(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@@ -93,7 +92,7 @@ namespace WireMock.Net.Tests.Serialization
|
|||||||
var result = _sut.Map((MatcherModel)null);
|
var result = _sut.Map((MatcherModel)null);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
result.Should().BeNull();
|
Check.That(result).IsNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@@ -120,8 +119,8 @@ namespace WireMock.Net.Tests.Serialization
|
|||||||
var matcher = (LinqMatcher)_sut.Map(model);
|
var matcher = (LinqMatcher)_sut.Map(model);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
matcher.MatchBehaviour.Should().Be(MatchBehaviour.AcceptOnMatch);
|
Check.That(matcher.MatchBehaviour).IsEqualTo(MatchBehaviour.AcceptOnMatch);
|
||||||
matcher.GetPatterns().Should().Contain("p");
|
Check.That(matcher.GetPatterns()).ContainsExactly("p");
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@@ -138,88 +137,8 @@ namespace WireMock.Net.Tests.Serialization
|
|||||||
var matcher = (LinqMatcher)_sut.Map(model);
|
var matcher = (LinqMatcher)_sut.Map(model);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
matcher.MatchBehaviour.Should().Be(MatchBehaviour.AcceptOnMatch);
|
Check.That(matcher.MatchBehaviour).IsEqualTo(MatchBehaviour.AcceptOnMatch);
|
||||||
matcher.GetPatterns().Should().Contain("p1", "p2");
|
Check.That(matcher.GetPatterns()).ContainsExactly("p1", "p2");
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void MatcherMapper_Map_MatcherModel_JsonMatcher_Pattern_As_String()
|
|
||||||
{
|
|
||||||
// Assign
|
|
||||||
var pattern = "{ \"AccountIds\": [ 1, 2, 3 ] }";
|
|
||||||
var model = new MatcherModel
|
|
||||||
{
|
|
||||||
Name = "JsonMatcher",
|
|
||||||
Pattern = pattern
|
|
||||||
};
|
|
||||||
|
|
||||||
// Act
|
|
||||||
var matcher = (JsonMatcher)_sut.Map(model);
|
|
||||||
|
|
||||||
// Assert
|
|
||||||
matcher.MatchBehaviour.Should().Be(MatchBehaviour.AcceptOnMatch);
|
|
||||||
matcher.Value.Should().BeEquivalentTo(pattern);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void MatcherMapper_Map_MatcherModel_JsonMatcher_Patterns_As_String()
|
|
||||||
{
|
|
||||||
// Assign
|
|
||||||
var pattern1 = "{ \"AccountIds\": [ 1, 2, 3 ] }";
|
|
||||||
var pattern2 = "{ \"X\": \"x\" }";
|
|
||||||
var patterns = new[] { pattern1, pattern2 };
|
|
||||||
var model = new MatcherModel
|
|
||||||
{
|
|
||||||
Name = "JsonMatcher",
|
|
||||||
Pattern = patterns
|
|
||||||
};
|
|
||||||
|
|
||||||
// Act
|
|
||||||
var matcher = (JsonMatcher)_sut.Map(model);
|
|
||||||
|
|
||||||
// Assert
|
|
||||||
matcher.MatchBehaviour.Should().Be(MatchBehaviour.AcceptOnMatch);
|
|
||||||
matcher.Value.Should().BeEquivalentTo(patterns);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void MatcherMapper_Map_MatcherModel_JsonMatcher_Pattern_As_Object()
|
|
||||||
{
|
|
||||||
// Assign
|
|
||||||
var pattern = new { AccountIds = new[] { 1, 2, 3 } };
|
|
||||||
var model = new MatcherModel
|
|
||||||
{
|
|
||||||
Name = "JsonMatcher",
|
|
||||||
Pattern = pattern
|
|
||||||
};
|
|
||||||
|
|
||||||
// Act
|
|
||||||
var matcher = (JsonMatcher)_sut.Map(model);
|
|
||||||
|
|
||||||
// Assert
|
|
||||||
matcher.MatchBehaviour.Should().Be(MatchBehaviour.AcceptOnMatch);
|
|
||||||
matcher.Value.Should().BeEquivalentTo(pattern);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void MatcherMapper_Map_MatcherModel_JsonMatcher_Patterns_As_Object()
|
|
||||||
{
|
|
||||||
// Assign
|
|
||||||
object pattern1 = new { AccountIds = new[] { 1, 2, 3 } };
|
|
||||||
object pattern2 = new { X = "x" };
|
|
||||||
var patterns = new[] { pattern1, pattern2 };
|
|
||||||
var model = new MatcherModel
|
|
||||||
{
|
|
||||||
Name = "JsonMatcher",
|
|
||||||
Patterns = patterns
|
|
||||||
};
|
|
||||||
|
|
||||||
// Act
|
|
||||||
var matcher = (JsonMatcher)_sut.Map(model);
|
|
||||||
|
|
||||||
// Assert
|
|
||||||
matcher.MatchBehaviour.Should().Be(MatchBehaviour.AcceptOnMatch);
|
|
||||||
matcher.Value.Should().BeEquivalentTo(patterns);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user