mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-04-25 09:48:28 +02:00
Add extra test for WithCallback
This commit is contained in:
@@ -643,6 +643,7 @@ namespace WireMock.Net.ConsoleApplication
|
||||
.WithStatusCode(200)
|
||||
.WithHeader("Content-Type", "application/json")
|
||||
.WithBodyAsJson(new { Id = "5bdf076c-5654-4b3e-842c-7caf1fabf8c9" }));
|
||||
|
||||
server
|
||||
.Given(Request.Create().WithPath("/random200or505").UsingGet())
|
||||
.RespondWith(Response.Create().WithCallback(request =>
|
||||
@@ -650,7 +651,11 @@ namespace WireMock.Net.ConsoleApplication
|
||||
int code = new Random().Next(1, 2) == 1 ? 505 : 200;
|
||||
return new ResponseMessage
|
||||
{
|
||||
BodyData = new BodyData { BodyAsString = "random200or505:" + code, DetectedBodyType = Types.BodyType.String },
|
||||
BodyData = new BodyData
|
||||
{
|
||||
BodyAsString = "random200or505:" + code + ", HeadersFromRequest = " + string.Join(",", request.Headers),
|
||||
DetectedBodyType = Types.BodyType.String,
|
||||
},
|
||||
StatusCode = code
|
||||
};
|
||||
}));
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
@@ -279,4 +280,38 @@ public class ResponseWithCallbackTests
|
||||
response.Message.BodyData.BodyAsString.Should().Be("/fooBar");
|
||||
response.Message.StatusCode.Should().Be(302);
|
||||
}
|
||||
|
||||
// https://github.com/WireMock-Net/WireMock.Net/issues/898
|
||||
[Fact]
|
||||
public async Task Response_WithCallback_WithRequestHeaders_Should_BeAccessibleInCallback()
|
||||
{
|
||||
// Assign
|
||||
var headerKey = "headerKey";
|
||||
var headerValues = new[] { "abc" };
|
||||
var requestHeaders = new Dictionary<string, string[]>
|
||||
{
|
||||
{ headerKey, headerValues }
|
||||
};
|
||||
var requestMessage = new RequestMessage(new UrlDetails("http://localhost/foo"), "GET", "::1", null, requestHeaders);
|
||||
var responseBuilder = Response.Create()
|
||||
.WithCallback(request =>
|
||||
{
|
||||
var headersFromRequest = request!.Headers![headerKey].ToList();
|
||||
headersFromRequest.Add("extra");
|
||||
|
||||
return new ResponseMessage
|
||||
{
|
||||
Headers = new Dictionary<string, WireMockList<string>>
|
||||
{
|
||||
{ headerKey, new WireMockList<string>(headersFromRequest) }
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
// Act
|
||||
var response = await responseBuilder.ProvideResponseAsync(_mappingMock.Object, requestMessage, _settings).ConfigureAwait(false);
|
||||
|
||||
// Assert
|
||||
response.Message.Headers![headerKey].Should().Contain("extra");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user