mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-07-08 22:05:13 +02:00
Add support to use 'mapping' object in in reponse templating (#798)
* mapping * . * .
This commit is contained in:
@@ -30,5 +30,6 @@
|
|||||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=Webhooks/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/UserDictionary/Words/=Webhooks/@EntryIndexedValue">True</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=wiremock/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/UserDictionary/Words/=wiremock/@EntryIndexedValue">True</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=wiremockserver/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/UserDictionary/Words/=wiremockserver/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/UserDictionary/Words/=Xeger/@EntryIndexedValue">True</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=xunit/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/UserDictionary/Words/=xunit/@EntryIndexedValue">True</s:Boolean>
|
||||||
</wpf:ResourceDictionary>
|
</wpf:ResourceDictionary>
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using log4net;
|
using log4net;
|
||||||
using log4net.Config;
|
using log4net.Config;
|
||||||
using log4net.Repository;
|
using log4net.Repository;
|
||||||
using WireMock.Net.ConsoleApplication;
|
using WireMock.Net.ConsoleApplication;
|
||||||
|
|
||||||
namespace WireMock.Net.Console.NETCoreApp
|
namespace WireMock.Net.Console.NETCoreApp;
|
||||||
{
|
|
||||||
static class Program
|
static class Program
|
||||||
{
|
{
|
||||||
private static readonly ILoggerRepository LogRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());
|
private static readonly ILoggerRepository LogRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());
|
||||||
@@ -19,4 +19,3 @@ namespace WireMock.Net.Console.NETCoreApp
|
|||||||
MainApp.Run();
|
MainApp.Run();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
using System.IO;
|
using System.IO;
|
||||||
using log4net.Config;
|
using log4net.Config;
|
||||||
|
|
||||||
namespace WireMock.Net.ConsoleApplication
|
namespace WireMock.Net.ConsoleApplication;
|
||||||
{
|
|
||||||
static class Program
|
static class Program
|
||||||
{
|
{
|
||||||
static void Main(params string[] args)
|
static void Main(params string[] args)
|
||||||
@@ -12,4 +12,3 @@ namespace WireMock.Net.ConsoleApplication
|
|||||||
MainApp.Run();
|
MainApp.Run();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
-1
@@ -80,7 +80,6 @@
|
|||||||
<None Include="App.config">
|
<None Include="App.config">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</None>
|
</None>
|
||||||
<None Include="libman.json" />
|
|
||||||
<None Include="log4net.config">
|
<None Include="log4net.config">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using log4net.Config;
|
using log4net.Config;
|
||||||
using WireMock.Server;
|
using WireMock.Server;
|
||||||
using WireMock.Settings;
|
using WireMock.Settings;
|
||||||
|
|
||||||
namespace WireMock.Net.StandAlone.Net452
|
namespace WireMock.Net.StandAlone.Net452;
|
||||||
{
|
|
||||||
public class Program
|
public class Program
|
||||||
{
|
{
|
||||||
static void Main(params string[] args)
|
static void Main(params string[] args)
|
||||||
@@ -15,7 +15,7 @@ namespace WireMock.Net.StandAlone.Net452
|
|||||||
|
|
||||||
if (WireMockServerSettingsParser.TryParseArguments(args, out var settings))
|
if (WireMockServerSettingsParser.TryParseArguments(args, out var settings))
|
||||||
{
|
{
|
||||||
settings.Logger.Debug("WireMock.Net server arguments [{0}]", string.Join(", ", args.Select(a => $"'{a}'")));
|
Console.WriteLine("WireMock.Net server arguments [{0}]", string.Join(", ", args.Select(a => $"'{a}'")));
|
||||||
|
|
||||||
WireMockServer.Start(settings);
|
WireMockServer.Start(settings);
|
||||||
|
|
||||||
@@ -24,4 +24,3 @@ namespace WireMock.Net.StandAlone.Net452
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using WireMock.Server;
|
using WireMock.Server;
|
||||||
using WireMock.Settings;
|
using WireMock.Settings;
|
||||||
|
|
||||||
namespace WireMock.Net.StandAlone.Net461
|
namespace WireMock.Net.StandAlone.Net461;
|
||||||
{
|
|
||||||
static class Program
|
static class Program
|
||||||
{
|
{
|
||||||
static void Main(string[] args)
|
static void Main(string[] args)
|
||||||
{
|
{
|
||||||
if (WireMockServerSettingsParser.TryParseArguments(args, out var settings))
|
if (WireMockServerSettingsParser.TryParseArguments(args, out var settings))
|
||||||
{
|
{
|
||||||
settings.Logger.Debug("WireMock.Net server arguments [{0}]", string.Join(", ", args.Select(a => $"'{a}'")));
|
Console.WriteLine("WireMock.Net server arguments [{0}]", string.Join(", ", args.Select(a => $"'{a}'")));
|
||||||
|
|
||||||
WireMockServer.Start(settings);
|
WireMockServer.Start(settings);
|
||||||
|
|
||||||
@@ -20,4 +20,3 @@ namespace WireMock.Net.StandAlone.Net461
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -25,9 +25,10 @@ internal class WebhookSender
|
|||||||
_settings = Guard.NotNull(settings);
|
_settings = Guard.NotNull(settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<HttpResponseMessage> SendAsync(HttpClient client, IWebhookRequest request, IRequestMessage originalRequestMessage, IResponseMessage originalResponseMessage)
|
public Task<HttpResponseMessage> SendAsync(HttpClient client, IMapping mapping, IWebhookRequest request, IRequestMessage originalRequestMessage, IResponseMessage originalResponseMessage)
|
||||||
{
|
{
|
||||||
Guard.NotNull(client);
|
Guard.NotNull(client);
|
||||||
|
Guard.NotNull(mapping);
|
||||||
Guard.NotNull(request);
|
Guard.NotNull(request);
|
||||||
Guard.NotNull(originalRequestMessage);
|
Guard.NotNull(originalRequestMessage);
|
||||||
Guard.NotNull(originalResponseMessage);
|
Guard.NotNull(originalResponseMessage);
|
||||||
@@ -54,7 +55,7 @@ internal class WebhookSender
|
|||||||
throw new NotImplementedException($"TransformerType '{request.TransformerType}' is not supported.");
|
throw new NotImplementedException($"TransformerType '{request.TransformerType}' is not supported.");
|
||||||
}
|
}
|
||||||
|
|
||||||
(bodyData, headers) = responseMessageTransformer.Transform(originalRequestMessage, originalResponseMessage, request.BodyData, request.Headers, request.TransformerReplaceNodeOptions);
|
(bodyData, headers) = responseMessageTransformer.Transform(mapping, originalRequestMessage, originalResponseMessage, request.BodyData, request.Headers, request.TransformerReplaceNodeOptions);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ public class Mapping : IMapping
|
|||||||
/// <inheritdoc cref="IMapping.ProvideResponseAsync" />
|
/// <inheritdoc cref="IMapping.ProvideResponseAsync" />
|
||||||
public Task<(IResponseMessage Message, IMapping? Mapping)> ProvideResponseAsync(IRequestMessage requestMessage)
|
public Task<(IResponseMessage Message, IMapping? Mapping)> ProvideResponseAsync(IRequestMessage requestMessage)
|
||||||
{
|
{
|
||||||
return Provider.ProvideResponseAsync(requestMessage, Settings);
|
return Provider.ProvideResponseAsync(this, requestMessage, Settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc cref="IMapping.GetRequestMatchResult" />
|
/// <inheritdoc cref="IMapping.GetRequestMatchResult" />
|
||||||
|
|||||||
@@ -4,12 +4,12 @@ using WireMock.Handlers;
|
|||||||
using WireMock.Logging;
|
using WireMock.Logging;
|
||||||
using WireMock.Matchers;
|
using WireMock.Matchers;
|
||||||
using WireMock.Util;
|
using WireMock.Util;
|
||||||
using WireMock.Types;
|
|
||||||
#if !USE_ASPNETCORE
|
#if !USE_ASPNETCORE
|
||||||
using Owin;
|
using Owin;
|
||||||
#else
|
#else
|
||||||
using IAppBuilder = Microsoft.AspNetCore.Builder.IApplicationBuilder;
|
using IAppBuilder = Microsoft.AspNetCore.Builder.IApplicationBuilder;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using WireMock.Types;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
namespace WireMock.Owin;
|
namespace WireMock.Owin;
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ namespace WireMock.Owin
|
|||||||
{
|
{
|
||||||
internal class WireMockMiddleware : OwinMiddleware
|
internal class WireMockMiddleware : OwinMiddleware
|
||||||
{
|
{
|
||||||
private readonly object _lock = new object();
|
private readonly object _lock = new();
|
||||||
private static readonly Task CompletedTask = Task.FromResult(false);
|
private static readonly Task CompletedTask = Task.FromResult(false);
|
||||||
private readonly IWireMockMiddlewareOptions _options;
|
private readonly IWireMockMiddlewareOptions _options;
|
||||||
private readonly IOwinRequestMapper _requestMapper;
|
private readonly IOwinRequestMapper _requestMapper;
|
||||||
@@ -108,10 +108,10 @@ namespace WireMock.Owin
|
|||||||
|
|
||||||
logRequest = targetMapping.LogMapping;
|
logRequest = targetMapping.LogMapping;
|
||||||
|
|
||||||
if (targetMapping.IsAdminInterface && _options.AuthenticationMatcher != null)
|
if (targetMapping.IsAdminInterface && _options.AuthenticationMatcher != null && request.Headers != null)
|
||||||
{
|
{
|
||||||
bool present = request.Headers.TryGetValue(HttpKnownHeaderNames.Authorization, out WireMockList<string> authorization);
|
bool present = request.Headers.TryGetValue(HttpKnownHeaderNames.Authorization, out WireMockList<string> authorization);
|
||||||
if (!present || _options.AuthenticationMatcher.IsMatch(authorization.ToString()) < MatchScores.Perfect)
|
if (!present || _options.AuthenticationMatcher.IsMatch(authorization!.ToString()) < MatchScores.Perfect)
|
||||||
{
|
{
|
||||||
_options.Logger.Error("HttpStatusCode set to 401");
|
_options.Logger.Error("HttpStatusCode set to 401");
|
||||||
response = ResponseMessageBuilder.Create(null, HttpStatusCode.Unauthorized);
|
response = ResponseMessageBuilder.Create(null, HttpStatusCode.Unauthorized);
|
||||||
@@ -208,7 +208,7 @@ namespace WireMock.Owin
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
await webhookSender.SendAsync(httpClientForWebhook, mapping.Webhooks[index].Request, request, response).ConfigureAwait(false);
|
await webhookSender.SendAsync(httpClientForWebhook, mapping, mapping.Webhooks[index].Request, request, response).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -244,7 +244,7 @@ public partial class Response : IResponseBuilder
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public async Task<(IResponseMessage Message, IMapping? Mapping)> ProvideResponseAsync(IRequestMessage requestMessage, WireMockServerSettings settings)
|
public async Task<(IResponseMessage Message, IMapping? Mapping)> ProvideResponseAsync(IMapping mapping, IRequestMessage requestMessage, WireMockServerSettings settings)
|
||||||
{
|
{
|
||||||
Guard.NotNull(requestMessage);
|
Guard.NotNull(requestMessage);
|
||||||
Guard.NotNull(settings);
|
Guard.NotNull(settings);
|
||||||
@@ -327,7 +327,7 @@ public partial class Response : IResponseBuilder
|
|||||||
throw new NotImplementedException($"TransformerType '{TransformerType}' is not supported.");
|
throw new NotImplementedException($"TransformerType '{TransformerType}' is not supported.");
|
||||||
}
|
}
|
||||||
|
|
||||||
return (responseMessageTransformer.Transform(requestMessage, responseMessage, UseTransformerForBodyAsFile, TransformerReplaceNodeOptions), null);
|
return (responseMessageTransformer.Transform(mapping, requestMessage, responseMessage, UseTransformerForBodyAsFile, TransformerReplaceNodeOptions), null);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!UseTransformer && ResponseMessage.BodyData?.BodyAsFileIsCached == true)
|
if (!UseTransformer && ResponseMessage.BodyData?.BodyAsFileIsCached == true)
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ internal class DynamicAsyncResponseProvider : IResponseProvider
|
|||||||
_responseMessageFunc = responseMessageFunc;
|
_responseMessageFunc = responseMessageFunc;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<(IResponseMessage Message, IMapping? Mapping)> ProvideResponseAsync(IRequestMessage requestMessage, WireMockServerSettings settings)
|
public async Task<(IResponseMessage Message, IMapping? Mapping)> ProvideResponseAsync(IMapping mapping, IRequestMessage requestMessage, WireMockServerSettings settings)
|
||||||
{
|
{
|
||||||
return (await _responseMessageFunc(requestMessage).ConfigureAwait(false), null);
|
return (await _responseMessageFunc(requestMessage).ConfigureAwait(false), null);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ internal class DynamicResponseProvider : IResponseProvider
|
|||||||
_responseMessageFunc = responseMessageFunc;
|
_responseMessageFunc = responseMessageFunc;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<(IResponseMessage Message, IMapping? Mapping)> ProvideResponseAsync(IRequestMessage requestMessage, WireMockServerSettings settings)
|
public Task<(IResponseMessage Message, IMapping? Mapping)> ProvideResponseAsync(IMapping mapping, IRequestMessage requestMessage, WireMockServerSettings settings)
|
||||||
{
|
{
|
||||||
(IResponseMessage responseMessage, IMapping? mapping) result = (_responseMessageFunc(requestMessage), null);
|
(IResponseMessage responseMessage, IMapping? mapping) result = (_responseMessageFunc(requestMessage), null);
|
||||||
return Task.FromResult(result);
|
return Task.FromResult(result);
|
||||||
|
|||||||
@@ -13,8 +13,9 @@ public interface IResponseProvider
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// The provide response.
|
/// The provide response.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="mapping">The used mapping.</param>
|
||||||
/// <param name="requestMessage">The request.</param>
|
/// <param name="requestMessage">The request.</param>
|
||||||
/// <param name="settings">The WireMockServerSettings.</param>
|
/// <param name="settings">The WireMockServerSettings.</param>
|
||||||
/// <returns>The <see cref="ResponseMessage"/> including a new (optional) <see cref="IMapping"/>.</returns>
|
/// <returns>The <see cref="ResponseMessage"/> including a new (optional) <see cref="IMapping"/>.</returns>
|
||||||
Task<(IResponseMessage Message, IMapping? Mapping)> ProvideResponseAsync(IRequestMessage requestMessage, WireMockServerSettings settings);
|
Task<(IResponseMessage Message, IMapping? Mapping)> ProvideResponseAsync(IMapping mapping, IRequestMessage requestMessage, WireMockServerSettings settings);
|
||||||
}
|
}
|
||||||
@@ -15,7 +15,7 @@ internal class ProxyAsyncResponseProvider : IResponseProvider
|
|||||||
_settings = settings;
|
_settings = settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<(IResponseMessage Message, IMapping? Mapping)> ProvideResponseAsync(IRequestMessage requestMessage, WireMockServerSettings settings)
|
public async Task<(IResponseMessage Message, IMapping? Mapping)> ProvideResponseAsync(IMapping mapping, IRequestMessage requestMessage, WireMockServerSettings settings)
|
||||||
{
|
{
|
||||||
return (await _responseMessageFunc(requestMessage, _settings).ConfigureAwait(false), null);
|
return (await _responseMessageFunc(requestMessage, _settings).ConfigureAwait(false), null);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
namespace WireMock
|
namespace WireMock;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The ScenarioState
|
/// The ScenarioState
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -8,12 +8,12 @@
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the Name (from the Scenario).
|
/// Gets or sets the Name (from the Scenario).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the NextState.
|
/// Gets or sets the NextState.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string NextState { get; set; }
|
public string? NextState { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets a value indicating whether this <see cref="ScenarioState"/> is started.
|
/// Gets or sets a value indicating whether this <see cref="ScenarioState"/> is started.
|
||||||
@@ -30,4 +30,3 @@
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public int Counter { get; set; }
|
public int Counter { get; set; }
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -21,7 +21,7 @@ public static class WireMockServerSettingsParser
|
|||||||
[PublicAPI]
|
[PublicAPI]
|
||||||
public static bool TryParseArguments(string[] args, [NotNullWhen(true)] out WireMockServerSettings? settings, IWireMockLogger? logger = null)
|
public static bool TryParseArguments(string[] args, [NotNullWhen(true)] out WireMockServerSettings? settings, IWireMockLogger? logger = null)
|
||||||
{
|
{
|
||||||
Guard.HasNoNulls(args, nameof(args));
|
Guard.HasNoNulls(args);
|
||||||
|
|
||||||
var parser = new SimpleCommandLineParser();
|
var parser = new SimpleCommandLineParser();
|
||||||
parser.Parse(args);
|
parser.Parse(args);
|
||||||
@@ -68,8 +68,7 @@ public static class WireMockServerSettingsParser
|
|||||||
{
|
{
|
||||||
settings.Logger = logger;
|
settings.Logger = logger;
|
||||||
}
|
}
|
||||||
|
else if (parser.GetStringValue("WireMockLogger") == "WireMockConsoleLogger")
|
||||||
if (parser.GetStringValue("WireMockLogger") == "WireMockConsoleLogger")
|
|
||||||
{
|
{
|
||||||
settings.Logger = new WireMockConsoleLogger();
|
settings.Logger = new WireMockConsoleLogger();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ namespace WireMock.Transformers;
|
|||||||
|
|
||||||
interface ITransformer
|
interface ITransformer
|
||||||
{
|
{
|
||||||
ResponseMessage Transform(IRequestMessage requestMessage, IResponseMessage original, bool useTransformerForBodyAsFile, ReplaceNodeOptions options);
|
ResponseMessage Transform(IMapping mapping, IRequestMessage requestMessage, IResponseMessage original, bool useTransformerForBodyAsFile, ReplaceNodeOptions options);
|
||||||
|
|
||||||
(IBodyData? BodyData, IDictionary<string, WireMockList<string>>? Headers) Transform(IRequestMessage originalRequestMessage, IResponseMessage originalResponseMessage, IBodyData? bodyData, IDictionary<string, WireMockList<string>>? headers, ReplaceNodeOptions options);
|
(IBodyData? BodyData, IDictionary<string, WireMockList<string>>? Headers) Transform(IMapping mapping, IRequestMessage originalRequestMessage, IResponseMessage originalResponseMessage, IBodyData? bodyData, IDictionary<string, WireMockList<string>>? headers, ReplaceNodeOptions options);
|
||||||
}
|
}
|
||||||
@@ -19,6 +19,7 @@ internal class Transformer : ITransformer
|
|||||||
}
|
}
|
||||||
|
|
||||||
public (IBodyData? BodyData, IDictionary<string, WireMockList<string>>? Headers) Transform(
|
public (IBodyData? BodyData, IDictionary<string, WireMockList<string>>? Headers) Transform(
|
||||||
|
IMapping mapping,
|
||||||
IRequestMessage originalRequestMessage,
|
IRequestMessage originalRequestMessage,
|
||||||
IResponseMessage originalResponseMessage,
|
IResponseMessage originalResponseMessage,
|
||||||
IBodyData? bodyData,
|
IBodyData? bodyData,
|
||||||
@@ -29,6 +30,7 @@ internal class Transformer : ITransformer
|
|||||||
|
|
||||||
var model = new
|
var model = new
|
||||||
{
|
{
|
||||||
|
mapping,
|
||||||
request = originalRequestMessage,
|
request = originalRequestMessage,
|
||||||
response = originalResponseMessage
|
response = originalResponseMessage
|
||||||
};
|
};
|
||||||
@@ -42,7 +44,7 @@ internal class Transformer : ITransformer
|
|||||||
return (newBodyData, TransformHeaders(transformerContext, model, headers));
|
return (newBodyData, TransformHeaders(transformerContext, model, headers));
|
||||||
}
|
}
|
||||||
|
|
||||||
public ResponseMessage Transform(IRequestMessage requestMessage, IResponseMessage original, bool useTransformerForBodyAsFile, ReplaceNodeOptions options)
|
public ResponseMessage Transform(IMapping mapping, IRequestMessage requestMessage, IResponseMessage original, bool useTransformerForBodyAsFile, ReplaceNodeOptions options)
|
||||||
{
|
{
|
||||||
var transformerContext = _factory.Create();
|
var transformerContext = _factory.Create();
|
||||||
|
|
||||||
@@ -50,6 +52,7 @@ internal class Transformer : ITransformer
|
|||||||
|
|
||||||
var model = new
|
var model = new
|
||||||
{
|
{
|
||||||
|
mapping,
|
||||||
request = requestMessage
|
request = requestMessage
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -82,22 +85,15 @@ internal class Transformer : ITransformer
|
|||||||
return responseMessage;
|
return responseMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static IBodyData TransformBodyData(ITransformerContext transformerContext, ReplaceNodeOptions options, object model, IBodyData original, bool useTransformerForBodyAsFile)
|
private static IBodyData? TransformBodyData(ITransformerContext transformerContext, ReplaceNodeOptions options, object model, IBodyData original, bool useTransformerForBodyAsFile)
|
||||||
{
|
{
|
||||||
switch (original?.DetectedBodyType)
|
return original.DetectedBodyType switch
|
||||||
{
|
{
|
||||||
case BodyType.Json:
|
BodyType.Json => TransformBodyAsJson(transformerContext, options, model, original),
|
||||||
return TransformBodyAsJson(transformerContext, options, model, original);
|
BodyType.File => TransformBodyAsFile(transformerContext, model, original, useTransformerForBodyAsFile),
|
||||||
|
BodyType.String => TransformBodyAsString(transformerContext, model, original),
|
||||||
case BodyType.File:
|
_ => null
|
||||||
return TransformBodyAsFile(transformerContext, model, original, useTransformerForBodyAsFile);
|
};
|
||||||
|
|
||||||
case BodyType.String:
|
|
||||||
return TransformBodyAsString(transformerContext, model, original);
|
|
||||||
|
|
||||||
default:
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static IDictionary<string, WireMockList<string>> TransformHeaders(ITransformerContext transformerContext, object model, IDictionary<string, WireMockList<string>>? original)
|
private static IDictionary<string, WireMockList<string>> TransformHeaders(ITransformerContext transformerContext, object model, IDictionary<string, WireMockList<string>>? original)
|
||||||
@@ -166,11 +162,17 @@ internal class Transformer : ITransformer
|
|||||||
{
|
{
|
||||||
const string property = "_";
|
const string property = "_";
|
||||||
JObject dummy = JObject.Parse($"{{ \"{property}\": null }}");
|
JObject dummy = JObject.Parse($"{{ \"{property}\": null }}");
|
||||||
JToken node = dummy[property];
|
if (dummy[property] == null)
|
||||||
|
{
|
||||||
|
// TODO: check if just returning null is fine
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
JToken node = dummy[property]!;
|
||||||
|
|
||||||
ReplaceNodeValue(options, node, transformedString);
|
ReplaceNodeValue(options, node, transformedString);
|
||||||
|
|
||||||
return dummy[property];
|
return dummy[property]!;
|
||||||
}
|
}
|
||||||
|
|
||||||
return stringValue;
|
return stringValue;
|
||||||
|
|||||||
@@ -1,15 +1,16 @@
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Moq;
|
||||||
using NFluent;
|
using NFluent;
|
||||||
using WireMock.Models;
|
using WireMock.Models;
|
||||||
using WireMock.ResponseBuilders;
|
using WireMock.ResponseBuilders;
|
||||||
using WireMock.Settings;
|
using WireMock.Settings;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace WireMock.Net.Tests.ResponseBuilders
|
namespace WireMock.Net.Tests.ResponseBuilders;
|
||||||
{
|
|
||||||
public class ResponseCreateTests
|
public class ResponseCreateTests
|
||||||
{
|
{
|
||||||
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
|
private readonly WireMockServerSettings _settings = new ();
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task Response_Create_Func()
|
public async Task Response_Create_Func()
|
||||||
@@ -17,14 +18,14 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
// Assign
|
// Assign
|
||||||
var responseMessage = new ResponseMessage { StatusCode = 500 };
|
var responseMessage = new ResponseMessage { StatusCode = 500 };
|
||||||
var request = new RequestMessage(new UrlDetails("http://localhost"), "GET", "::1");
|
var request = new RequestMessage(new UrlDetails("http://localhost"), "GET", "::1");
|
||||||
|
var mapping = new Mock<IMapping>().Object;
|
||||||
|
|
||||||
var responseBuilder = Response.Create(() => responseMessage);
|
var responseBuilder = Response.Create(() => responseMessage);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(mapping, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message).Equals(responseMessage);
|
Check.That(response.Message).Equals(responseMessage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -19,11 +19,14 @@ public class ResponseWithBodyTests
|
|||||||
{
|
{
|
||||||
private const string ClientIp = "::1";
|
private const string ClientIp = "::1";
|
||||||
|
|
||||||
|
private readonly Mock<IMapping> _mappingMock;
|
||||||
private readonly Mock<IFileSystemHandler> _filesystemHandlerMock;
|
private readonly Mock<IFileSystemHandler> _filesystemHandlerMock;
|
||||||
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
|
private readonly WireMockServerSettings _settings = new ();
|
||||||
|
|
||||||
public ResponseWithBodyTests()
|
public ResponseWithBodyTests()
|
||||||
{
|
{
|
||||||
|
_mappingMock = new Mock<IMapping>();
|
||||||
|
|
||||||
_filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
|
_filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
|
||||||
_filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("abc");
|
_filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("abc");
|
||||||
|
|
||||||
@@ -44,7 +47,7 @@ public class ResponseWithBodyTests
|
|||||||
var responseBuilder = Response.Create().WithBody(new byte[] { 48, 49 }, BodyDestinationFormat.String, Encoding.ASCII);
|
var responseBuilder = Response.Create().WithBody(new byte[] { 48, 49 }, BodyDestinationFormat.String, Encoding.ASCII);
|
||||||
|
|
||||||
// act
|
// act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Equals("01");
|
Check.That(response.Message.BodyData.BodyAsString).Equals("01");
|
||||||
@@ -66,7 +69,7 @@ public class ResponseWithBodyTests
|
|||||||
var responseBuilder = Response.Create().WithBody(new byte[] { 48, 49 }, BodyDestinationFormat.SameAsSource, Encoding.ASCII);
|
var responseBuilder = Response.Create().WithBody(new byte[] { 48, 49 }, BodyDestinationFormat.SameAsSource, Encoding.ASCII);
|
||||||
|
|
||||||
// act
|
// act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
Check.That(response.Message.BodyData.BodyAsBytes).ContainsExactly(new byte[] { 48, 49 });
|
Check.That(response.Message.BodyData.BodyAsBytes).ContainsExactly(new byte[] { 48, 49 });
|
||||||
@@ -88,7 +91,7 @@ public class ResponseWithBodyTests
|
|||||||
var responseBuilder = Response.Create().WithBody("test", null, Encoding.ASCII);
|
var responseBuilder = Response.Create().WithBody("test", null, Encoding.ASCII);
|
||||||
|
|
||||||
// act
|
// act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Equals("test");
|
Check.That(response.Message.BodyData.BodyAsString).Equals("test");
|
||||||
@@ -110,7 +113,7 @@ public class ResponseWithBodyTests
|
|||||||
var responseBuilder = Response.Create().WithBodyAsJson(x, Encoding.ASCII);
|
var responseBuilder = Response.Create().WithBodyAsJson(x, Encoding.ASCII);
|
||||||
|
|
||||||
// act
|
// act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
Check.That(response.Message.BodyData.BodyAsJson).Equals(x);
|
Check.That(response.Message.BodyData.BodyAsJson).Equals(x);
|
||||||
@@ -132,7 +135,7 @@ public class ResponseWithBodyTests
|
|||||||
var responseBuilder = Response.Create().WithBodyAsJson(x, true);
|
var responseBuilder = Response.Create().WithBodyAsJson(x, true);
|
||||||
|
|
||||||
// act
|
// act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
Check.That(response.Message.BodyData.BodyAsJson).Equals(x);
|
Check.That(response.Message.BodyData.BodyAsJson).Equals(x);
|
||||||
@@ -148,7 +151,7 @@ public class ResponseWithBodyTests
|
|||||||
var responseBuilder = Response.Create().WithBody("r", BodyDestinationFormat.SameAsSource, Encoding.ASCII);
|
var responseBuilder = Response.Create().WithBody("r", BodyDestinationFormat.SameAsSource, Encoding.ASCII);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsBytes).IsNull();
|
Check.That(response.Message.BodyData.BodyAsBytes).IsNull();
|
||||||
@@ -166,7 +169,7 @@ public class ResponseWithBodyTests
|
|||||||
var responseBuilder = Response.Create().WithBody("r", BodyDestinationFormat.Bytes, Encoding.ASCII);
|
var responseBuilder = Response.Create().WithBody("r", BodyDestinationFormat.Bytes, Encoding.ASCII);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).IsNull();
|
Check.That(response.Message.BodyData.BodyAsString).IsNull();
|
||||||
@@ -184,7 +187,7 @@ public class ResponseWithBodyTests
|
|||||||
var responseBuilder = Response.Create().WithBody("{ \"value\": 42 }", BodyDestinationFormat.Json, Encoding.ASCII);
|
var responseBuilder = Response.Create().WithBody("{ \"value\": 42 }", BodyDestinationFormat.Json, Encoding.ASCII);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).IsNull();
|
Check.That(response.Message.BodyData.BodyAsString).IsNull();
|
||||||
@@ -206,7 +209,7 @@ public class ResponseWithBodyTests
|
|||||||
.WithBody(req => $"path: {req.Path}");
|
.WithBody(req => $"path: {req.Path}");
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).IsEqualTo("path: /test");
|
Check.That(response.Message.BodyData.BodyAsString).IsEqualTo("path: /test");
|
||||||
@@ -235,7 +238,7 @@ public class ResponseWithBodyTests
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).IsEqualTo("path: /test");
|
Check.That(response.Message.BodyData.BodyAsString).IsEqualTo("path: /test");
|
||||||
@@ -263,8 +266,8 @@ public class ResponseWithBodyTests
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response1 = await responseBuilder.ProvideResponseAsync(request1, _settings).ConfigureAwait(false);
|
var response1 = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request1, _settings).ConfigureAwait(false);
|
||||||
var response2 = await responseBuilder.ProvideResponseAsync(request2, _settings).ConfigureAwait(false);
|
var response2 = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request2, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(((JToken)response1.Message.BodyData.BodyAsJson).SelectToken("id")?.Value<int>()).IsEqualTo(request1Id);
|
Check.That(((JToken)response1.Message.BodyData.BodyAsJson).SelectToken("id")?.Value<int>()).IsEqualTo(request1Id);
|
||||||
@@ -288,7 +291,7 @@ public class ResponseWithBodyTests
|
|||||||
|
|
||||||
var responseBuilder = Response.Create().WithStatusCode(200).WithBody(fileContents);
|
var responseBuilder = Response.Create().WithStatusCode(200).WithBody(fileContents);
|
||||||
|
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request1, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request1, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
Check.That(response.Message.StatusCode).IsEqualTo(200);
|
Check.That(response.Message.StatusCode).IsEqualTo(200);
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Contains(fileContents);
|
Check.That(response.Message.BodyData.BodyAsString).Contains(fileContents);
|
||||||
@@ -304,7 +307,7 @@ public class ResponseWithBodyTests
|
|||||||
|
|
||||||
var responseBuilder = Response.Create().WithStatusCode(200).WithBody(fileContents);
|
var responseBuilder = Response.Create().WithStatusCode(200).WithBody(fileContents);
|
||||||
|
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request1, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request1, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
Check.That(response.Message.StatusCode).IsEqualTo(200);
|
Check.That(response.Message.StatusCode).IsEqualTo(200);
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Contains(fileContents);
|
Check.That(response.Message.BodyData.BodyAsString).Contains(fileContents);
|
||||||
@@ -320,7 +323,7 @@ public class ResponseWithBodyTests
|
|||||||
|
|
||||||
var responseBuilder = Response.Create().WithStatusCode(200).WithBody("File deleted.");
|
var responseBuilder = Response.Create().WithStatusCode(200).WithBody("File deleted.");
|
||||||
|
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request1, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request1, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
Check.That(response.Message.StatusCode).IsEqualTo(200);
|
Check.That(response.Message.StatusCode).IsEqualTo(200);
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Contains("File deleted.");
|
Check.That(response.Message.BodyData.BodyAsString).Contains("File deleted.");
|
||||||
@@ -341,7 +344,7 @@ public class ResponseWithBodyTests
|
|||||||
var responseBuilder = Response.Create().WithBody(new { foo = "bar", n = 42 }, new JsonConverter.System.Text.Json.SystemTextJsonConverter());
|
var responseBuilder = Response.Create().WithBody(new { foo = "bar", n = 42 }, new JsonConverter.System.Text.Json.SystemTextJsonConverter());
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
response.Message.BodyData!.BodyAsString.Should().Be(@"{""foo"":""bar"",""n"":42}");
|
response.Message.BodyData!.BodyAsString.Should().Be(@"{""foo"":""bar"",""n"":42}");
|
||||||
|
|||||||
@@ -11,17 +11,20 @@ using WireMock.Types;
|
|||||||
using WireMock.Util;
|
using WireMock.Util;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace WireMock.Net.Tests.ResponseBuilders
|
namespace WireMock.Net.Tests.ResponseBuilders;
|
||||||
{
|
|
||||||
public class ResponseWithCallbackTests
|
public class ResponseWithCallbackTests
|
||||||
{
|
{
|
||||||
private const string ClientIp = "::1";
|
private const string ClientIp = "::1";
|
||||||
|
|
||||||
|
private readonly Mock<IMapping> _mappingMock;
|
||||||
private readonly Mock<IFileSystemHandler> _filesystemHandlerMock;
|
private readonly Mock<IFileSystemHandler> _filesystemHandlerMock;
|
||||||
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
|
private readonly WireMockServerSettings _settings = new();
|
||||||
|
|
||||||
public ResponseWithCallbackTests()
|
public ResponseWithCallbackTests()
|
||||||
{
|
{
|
||||||
|
_mappingMock = new Mock<IMapping>();
|
||||||
|
|
||||||
_filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
|
_filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
|
||||||
_filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("abc");
|
_filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("abc");
|
||||||
|
|
||||||
@@ -50,7 +53,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(requestMessage, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, requestMessage, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
response.Message.BodyData.BodyAsString.Should().Be("/fooBar");
|
response.Message.BodyData.BodyAsString.Should().Be("/fooBar");
|
||||||
@@ -74,7 +77,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(requestMessage, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, requestMessage, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
response.Message.BodyData.BodyAsString.Should().Be("/fooBar");
|
response.Message.BodyData.BodyAsString.Should().Be("/fooBar");
|
||||||
@@ -103,7 +106,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(requestMessage, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, requestMessage, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
response.Message.BodyData.BodyAsString.Should().Be("/fooBar");
|
response.Message.BodyData.BodyAsString.Should().Be("/fooBar");
|
||||||
@@ -135,7 +138,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithHeader(header, "Stef");
|
.WithHeader(header, "Stef");
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(requestMessage, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, requestMessage, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
response.Message.BodyData.BodyAsString.Should().Be("/fooBar");
|
response.Message.BodyData.BodyAsString.Should().Be("/fooBar");
|
||||||
@@ -161,11 +164,10 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(requestMessage, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, requestMessage, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
response.Message.BodyData.BodyAsString.Should().Be("/fooBar");
|
response.Message.BodyData.BodyAsString.Should().Be("/fooBar");
|
||||||
response.Message.StatusCode.Should().Be(302);
|
response.Message.StatusCode.Should().Be(302);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -1,17 +1,25 @@
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using FluentAssertions;
|
using FluentAssertions;
|
||||||
|
using Moq;
|
||||||
using WireMock.Models;
|
using WireMock.Models;
|
||||||
using WireMock.ResponseBuilders;
|
using WireMock.ResponseBuilders;
|
||||||
using WireMock.Settings;
|
using WireMock.Settings;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace WireMock.Net.Tests.ResponseBuilders
|
namespace WireMock.Net.Tests.ResponseBuilders;
|
||||||
{
|
|
||||||
public class ResponseWithFaultTests
|
public class ResponseWithFaultTests
|
||||||
{
|
{
|
||||||
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
|
private readonly WireMockServerSettings _settings = new();
|
||||||
private const string ClientIp = "::1";
|
private const string ClientIp = "::1";
|
||||||
|
|
||||||
|
private readonly Mock<IMapping> _mappingMock;
|
||||||
|
|
||||||
|
public ResponseWithFaultTests()
|
||||||
|
{
|
||||||
|
_mappingMock = new Mock<IMapping>();
|
||||||
|
}
|
||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
[InlineData(FaultType.EMPTY_RESPONSE)]
|
[InlineData(FaultType.EMPTY_RESPONSE)]
|
||||||
[InlineData(FaultType.MALFORMED_RESPONSE_CHUNK)]
|
[InlineData(FaultType.MALFORMED_RESPONSE_CHUNK)]
|
||||||
@@ -22,7 +30,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
|
|
||||||
// Act
|
// Act
|
||||||
var responseBuilder = Response.Create().WithFault(faultType);
|
var responseBuilder = Response.Create().WithFault(faultType);
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
response.Message.FaultType.Should().Be(faultType);
|
response.Message.FaultType.Should().Be(faultType);
|
||||||
@@ -38,11 +46,10 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
|
|
||||||
// Act
|
// Act
|
||||||
var responseBuilder = Response.Create().WithFault(faultType, percentage);
|
var responseBuilder = Response.Create().WithFault(faultType, percentage);
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
response.Message.FaultType.Should().Be(faultType);
|
response.Message.FaultType.Should().Be(faultType);
|
||||||
response.Message.FaultPercentage.Should().Be(percentage);
|
response.Message.FaultPercentage.Should().Be(percentage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -9,16 +9,20 @@ using WireMock.ResponseBuilders;
|
|||||||
using WireMock.Settings;
|
using WireMock.Settings;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace WireMock.Net.Tests.ResponseBuilders
|
namespace WireMock.Net.Tests.ResponseBuilders;
|
||||||
{
|
|
||||||
public class ResponseWithHandlebarsFileTests
|
public class ResponseWithHandlebarsFileTests
|
||||||
{
|
{
|
||||||
private readonly Mock<IFileSystemHandler> _filesystemHandlerMock;
|
private readonly WireMockServerSettings _settings = new();
|
||||||
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
|
|
||||||
private const string ClientIp = "::1";
|
private const string ClientIp = "::1";
|
||||||
|
|
||||||
|
private readonly Mock<IMapping> _mappingMock;
|
||||||
|
private readonly Mock<IFileSystemHandler> _filesystemHandlerMock;
|
||||||
|
|
||||||
public ResponseWithHandlebarsFileTests()
|
public ResponseWithHandlebarsFileTests()
|
||||||
{
|
{
|
||||||
|
_mappingMock = new Mock<IMapping>();
|
||||||
|
|
||||||
_filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
|
_filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
|
||||||
_filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("abc");
|
_filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("abc");
|
||||||
|
|
||||||
@@ -39,7 +43,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
||||||
@@ -64,7 +68,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
||||||
@@ -89,11 +93,10 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
Check.ThatAsyncCode(() => responseBuilder.ProvideResponseAsync(request, _settings)).Throws<HandlebarsException>();
|
Check.ThatAsyncCode(() => responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings)).Throws<HandlebarsException>();
|
||||||
|
|
||||||
// Verify
|
// Verify
|
||||||
_filesystemHandlerMock.Verify(fs => fs.ReadResponseBodyAsString(It.IsAny<string>()), Times.Never);
|
_filesystemHandlerMock.Verify(fs => fs.ReadResponseBodyAsString(It.IsAny<string>()), Times.Never);
|
||||||
_filesystemHandlerMock.VerifyNoOtherCalls();
|
_filesystemHandlerMock.VerifyNoOtherCalls();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -9,21 +9,20 @@ using WireMock.Types;
|
|||||||
using WireMock.Util;
|
using WireMock.Util;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace WireMock.Net.Tests.ResponseBuilders
|
namespace WireMock.Net.Tests.ResponseBuilders;
|
||||||
{
|
|
||||||
public class ResponseWithHandlebarsHelpersTests
|
public class ResponseWithHandlebarsHelpersTests
|
||||||
{
|
{
|
||||||
private const string ClientIp = "::1";
|
private const string ClientIp = "::1";
|
||||||
|
|
||||||
private readonly Mock<IFileSystemHandler> _filesystemHandlerMock;
|
private readonly WireMockServerSettings _settings = new();
|
||||||
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
|
|
||||||
|
|
||||||
public ResponseWithHandlebarsHelpersTests()
|
public ResponseWithHandlebarsHelpersTests()
|
||||||
{
|
{
|
||||||
_filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
|
var filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
|
||||||
_filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("abc");
|
filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("abc");
|
||||||
|
|
||||||
_settings.FileSystemHandler = _filesystemHandlerMock.Object;
|
_settings.FileSystemHandler = filesystemHandlerMock.Object;
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@@ -39,10 +38,9 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(new Mock<IMapping>().Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// assert
|
// assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Equals("ABC");
|
Check.That(response.Message.BodyData.BodyAsString).Equals("ABC");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -9,21 +9,23 @@ using WireMock.ResponseBuilders;
|
|||||||
using WireMock.Settings;
|
using WireMock.Settings;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace WireMock.Net.Tests.ResponseBuilders
|
namespace WireMock.Net.Tests.ResponseBuilders;
|
||||||
{
|
|
||||||
public class ResponseWithHandlebarsHumanizerTests
|
public class ResponseWithHandlebarsHumanizerTests
|
||||||
{
|
{
|
||||||
private const string ClientIp = "::1";
|
private const string ClientIp = "::1";
|
||||||
|
private readonly WireMockServerSettings _settings = new();
|
||||||
|
|
||||||
private readonly Mock<IFileSystemHandler> _filesystemHandlerMock;
|
private readonly Mock<IMapping> _mappingMock;
|
||||||
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
|
|
||||||
|
|
||||||
public ResponseWithHandlebarsHumanizerTests()
|
public ResponseWithHandlebarsHumanizerTests()
|
||||||
{
|
{
|
||||||
_filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
|
_mappingMock = new Mock<IMapping>();
|
||||||
_filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("abc");
|
|
||||||
|
|
||||||
_settings.FileSystemHandler = _filesystemHandlerMock.Object;
|
var filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
|
||||||
|
filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("abc");
|
||||||
|
|
||||||
|
_settings.FileSystemHandler = filesystemHandlerMock.Object;
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@@ -40,11 +42,10 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
||||||
Check.That(j["Text"].Value<string>()).IsEqualTo("Pascal case input string is turned into sentence");
|
Check.That(j["Text"].Value<string>()).IsEqualTo("Pascal case input string is turned into sentence");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -13,21 +13,23 @@ using WireMock.Types;
|
|||||||
using WireMock.Util;
|
using WireMock.Util;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace WireMock.Net.Tests.ResponseBuilders
|
namespace WireMock.Net.Tests.ResponseBuilders;
|
||||||
{
|
|
||||||
public class ResponseWithHandlebarsJsonPathTests
|
public class ResponseWithHandlebarsJsonPathTests
|
||||||
{
|
{
|
||||||
private const string ClientIp = "::1";
|
private const string ClientIp = "::1";
|
||||||
|
private readonly WireMockServerSettings _settings = new();
|
||||||
|
|
||||||
private readonly Mock<IFileSystemHandler> _filesystemHandlerMock;
|
private readonly Mock<IMapping> _mappingMock;
|
||||||
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
|
|
||||||
|
|
||||||
public ResponseWithHandlebarsJsonPathTests()
|
public ResponseWithHandlebarsJsonPathTests()
|
||||||
{
|
{
|
||||||
_filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
|
_mappingMock = new Mock<IMapping>();
|
||||||
_filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("abc");
|
|
||||||
|
|
||||||
_settings.FileSystemHandler = _filesystemHandlerMock.Object;
|
var filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
|
||||||
|
filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("abc");
|
||||||
|
|
||||||
|
_settings.FileSystemHandler = filesystemHandlerMock.Object;
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@@ -77,7 +79,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
||||||
@@ -103,7 +105,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
||||||
@@ -157,7 +159,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Equals($"{{{Environment.NewLine} \"Name\": \"Acme Co\",{Environment.NewLine} \"Products\": [{Environment.NewLine} {{{Environment.NewLine} \"Name\": \"Anvil\",{Environment.NewLine} \"Price\": 50{Environment.NewLine} }}{Environment.NewLine} ]{Environment.NewLine}}}");
|
Check.That(response.Message.BodyData.BodyAsString).Equals($"{{{Environment.NewLine} \"Name\": \"Acme Co\",{Environment.NewLine} \"Products\": [{Environment.NewLine} {{{Environment.NewLine} \"Name\": \"Anvil\",{Environment.NewLine} \"Price\": 50{Environment.NewLine} }}{Environment.NewLine} ]{Environment.NewLine}}}");
|
||||||
@@ -210,7 +212,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Equals($"{{{Environment.NewLine} \"Name\": \"Acme Co\",{Environment.NewLine} \"Products\": [{Environment.NewLine} {{{Environment.NewLine} \"Name\": \"Anvil\",{Environment.NewLine} \"Price\": 50{Environment.NewLine} }}{Environment.NewLine} ]{Environment.NewLine}}}");
|
Check.That(response.Message.BodyData.BodyAsString).Equals($"{{{Environment.NewLine} \"Name\": \"Acme Co\",{Environment.NewLine} \"Products\": [{Environment.NewLine} {{{Environment.NewLine} \"Name\": \"Anvil\",{Environment.NewLine} \"Price\": 50{Environment.NewLine} }}{Environment.NewLine} ]{Environment.NewLine}}}");
|
||||||
@@ -263,7 +265,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Equals("%0:Anvil%%1:Elbow Grease%");
|
Check.That(response.Message.BodyData.BodyAsString).Equals("%0:Anvil%%1:Elbow Grease%");
|
||||||
@@ -316,7 +318,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Equals("%0:Anvil%%1:Elbow Grease%");
|
Check.That(response.Message.BodyData.BodyAsString).Equals("%0:Anvil%%1:Elbow Grease%");
|
||||||
@@ -345,7 +347,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
Check.ThatAsyncCode(() => responseBuilder.ProvideResponseAsync(request, _settings)).Throws<ArgumentNullException>();
|
Check.ThatAsyncCode(() => responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings)).Throws<ArgumentNullException>();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@@ -369,10 +371,9 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithBodyFromFile(@"c:\\{{JsonPath.SelectToken request.body " + jsonPath + "}}\\test.json"); // why use a \\ here ?
|
.WithBodyFromFile(@"c:\\{{JsonPath.SelectToken request.body " + jsonPath + "}}\\test.json"); // why use a \\ here ?
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsFile).Equals(@"c:\1\test.json");
|
Check.That(response.Message.BodyData.BodyAsFile).Equals(@"c:\1\test.json");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -13,19 +13,22 @@ using WireMock.Types;
|
|||||||
using WireMock.Util;
|
using WireMock.Util;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace WireMock.Net.Tests.ResponseBuilders
|
namespace WireMock.Net.Tests.ResponseBuilders;
|
||||||
{
|
|
||||||
public class ResponseWithHandlebarsLinqTests
|
public class ResponseWithHandlebarsLinqTests
|
||||||
{
|
{
|
||||||
private readonly Mock<IFileSystemHandler> _filesystemHandlerMock;
|
private readonly WireMockServerSettings _settings = new();
|
||||||
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
|
|
||||||
|
private Mock<IMapping> mappingMock;
|
||||||
|
|
||||||
public ResponseWithHandlebarsLinqTests()
|
public ResponseWithHandlebarsLinqTests()
|
||||||
{
|
{
|
||||||
_filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
|
mappingMock = new Mock<IMapping>();
|
||||||
_filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("abc");
|
|
||||||
|
|
||||||
_settings.FileSystemHandler = _filesystemHandlerMock.Object;
|
var filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
|
||||||
|
filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("abc");
|
||||||
|
|
||||||
|
_settings.FileSystemHandler = filesystemHandlerMock.Object;
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@@ -42,7 +45,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
||||||
@@ -72,7 +75,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
||||||
@@ -102,7 +105,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
||||||
@@ -132,7 +135,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
||||||
@@ -157,7 +160,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
Check.ThatAsyncCode(() => responseBuilder.ProvideResponseAsync(request, _settings)).Throws<ArgumentException>();
|
Check.ThatAsyncCode(() => responseBuilder.ProvideResponseAsync(mappingMock.Object, request, _settings)).Throws<ArgumentException>();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@@ -173,7 +176,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
Check.ThatAsyncCode(() => responseBuilder.ProvideResponseAsync(request, _settings)).Throws<ArgumentNullException>();
|
Check.ThatAsyncCode(() => responseBuilder.ProvideResponseAsync(mappingMock.Object, request, _settings)).Throws<ArgumentNullException>();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@@ -189,7 +192,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
Check.ThatAsyncCode(() => responseBuilder.ProvideResponseAsync(request, _settings)).Throws<HandlebarsException>();
|
Check.ThatAsyncCode(() => responseBuilder.ProvideResponseAsync(mappingMock.Object, request, _settings)).Throws<HandlebarsException>();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@@ -213,7 +216,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
Func<Task> a = async () => await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
Func<Task> a = async () => await responseBuilder.ProvideResponseAsync(mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
a.Should().ThrowAsync<HandlebarsException>();
|
a.Should().ThrowAsync<HandlebarsException>();
|
||||||
@@ -240,10 +243,9 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
Func<Task> a = async () => await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
Func<Task> a = async () => await responseBuilder.ProvideResponseAsync(mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
a.Should().ThrowAsync<HandlebarsException>();
|
a.Should().ThrowAsync<HandlebarsException>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -10,16 +10,19 @@ using WireMock.Settings;
|
|||||||
using WireMock.Types;
|
using WireMock.Types;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace WireMock.Net.Tests.ResponseBuilders
|
namespace WireMock.Net.Tests.ResponseBuilders;
|
||||||
{
|
|
||||||
public class ResponseWithHandlebarsRandomTests
|
public class ResponseWithHandlebarsRandomTests
|
||||||
{
|
{
|
||||||
private const string ClientIp = "::1";
|
private const string ClientIp = "::1";
|
||||||
|
private readonly WireMockServerSettings _settings = new();
|
||||||
|
|
||||||
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
|
private readonly Mock<IMapping> _mappingMock;
|
||||||
|
|
||||||
public ResponseWithHandlebarsRandomTests()
|
public ResponseWithHandlebarsRandomTests()
|
||||||
{
|
{
|
||||||
|
_mappingMock = new Mock<IMapping>();
|
||||||
|
|
||||||
var filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
|
var filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
|
||||||
filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("abc");
|
filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("abc");
|
||||||
|
|
||||||
@@ -43,7 +46,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
||||||
@@ -66,7 +69,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
||||||
@@ -91,7 +94,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer(options);
|
.WithTransformer(options);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
||||||
@@ -113,7 +116,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
||||||
@@ -137,7 +140,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
||||||
@@ -159,11 +162,10 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -10,21 +10,23 @@ using WireMock.Types;
|
|||||||
using WireMock.Util;
|
using WireMock.Util;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace WireMock.Net.Tests.ResponseBuilders
|
namespace WireMock.Net.Tests.ResponseBuilders;
|
||||||
{
|
|
||||||
public class ResponseWithHandlebarsRegexTests
|
public class ResponseWithHandlebarsRegexTests
|
||||||
{
|
{
|
||||||
private const string ClientIp = "::1";
|
private const string ClientIp = "::1";
|
||||||
|
private readonly WireMockServerSettings _settings = new();
|
||||||
|
|
||||||
private readonly Mock<IFileSystemHandler> _filesystemHandlerMock;
|
private readonly Mock<IMapping> _mappingMock;
|
||||||
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
|
|
||||||
|
|
||||||
public ResponseWithHandlebarsRegexTests()
|
public ResponseWithHandlebarsRegexTests()
|
||||||
{
|
{
|
||||||
_filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
|
_mappingMock = new Mock<IMapping>();
|
||||||
_filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("abc");
|
|
||||||
|
|
||||||
_settings.FileSystemHandler = _filesystemHandlerMock.Object;
|
var filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
|
||||||
|
filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("abc");
|
||||||
|
|
||||||
|
_settings.FileSystemHandler = filesystemHandlerMock.Object;
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@@ -40,7 +42,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// assert
|
// assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Equals("abc");
|
Check.That(response.Message.BodyData.BodyAsString).Equals("abc");
|
||||||
@@ -59,7 +61,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// assert
|
// assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Equals("");
|
Check.That(response.Message.BodyData.BodyAsString).Equals("");
|
||||||
@@ -78,7 +80,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// assert
|
// assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Equals("5000-https");
|
Check.That(response.Message.BodyData.BodyAsString).Equals("5000-https");
|
||||||
@@ -97,7 +99,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// assert
|
// assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Equals("");
|
Check.That(response.Message.BodyData.BodyAsString).Equals("");
|
||||||
@@ -116,7 +118,6 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act and Assert
|
// Act and Assert
|
||||||
Check.ThatAsyncCode(() => responseBuilder.ProvideResponseAsync(request, _settings)).Throws<ArgumentNullException>();
|
Check.ThatAsyncCode(() => responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings)).Throws<ArgumentNullException>();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -14,21 +14,23 @@ using FluentAssertions;
|
|||||||
using Wmhelp.XPath2;
|
using Wmhelp.XPath2;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
namespace WireMock.Net.Tests.ResponseBuilders
|
namespace WireMock.Net.Tests.ResponseBuilders;
|
||||||
{
|
|
||||||
public class ResponseWithHandlebarsXPathTests
|
public class ResponseWithHandlebarsXPathTests
|
||||||
{
|
{
|
||||||
private const string ClientIp = "::1";
|
private const string ClientIp = "::1";
|
||||||
|
private readonly WireMockServerSettings _settings = new();
|
||||||
|
|
||||||
private readonly Mock<IFileSystemHandler> _filesystemHandlerMock;
|
private readonly Mock<IMapping> _mappingMock;
|
||||||
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
|
|
||||||
|
|
||||||
public ResponseWithHandlebarsXPathTests()
|
public ResponseWithHandlebarsXPathTests()
|
||||||
{
|
{
|
||||||
_filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
|
_mappingMock = new Mock<IMapping>();
|
||||||
_filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("abc");
|
|
||||||
|
|
||||||
_settings.FileSystemHandler = _filesystemHandlerMock.Object;
|
var filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
|
||||||
|
filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("abc");
|
||||||
|
|
||||||
|
_settings.FileSystemHandler = filesystemHandlerMock.Object;
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@@ -53,7 +55,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
var nav = new XmlDocument { InnerXml = response.Message.BodyData.BodyAsString }.CreateNavigator();
|
var nav = new XmlDocument { InnerXml = response.Message.BodyData.BodyAsString }.CreateNavigator();
|
||||||
@@ -84,7 +86,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).IsEqualTo("abc");
|
Check.That(response.Message.BodyData.BodyAsString).IsEqualTo("abc");
|
||||||
@@ -112,7 +114,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
var nav = new XmlDocument { InnerXml = response.Message.BodyData.BodyAsString }.CreateNavigator();
|
var nav = new XmlDocument { InnerXml = response.Message.BodyData.BodyAsString }.CreateNavigator();
|
||||||
@@ -170,7 +172,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
response.Message.BodyData.BodyAsString.Should().Contain("TokenIdLijst").And.Contain("0000083256").And.Contain("0000083259");
|
response.Message.BodyData.BodyAsString.Should().Contain("TokenIdLijst").And.Contain("0000083256").And.Contain("0000083259");
|
||||||
@@ -198,7 +200,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).IsEqualIgnoringCase("True");
|
Check.That(response.Message.BodyData.BodyAsString).IsEqualIgnoringCase("True");
|
||||||
@@ -226,10 +228,9 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).IsEqualTo("a1");
|
Check.That(response.Message.BodyData.BodyAsString).IsEqualTo("a1");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using Moq;
|
using Moq;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using NFluent;
|
using NFluent;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@@ -8,21 +8,23 @@ using WireMock.ResponseBuilders;
|
|||||||
using WireMock.Settings;
|
using WireMock.Settings;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace WireMock.Net.Tests.ResponseBuilders
|
namespace WireMock.Net.Tests.ResponseBuilders;
|
||||||
{
|
|
||||||
public class ResponseWithHandlebarsXegerTests
|
public class ResponseWithHandlebarsXegerTests
|
||||||
{
|
{
|
||||||
private const string ClientIp = "::1";
|
private const string ClientIp = "::1";
|
||||||
|
private readonly WireMockServerSettings _settings = new();
|
||||||
|
|
||||||
private readonly Mock<IFileSystemHandler> _filesystemHandlerMock;
|
private readonly Mock<IMapping> _mappingMock;
|
||||||
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
|
|
||||||
|
|
||||||
public ResponseWithHandlebarsXegerTests()
|
public ResponseWithHandlebarsXegerTests()
|
||||||
{
|
{
|
||||||
_filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
|
_mappingMock = new Mock<IMapping>();
|
||||||
_filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("abc");
|
|
||||||
|
|
||||||
_settings.FileSystemHandler = _filesystemHandlerMock.Object;
|
var filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
|
||||||
|
filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("abc");
|
||||||
|
|
||||||
|
_settings.FileSystemHandler = filesystemHandlerMock.Object;
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@@ -40,7 +42,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
||||||
@@ -63,7 +65,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
JObject j = JObject.FromObject(response.Message.BodyData.BodyAsJson);
|
||||||
@@ -71,4 +73,3 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
Check.That(j["Postcode"].Value<string>()).IsNotEmpty();
|
Check.That(j["Postcode"].Value<string>()).IsNotEmpty();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Moq;
|
||||||
using NFluent;
|
using NFluent;
|
||||||
using WireMock.Models;
|
using WireMock.Models;
|
||||||
using WireMock.ResponseBuilders;
|
using WireMock.ResponseBuilders;
|
||||||
@@ -7,13 +8,20 @@ using WireMock.Settings;
|
|||||||
using WireMock.Types;
|
using WireMock.Types;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace WireMock.Net.Tests.ResponseBuilders
|
namespace WireMock.Net.Tests.ResponseBuilders;
|
||||||
{
|
|
||||||
public class ResponseWithHeadersTests
|
public class ResponseWithHeadersTests
|
||||||
{
|
{
|
||||||
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
|
private readonly WireMockServerSettings _settings = new();
|
||||||
private const string ClientIp = "::1";
|
private const string ClientIp = "::1";
|
||||||
|
|
||||||
|
private readonly Mock<IMapping> _mappingMock;
|
||||||
|
|
||||||
|
public ResponseWithHeadersTests()
|
||||||
|
{
|
||||||
|
_mappingMock = new Mock<IMapping>();
|
||||||
|
}
|
||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
[InlineData("Content-Length", "1024")]
|
[InlineData("Content-Length", "1024")]
|
||||||
[InlineData("Transfer-Encoding", "identity")]
|
[InlineData("Transfer-Encoding", "identity")]
|
||||||
@@ -25,7 +33,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
IResponseBuilder builder = Response.Create().WithHeader(headerName, headerValue);
|
IResponseBuilder builder = Response.Create().WithHeader(headerName, headerValue);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await builder.ProvideResponseAsync(requestMock, _settings).ConfigureAwait(false);
|
var response = await builder.ProvideResponseAsync(_mappingMock.Object, requestMock, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.Headers[headerName].ToString()).Equals(headerValue);
|
Check.That(response.Message.Headers[headerName].ToString()).Equals(headerValue);
|
||||||
@@ -41,7 +49,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
IResponseBuilder builder = Response.Create().WithHeader(headerName, headerValues);
|
IResponseBuilder builder = Response.Create().WithHeader(headerName, headerValues);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await builder.ProvideResponseAsync(requestMock, _settings).ConfigureAwait(false);
|
var response = await builder.ProvideResponseAsync(_mappingMock.Object, requestMock, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.Headers[headerName].ToArray()).Equals(headerValues);
|
Check.That(response.Message.Headers[headerName].ToArray()).Equals(headerValues);
|
||||||
@@ -56,7 +64,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
var response = Response.Create().WithHeaders(headers);
|
var response = Response.Create().WithHeaders(headers);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var responseMessage = await response.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var responseMessage = await response.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(responseMessage.Message.Headers["h"]).ContainsExactly("x");
|
Check.That(responseMessage.Message.Headers["h"]).ContainsExactly("x");
|
||||||
@@ -71,7 +79,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
var responseBuilder = Response.Create().WithHeaders(headers);
|
var responseBuilder = Response.Create().WithHeaders(headers);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.Headers["h"]).ContainsExactly("x");
|
Check.That(response.Message.Headers["h"]).ContainsExactly("x");
|
||||||
@@ -86,10 +94,9 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
var builder = Response.Create().WithHeaders(headers);
|
var builder = Response.Create().WithHeaders(headers);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await builder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await builder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.Headers["h"]).ContainsExactly("x");
|
Check.That(response.Message.Headers["h"]).ContainsExactly("x");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -2,6 +2,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Moq;
|
||||||
using NFluent;
|
using NFluent;
|
||||||
using WireMock.Models;
|
using WireMock.Models;
|
||||||
using WireMock.RequestBuilders;
|
using WireMock.RequestBuilders;
|
||||||
@@ -12,17 +13,21 @@ using WireMock.Types;
|
|||||||
using WireMock.Util;
|
using WireMock.Util;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace WireMock.Net.Tests.ResponseBuilders
|
namespace WireMock.Net.Tests.ResponseBuilders;
|
||||||
{
|
|
||||||
public class ResponseWithProxyTests : IDisposable
|
public class ResponseWithProxyTests : IDisposable
|
||||||
{
|
{
|
||||||
private const string ClientIp = "::1";
|
private const string ClientIp = "::1";
|
||||||
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
|
private readonly WireMockServerSettings _settings = new();
|
||||||
private readonly WireMockServer _server;
|
private readonly WireMockServer _server;
|
||||||
private readonly Guid _guid;
|
private readonly Guid _guid;
|
||||||
|
|
||||||
|
private readonly Mock<IMapping> _mappingMock;
|
||||||
|
|
||||||
public ResponseWithProxyTests()
|
public ResponseWithProxyTests()
|
||||||
{
|
{
|
||||||
|
_mappingMock = new Mock<IMapping>();
|
||||||
|
|
||||||
_guid = Guid.NewGuid();
|
_guid = Guid.NewGuid();
|
||||||
|
|
||||||
_server = WireMockServer.Start();
|
_server = WireMockServer.Start();
|
||||||
@@ -49,7 +54,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
var responseBuilder = Response.Create().WithProxy(_server.Urls[0]);
|
var responseBuilder = Response.Create().WithProxy(_server.Urls[0]);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(request.ProxyUrl).IsNotNull();
|
Check.That(request.ProxyUrl).IsNotNull();
|
||||||
@@ -77,7 +82,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
// Act
|
// Act
|
||||||
var request = new RequestMessage(new UrlDetails($"{_server.Urls[0]}/{_guid}"), "GET", ClientIp);
|
var request = new RequestMessage(new UrlDetails($"{_server.Urls[0]}/{_guid}"), "GET", ClientIp);
|
||||||
|
|
||||||
Check.ThatAsyncCode(() => responseBuilder.ProvideResponseAsync(request, _settings)).Throws<HttpRequestException>();
|
Check.ThatAsyncCode(() => responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings)).Throws<HttpRequestException>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
@@ -86,4 +91,3 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
_server?.Dispose();
|
_server?.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -16,21 +16,23 @@ using Microsoft.Owin;
|
|||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
namespace WireMock.Net.Tests.ResponseBuilders
|
namespace WireMock.Net.Tests.ResponseBuilders;
|
||||||
{
|
|
||||||
public class ResponseWithScribanTests
|
public class ResponseWithScribanTests
|
||||||
{
|
{
|
||||||
private const string ClientIp = "::1";
|
private const string ClientIp = "::1";
|
||||||
|
private readonly WireMockServerSettings _settings = new();
|
||||||
|
|
||||||
private readonly Mock<IFileSystemHandler> _filesystemHandlerMock;
|
private readonly Mock<IMapping> _mappingMock;
|
||||||
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
|
|
||||||
|
|
||||||
public ResponseWithScribanTests()
|
public ResponseWithScribanTests()
|
||||||
{
|
{
|
||||||
_filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
|
_mappingMock = new Mock<IMapping>();
|
||||||
_filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("abc");
|
|
||||||
|
|
||||||
_settings.FileSystemHandler = _filesystemHandlerMock.Object;
|
var filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
|
||||||
|
filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("abc");
|
||||||
|
|
||||||
|
_settings.FileSystemHandler = filesystemHandlerMock.Object;
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@@ -43,7 +45,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
var responseBuilder = Response.Create().WithTransformer(TransformerType.ScribanDotLiquid);
|
var responseBuilder = Response.Create().WithTransformer(TransformerType.ScribanDotLiquid);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
response.Message.BodyData.Should().BeNull();
|
response.Message.BodyData.Should().BeNull();
|
||||||
@@ -65,10 +67,9 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer(TransformerType.Scriban);
|
.WithTransformer(TransformerType.Scriban);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Equals("test http://localhost/foo /foo POSt");
|
Check.That(response.Message.BodyData.BodyAsString).Equals("test http://localhost/foo /foo POSt");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -7,11 +7,11 @@ using WireMock.ResponseBuilders;
|
|||||||
using WireMock.Settings;
|
using WireMock.Settings;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace WireMock.Net.Tests.ResponseBuilders
|
namespace WireMock.Net.Tests.ResponseBuilders;
|
||||||
{
|
|
||||||
public class ResponseWithStatusCodeTests
|
public class ResponseWithStatusCodeTests
|
||||||
{
|
{
|
||||||
private readonly Mock<WireMockServerSettings> _settingsMock = new Mock<WireMockServerSettings>();
|
private readonly Mock<WireMockServerSettings> _settingsMock = new();
|
||||||
private const string ClientIp = "::1";
|
private const string ClientIp = "::1";
|
||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
@@ -40,10 +40,9 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settingsMock.Object).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(new Mock<IMapping>().Object, request, _settingsMock.Object).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
response.Message.StatusCode.Should().Be(expectedStatusCode);
|
response.Message.StatusCode.Should().Be(expectedStatusCode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -20,16 +20,19 @@ using Microsoft.Owin;
|
|||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
namespace WireMock.Net.Tests.ResponseBuilders
|
namespace WireMock.Net.Tests.ResponseBuilders;
|
||||||
{
|
|
||||||
public class ResponseWithTransformerTests
|
public class ResponseWithTransformerTests
|
||||||
{
|
{
|
||||||
private readonly WireMockServerSettings _settings = new WireMockServerSettings();
|
private readonly WireMockServerSettings _settings = new();
|
||||||
|
|
||||||
private const string ClientIp = "::1";
|
private const string ClientIp = "::1";
|
||||||
|
|
||||||
|
private readonly Mock<IMapping> _mappingMock;
|
||||||
|
|
||||||
public ResponseWithTransformerTests()
|
public ResponseWithTransformerTests()
|
||||||
{
|
{
|
||||||
|
_mappingMock = new Mock<IMapping>();
|
||||||
|
|
||||||
var filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
|
var filesystemHandlerMock = new Mock<IFileSystemHandler>(MockBehavior.Strict);
|
||||||
filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("abc");
|
filesystemHandlerMock.Setup(fs => fs.ReadResponseBodyAsString(It.IsAny<string>())).Returns("abc");
|
||||||
|
|
||||||
@@ -49,7 +52,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
var responseBuilder = Response.Create().WithTransformer(transformerType);
|
var responseBuilder = Response.Create().WithTransformer(transformerType);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
response.Message.BodyData.Should().BeNull();
|
response.Message.BodyData.Should().BeNull();
|
||||||
@@ -74,7 +77,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer(transformerType);
|
.WithTransformer(transformerType);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Equals("test http://localhost/foo /foo POSt");
|
Check.That(response.Message.BodyData.BodyAsString).Equals("test http://localhost/foo /foo POSt");
|
||||||
@@ -98,7 +101,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer(transformerType);
|
.WithTransformer(transformerType);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Equals("url=http://localhost/a/b absoluteurl=http://localhost/wiremock/a/b path=/a/b absolutepath=/wiremock/a/b");
|
Check.That(response.Message.BodyData.BodyAsString).Equals("url=http://localhost/a/b absoluteurl=http://localhost/wiremock/a/b path=/a/b absolutepath=/wiremock/a/b");
|
||||||
@@ -116,7 +119,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Equals("a wiremock");
|
Check.That(response.Message.BodyData.BodyAsString).Equals("a wiremock");
|
||||||
@@ -136,7 +139,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer(transformerType);
|
.WithTransformer(transformerType);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Equals("a wiremock");
|
Check.That(response.Message.BodyData.BodyAsString).Equals("a wiremock");
|
||||||
@@ -158,7 +161,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Equals("test keya=1,2 idx=1 idx=2 keyb=5");
|
Check.That(response.Message.BodyData.BodyAsString).Equals("test keya=1,2 idx=1 idx=2 keyb=5");
|
||||||
@@ -182,7 +185,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer(transformerType);
|
.WithTransformer(transformerType);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Equals("test keya=1 idx=1 idx=2 keyb=5");
|
Check.That(response.Message.BodyData.BodyAsString).Equals("test keya=1 idx=1 idx=2 keyb=5");
|
||||||
@@ -205,7 +208,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Equals("test");
|
Check.That(response.Message.BodyData.BodyAsString).Equals("test");
|
||||||
@@ -231,7 +234,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer(transformerType);
|
.WithTransformer(transformerType);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Equals("test");
|
Check.That(response.Message.BodyData.BodyAsString).Equals("test");
|
||||||
@@ -257,7 +260,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer(transformerType);
|
.WithTransformer(transformerType);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Equals("test");
|
Check.That(response.Message.BodyData.BodyAsString).Equals("test");
|
||||||
@@ -278,12 +281,37 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
var responseBuilder = Response.Create().WithHeader("x", "{{request.headers.Content-Type}}").WithBody("test").WithTransformer();
|
var responseBuilder = Response.Create().WithHeader("x", "{{request.headers.Content-Type}}").WithBody("test").WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Equals("test");
|
Check.That(response.Message.BodyData!.BodyAsString).Equals("test");
|
||||||
Check.That(response.Message.Headers).ContainsKey("x");
|
Check.That(response.Message.Headers).ContainsKey("x");
|
||||||
Check.That(response.Message.Headers["x"]).ContainsExactly("text/plain");
|
Check.That(response.Message.Headers!["x"]).ContainsExactly("text/plain");
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task Response_ProvideResponse_Handlebars_Header_TransformMapping()
|
||||||
|
{
|
||||||
|
// Assign
|
||||||
|
var guid = Guid.NewGuid();
|
||||||
|
_mappingMock.SetupGet(m => m.Guid).Returns(guid);
|
||||||
|
|
||||||
|
var body = new BodyData
|
||||||
|
{
|
||||||
|
BodyAsString = "abc",
|
||||||
|
DetectedBodyType = BodyType.String
|
||||||
|
};
|
||||||
|
var request = new RequestMessage(new UrlDetails("http://localhost/foo"), "POST", ClientIp, body);
|
||||||
|
|
||||||
|
var responseBuilder = Response.Create().WithHeader("x", "{{mapping.Guid}}").WithTransformer();
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
response.Message.Headers.Should().NotBeNull();
|
||||||
|
Check.That(response.Message.Headers).ContainsKey("x");
|
||||||
|
Check.That(response.Message.Headers!["x"]).ContainsExactly(guid.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@@ -300,7 +328,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
var responseBuilder = Response.Create().WithHeader("x", "{{request.headers.Content-Type}}", "{{request.url}}").WithBody("test").WithTransformer();
|
var responseBuilder = Response.Create().WithHeader("x", "{{request.headers.Content-Type}}", "{{request.url}}").WithBody("test").WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Equals("test");
|
Check.That(response.Message.BodyData.BodyAsString).Equals("test");
|
||||||
@@ -325,7 +353,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
var responseBuilder = Response.Create().WithHeader("x", "{{request.Headers[\"Content-Type\"]}}", "{{request.Url}}").WithBody("test").WithTransformer(transformerType);
|
var responseBuilder = Response.Create().WithHeader("x", "{{request.Headers[\"Content-Type\"]}}", "{{request.Url}}").WithBody("test").WithTransformer(transformerType);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Equals("test");
|
Check.That(response.Message.BodyData.BodyAsString).Equals("test");
|
||||||
@@ -353,7 +381,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer(transformerType);
|
.WithTransformer(transformerType);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsString).Equals("test http://localhost:1234 1234 http localhost");
|
Check.That(response.Message.BodyData.BodyAsString).Equals("test http://localhost:1234 1234 http localhost");
|
||||||
@@ -380,7 +408,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer(transformerType);
|
.WithTransformer(transformerType);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(JsonConvert.SerializeObject(response.Message.BodyData.BodyAsJson)).Equals("{\"x\":\"test /foo_object\"}");
|
Check.That(JsonConvert.SerializeObject(response.Message.BodyData.BodyAsJson)).Equals("{\"x\":\"test /foo_object\"}");
|
||||||
@@ -400,7 +428,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer(transformerType);
|
.WithTransformer(transformerType);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
JsonConvert.SerializeObject(response.Message.BodyData.BodyAsJson).Should().Be("[{\"x\":\"test\"}]");
|
JsonConvert.SerializeObject(response.Message.BodyData.BodyAsJson).Should().Be("[{\"x\":\"test\"}]");
|
||||||
@@ -421,7 +449,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer(transformerType);
|
.WithTransformer(transformerType);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
JsonConvert.SerializeObject(response.Message.BodyData.BodyAsJson).Should().Be("[{\"x\":\"test\"}]");
|
JsonConvert.SerializeObject(response.Message.BodyData.BodyAsJson).Should().Be("[{\"x\":\"test\"}]");
|
||||||
@@ -449,7 +477,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
// .WithTransformer(transformerType, false, ReplaceNodeOptions.Default);
|
// .WithTransformer(transformerType, false, ReplaceNodeOptions.Default);
|
||||||
|
|
||||||
// // Act
|
// // Act
|
||||||
// var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
// var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// // Assert
|
// // Assert
|
||||||
// JsonConvert.SerializeObject(response.Message.BodyData.BodyAsJson).Should().Be($"{{\"text\":\"{text}\"}}");
|
// JsonConvert.SerializeObject(response.Message.BodyData.BodyAsJson).Should().Be($"{{\"text\":\"{text}\"}}");
|
||||||
@@ -486,7 +514,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer(transformerType, false, ReplaceNodeOptions.None);
|
.WithTransformer(transformerType, false, ReplaceNodeOptions.None);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
JsonConvert.SerializeObject(response.Message.BodyData.BodyAsJson).Should().Be($"{{\"text\":{expected}}}");
|
JsonConvert.SerializeObject(response.Message.BodyData.BodyAsJson).Should().Be($"{{\"text\":{expected}}}");
|
||||||
@@ -523,7 +551,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer(transformerType);
|
.WithTransformer(transformerType);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
JsonConvert.SerializeObject(response.Message.BodyData.BodyAsJson).Should().Be($"{{\"text\":{expected}}}");
|
JsonConvert.SerializeObject(response.Message.BodyData.BodyAsJson).Should().Be($"{{\"text\":{expected}}}");
|
||||||
@@ -550,7 +578,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer(transformerType);
|
.WithTransformer(transformerType);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(JsonConvert.SerializeObject(response.Message.BodyData.BodyAsJson)).Equals("[\"first\",\"/foo_array\",\"test 1\",\"test 2\",\"last\"]");
|
Check.That(JsonConvert.SerializeObject(response.Message.BodyData.BodyAsJson)).Equals("[\"first\",\"/foo_array\",\"test 1\",\"test 2\",\"last\"]");
|
||||||
@@ -567,7 +595,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithBodyFromFile(@"c:\\{{request.query.MyUniqueNumber}}\\test.xml");
|
.WithBodyFromFile(@"c:\\{{request.query.MyUniqueNumber}}\\test.xml");
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsFile).Equals(@"c:\1\test.xml");
|
Check.That(response.Message.BodyData.BodyAsFile).Equals(@"c:\1\test.xml");
|
||||||
@@ -586,7 +614,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithBodyFromFile(@"c:\\{{request.query.MyUniqueNumber}}\\test.xml");
|
.WithBodyFromFile(@"c:\\{{request.query.MyUniqueNumber}}\\test.xml");
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsFile).Equals(@"c:\1\test.xml");
|
Check.That(response.Message.BodyData.BodyAsFile).Equals(@"c:\1\test.xml");
|
||||||
@@ -611,7 +639,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithBodyFromFile(@"c:\\{{request.query.MyUniqueNumber}}\\test.xml");
|
.WithBodyFromFile(@"c:\\{{request.query.MyUniqueNumber}}\\test.xml");
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(response.Message.BodyData.BodyAsFile).Equals(@"c:\1\test.xml");
|
Check.That(response.Message.BodyData.BodyAsFile).Equals(@"c:\1\test.xml");
|
||||||
@@ -640,7 +668,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer(transformerType);
|
.WithTransformer(transformerType);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(JsonConvert.SerializeObject(response.Message.BodyData.BodyAsJson)).Equals("\"test\"");
|
Check.That(JsonConvert.SerializeObject(response.Message.BodyData.BodyAsJson)).Equals("\"test\"");
|
||||||
@@ -664,7 +692,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer();
|
.WithTransformer();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(JsonConvert.SerializeObject(response.Message.BodyData.BodyAsJson)).Equals("{\"name\":\"WireMock\"}");
|
Check.That(JsonConvert.SerializeObject(response.Message.BodyData.BodyAsJson)).Equals("{\"name\":\"WireMock\"}");
|
||||||
@@ -690,7 +718,7 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer(transformerType);
|
.WithTransformer(transformerType);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Check.That(JsonConvert.SerializeObject(response.Message.BodyData.BodyAsJson)).Equals("{\"name\":\"WireMock\"}");
|
Check.That(JsonConvert.SerializeObject(response.Message.BodyData.BodyAsJson)).Equals("{\"name\":\"WireMock\"}");
|
||||||
@@ -718,11 +746,10 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
.WithTransformer(transformerType);
|
.WithTransformer(transformerType);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var response = await responseBuilder.ProvideResponseAsync(request, _settings).ConfigureAwait(false);
|
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, request, _settings).ConfigureAwait(false);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
response.Message.BodyData.BodyAsString.Should().Be(text);
|
response.Message.BodyData.BodyAsString.Should().Be(text);
|
||||||
response.Message.BodyData.Encoding.Should().Be(enc);
|
response.Message.BodyData.Encoding.Should().Be(enc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user