mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-04-22 16:28:27 +02:00
Add extra test for WithCallback
This commit is contained in:
@@ -643,6 +643,7 @@ namespace WireMock.Net.ConsoleApplication
|
|||||||
.WithStatusCode(200)
|
.WithStatusCode(200)
|
||||||
.WithHeader("Content-Type", "application/json")
|
.WithHeader("Content-Type", "application/json")
|
||||||
.WithBodyAsJson(new { Id = "5bdf076c-5654-4b3e-842c-7caf1fabf8c9" }));
|
.WithBodyAsJson(new { Id = "5bdf076c-5654-4b3e-842c-7caf1fabf8c9" }));
|
||||||
|
|
||||||
server
|
server
|
||||||
.Given(Request.Create().WithPath("/random200or505").UsingGet())
|
.Given(Request.Create().WithPath("/random200or505").UsingGet())
|
||||||
.RespondWith(Response.Create().WithCallback(request =>
|
.RespondWith(Response.Create().WithCallback(request =>
|
||||||
@@ -650,7 +651,11 @@ namespace WireMock.Net.ConsoleApplication
|
|||||||
int code = new Random().Next(1, 2) == 1 ? 505 : 200;
|
int code = new Random().Next(1, 2) == 1 ? 505 : 200;
|
||||||
return new ResponseMessage
|
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
|
StatusCode = code
|
||||||
};
|
};
|
||||||
}));
|
}));
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@@ -279,4 +280,38 @@ public class ResponseWithCallbackTests
|
|||||||
response.Message.BodyData.BodyAsString.Should().Be("/fooBar");
|
response.Message.BodyData.BodyAsString.Should().Be("/fooBar");
|
||||||
response.Message.StatusCode.Should().Be(302);
|
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