mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-04-24 09:18:27 +02:00
Fix ResponseMessageTransformer (BodyAsJson)
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using HandlebarsDotNet;
|
using HandlebarsDotNet;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using WireMock.Util;
|
using WireMock.Util;
|
||||||
|
|
||||||
namespace WireMock.Transformers
|
namespace WireMock.Transformers
|
||||||
@@ -9,13 +10,27 @@ namespace WireMock.Transformers
|
|||||||
{
|
{
|
||||||
public static ResponseMessage Transform(RequestMessage requestMessage, ResponseMessage original)
|
public static ResponseMessage Transform(RequestMessage requestMessage, ResponseMessage original)
|
||||||
{
|
{
|
||||||
var responseMessage = new ResponseMessage { StatusCode = original.StatusCode, BodyOriginal = original.Body };
|
bool bodyIsJson = original.BodyAsJson != null;
|
||||||
|
var responseMessage = new ResponseMessage { StatusCode = original.StatusCode };
|
||||||
|
|
||||||
|
if (!bodyIsJson)
|
||||||
|
{
|
||||||
|
responseMessage.BodyOriginal = original.Body;
|
||||||
|
}
|
||||||
|
|
||||||
var template = new { request = requestMessage };
|
var template = new { request = requestMessage };
|
||||||
|
|
||||||
// Body
|
// Body
|
||||||
var templateBody = Handlebars.Compile(original.Body);
|
var templateBody = Handlebars.Compile(bodyIsJson ? JsonConvert.SerializeObject(original.BodyAsJson) : original.Body);
|
||||||
responseMessage.Body = templateBody(template);
|
|
||||||
|
if (!bodyIsJson)
|
||||||
|
{
|
||||||
|
responseMessage.Body = templateBody(template);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
responseMessage.BodyAsJson = JsonConvert.DeserializeObject(templateBody(template));
|
||||||
|
}
|
||||||
|
|
||||||
// Headers
|
// Headers
|
||||||
var newHeaders = new Dictionary<string, WireMockList<string>>();
|
var newHeaders = new Dictionary<string, WireMockList<string>>();
|
||||||
|
|||||||
Reference in New Issue
Block a user