Add support to use 'mapping' object in in reponse templating (#798)

* mapping

* .

* .
This commit is contained in:
Stef Heyenrath
2022-09-03 08:52:05 +02:00
committed by GitHub
parent 862c04e722
commit 74480c8ba9
37 changed files with 2114 additions and 2055 deletions

View File

@@ -7,43 +7,42 @@ using WireMock.ResponseBuilders;
using WireMock.Settings;
using Xunit;
namespace WireMock.Net.Tests.ResponseBuilders
namespace WireMock.Net.Tests.ResponseBuilders;
public class ResponseWithStatusCodeTests
{
public class ResponseWithStatusCodeTests
private readonly Mock<WireMockServerSettings> _settingsMock = new();
private const string ClientIp = "::1";
[Theory]
[InlineData("201", "201")]
[InlineData(201, 201)]
[InlineData(HttpStatusCode.Created, 201)]
public async Task Response_ProvideResponse_WithStatusCode(object statusCode, object expectedStatusCode)
{
private readonly Mock<WireMockServerSettings> _settingsMock = new Mock<WireMockServerSettings>();
private const string ClientIp = "::1";
// Arrange
var request = new RequestMessage(new UrlDetails("http://localhost/fault"), "GET", ClientIp);
[Theory]
[InlineData("201", "201")]
[InlineData(201, 201)]
[InlineData(HttpStatusCode.Created, 201)]
public async Task Response_ProvideResponse_WithStatusCode(object statusCode, object expectedStatusCode)
// Act
var responseBuilder = Response.Create();
switch (statusCode)
{
// Arrange
var request = new RequestMessage(new UrlDetails("http://localhost/fault"), "GET", ClientIp);
case string statusCodeAsString:
responseBuilder = responseBuilder.WithStatusCode(statusCodeAsString);
break;
// Act
var responseBuilder = Response.Create();
switch (statusCode)
{
case string statusCodeAsString:
responseBuilder = responseBuilder.WithStatusCode(statusCodeAsString);
break;
case int statusCodeAInteger:
responseBuilder = responseBuilder.WithStatusCode(statusCodeAInteger);
break;
case int statusCodeAInteger:
responseBuilder = responseBuilder.WithStatusCode(statusCodeAInteger);
break;
case HttpStatusCode statusCodeAsEnum:
responseBuilder = responseBuilder.WithStatusCode(statusCodeAsEnum);
break;
}
var response = await responseBuilder.ProvideResponseAsync(request, _settingsMock.Object).ConfigureAwait(false);
// Assert
response.Message.StatusCode.Should().Be(expectedStatusCode);
case HttpStatusCode statusCodeAsEnum:
responseBuilder = responseBuilder.WithStatusCode(statusCodeAsEnum);
break;
}
var response = await responseBuilder.ProvideResponseAsync(new Mock<IMapping>().Object, request, _settingsMock.Object).ConfigureAwait(false);
// Assert
response.Message.StatusCode.Should().Be(expectedStatusCode);
}
}
}