private async Task <IFhirRequestContext> SetupAsync(HttpContext httpContext) { var fhirRequestContextAccessor = Substitute.For <IFhirRequestContextAccessor>(); var fhirContextMiddlware = new FhirRequestContextMiddleware(next: (innerHttpContext) => Task.CompletedTask); string Provider() => Guid.NewGuid().ToString(); await fhirContextMiddlware.Invoke(httpContext, fhirRequestContextAccessor, Provider); Assert.NotNull(fhirRequestContextAccessor.FhirRequestContext); return(fhirRequestContextAccessor.FhirRequestContext); }
public async Task GivenAnHttpRequest_WhenExecutingFhirRequestContextMiddleware_ThenRequestIdHeaderShouldBeSet() { const string expectedRequestId = "123"; HttpContext httpContext = CreateHttpContext(); var fhirRequestContextAccessor = Substitute.For <IFhirRequestContextAccessor>(); var fhirContextMiddlware = new FhirRequestContextMiddleware(next: (innerHttpContext) => Task.CompletedTask); string Provider() => expectedRequestId; await fhirContextMiddlware.Invoke(httpContext, fhirRequestContextAccessor, Provider); Assert.True(httpContext.Response.Headers.TryGetValue("X-Request-Id", out StringValues value)); Assert.Equal(new StringValues(expectedRequestId), value); }