Exemple #1
0
        public async Task AddsCorrelationIdToRequestWhenAvailable()
        {
            // Arrange
            var correlatingHttpClientHandler = new CorrelatingHttpClientHandler();

            correlatingHttpClientHandler.InnerHandler = new HttpClientHandler();

            var inspectingHandler = new RequestInspectingHandler();

            inspectingHandler.InnerHandler = correlatingHttpClientHandler;

            var correlationId = Guid.NewGuid();

            CallContext.LogicalSetData(WebApiCorrelationHandler.CallContextKey, correlationId);

            // Act
            using (var client = new HttpClient(inspectingHandler))
            {
                await client.GetAsync("https://www.nuget.org");
            }

            // Assert
            var request = inspectingHandler.Requests.FirstOrDefault();

            Assert.NotNull(request);
            Assert.True(request.Headers.Contains(WebApiCorrelationHandler.CorrelationIdHttpHeaderName));
            Assert.Equal(correlationId.ToString(), request.Headers.GetValues(WebApiCorrelationHandler.CorrelationIdHttpHeaderName).FirstOrDefault());
        }
Exemple #2
0
        public async Task DoesNotAddCorrelationIdToRequestWhenNotAvailable()
        {
            // Arrange
            var correlatingHttpClientHandler = new CorrelatingHttpClientHandler();
            var testHandler = new TestHandler();

            correlatingHttpClientHandler.InnerHandler = testHandler;

            // Act
            using (var client = new HttpClient(correlatingHttpClientHandler))
            {
                await client.GetAsync("https://example");
            }

            // Assert
            var request = testHandler.Requests.FirstOrDefault();

            Assert.NotNull(request);
            Assert.False(request.Headers.Contains(WebApiCorrelationHandler.CorrelationIdHttpHeaderName));
        }