diff --git a/test/WireMock.Net.Tests/ResponseBuilders/ResponseWithHandlebarsTests.cs b/test/WireMock.Net.Tests/ResponseBuilders/ResponseWithHandlebarsTests.cs index 31011f5b..fad6d28d 100644 --- a/test/WireMock.Net.Tests/ResponseBuilders/ResponseWithHandlebarsTests.cs +++ b/test/WireMock.Net.Tests/ResponseBuilders/ResponseWithHandlebarsTests.cs @@ -231,5 +231,32 @@ namespace WireMock.Net.Tests.ResponseBuilders // Assert 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"); + } } } \ No newline at end of file