public async Task Can_Pass_Request_Details_For_Filtering()
{
// given
var channel = new MockTelemetryChannel();
var request = Mock.Of<IOwinRequest>(r =>
r.Method == "GET" &&
r.Path == new PathString("/path") &&
r.Uri == new Uri("http://google.com/path")
);
var response = Mock.Of<IOwinResponse>(r => r.StatusCode == 200);
var context = new MockOwinContextBuilder()
.WithRequest(request)
.WithResponse(response)
.Build();
var configuration = new TelemetryConfigurationBuilder()
.WithChannel(channel)
.Build();
IOwinRequest filteredRequest = null;
IOwinResponse filteredResponse = null;
var sut = new OperationIdContextMiddleware(
new HttpRequestTrackingMiddleware(
new NoopMiddleware(), configuration, (req, resp) =>
{
filteredRequest = req;
filteredResponse = resp;
return false;
}),
new OperationIdContextMiddlewareConfiguration());
// when
await sut.Invoke(context);
// then
filteredRequest.ShouldBeEquivalentTo(request);
filteredResponse.ShouldBeEquivalentTo(response);
}