diff --git a/src/WireMock.Net/WireMock.Net.csproj b/src/WireMock.Net/WireMock.Net.csproj index b785f8dae..8dd9e4a95 100644 --- a/src/WireMock.Net/WireMock.Net.csproj +++ b/src/WireMock.Net/WireMock.Net.csproj @@ -121,13 +121,13 @@ - - - - - - - + + + + + + + diff --git a/test/WireMock.Net.Tests/ResponseBuilders/ResponseWithHandlebarsXPathTests.cs b/test/WireMock.Net.Tests/ResponseBuilders/ResponseWithHandlebarsXPathTests.cs index 894d61b0e..bc2a1f912 100644 --- a/test/WireMock.Net.Tests/ResponseBuilders/ResponseWithHandlebarsXPathTests.cs +++ b/test/WireMock.Net.Tests/ResponseBuilders/ResponseWithHandlebarsXPathTests.cs @@ -9,6 +9,7 @@ using Xunit; using Moq; using WireMock.Handlers; +using FluentAssertions; #if !NETSTANDARD1_3 using Wmhelp.XPath2; #endif @@ -119,6 +120,62 @@ public async Task Response_ProvideResponse_Handlebars_XPath_SelectNodes_Request_ Check.That(nodes.Count + 1).IsEqualTo(3); } + [Fact] + public async Task Response_ProvideResponse_Handlebars_XPath_SelectSingleNode_Request_SoapXML_BodyAsString() + { + // Assign + string soap = @" + + + + 10 + MsgId10 + Betalen + CRM + COU + RdplDbTknLystByOvkLyst + 8 + N + ? + + + + + CRM + + CRMi + BerId + RdplDbTknLystByOvkLyst + + N + + + 0000083256 + 0000083259 + + + +"; + var body = new BodyData + { + BodyAsString = soap, + DetectedBodyType = BodyType.String + }; + + var request = new RequestMessage(new UrlDetails("http://localhost:1234"), "POST", ClientIp, body); + + var responseBuilder = Response.Create() + .WithHeader("Content-Type", "application/xml") + .WithBody("{{XPath.SelectSingleNode request.body \"//*[local-name()='TokenIdLijst']\"}}") + .WithTransformer(); + + // Act + var response = await responseBuilder.ProvideResponseAsync(request, _settings); + + // Assert + response.Message.BodyData.BodyAsString.Should().Contain("TokenIdLijst").And.Contain("0000083256").And.Contain("0000083259"); + } + [Fact] public async Task Response_ProvideResponse_Handlebars_XPath_Evaluate_Request_BodyAsString() {