mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-04-25 01:38:27 +02:00
Dynamic response handlebars templating (2) (#273)
* Dynamic response files using Handlebars templating (#270) * * Response templating / transformation using Handlebars and extensions * Add unit test for JsonPath and BodyAsFile mapping (#272) * fix merge issue
This commit is contained in:
@@ -231,5 +231,32 @@ namespace WireMock.Net.Tests.ResponseBuilders
|
|||||||
// Assert
|
// Assert
|
||||||
Check.That(responseMessage.BodyData.BodyAsFile).Equals(@"c:\1\test.xml");
|
Check.That(responseMessage.BodyData.BodyAsFile).Equals(@"c:\1\test.xml");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task Response_ProvideResponse_Handlebars_WithBodyAsFile_JsonPath()
|
||||||
|
{
|
||||||
|
// Assign
|
||||||
|
string jsonString = "{ \"MyUniqueNumber\": \"1\" }";
|
||||||
|
var bodyData = new BodyData
|
||||||
|
{
|
||||||
|
BodyAsString = jsonString,
|
||||||
|
BodyAsJson = JsonConvert.DeserializeObject(jsonString),
|
||||||
|
DetectedBodyType = BodyType.Json,
|
||||||
|
DetectedBodyTypeFromContentType = BodyType.Json,
|
||||||
|
Encoding = Encoding.UTF8
|
||||||
|
};
|
||||||
|
var request = new RequestMessage(new UrlDetails("http://localhost/foo"), "POST", ClientIp, bodyData);
|
||||||
|
|
||||||
|
string jsonPath = "\"$.MyUniqueNumber\"";
|
||||||
|
var response = Response.Create()
|
||||||
|
.WithTransformer()
|
||||||
|
.WithBodyFromFile(@"c:\\{{JsonPath.SelectToken request.body " + jsonPath + "}}\\test.json"); // why use a \\ here ?
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var responseMessage = await response.ProvideResponseAsync(request);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Check.That(responseMessage.BodyData.BodyAsFile).Equals(@"c:\1\test.json");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user