public async Task Request_FieldsCanBeSet_Set() { string root; using (Utilities.CreateHttpServerReturnRoot("/basepath", out root, httpContext => { try { var requestInfo = httpContext.Features.Get <IHttpRequestFeature>(); // Request Keys requestInfo.Method = "TEST"; Assert.Equal("TEST", requestInfo.Method); requestInfo.Body = new MemoryStream(); Assert.IsType <MemoryStream>(requestInfo.Body); var customHeaders = new HeaderCollection(); requestInfo.Headers = customHeaders; Assert.Same(customHeaders, requestInfo.Headers); requestInfo.Scheme = "abcd"; Assert.Equal("abcd", requestInfo.Scheme); requestInfo.PathBase = "/customized/Base"; Assert.Equal("/customized/Base", requestInfo.PathBase); requestInfo.Path = "/customized/Path"; Assert.Equal("/customized/Path", requestInfo.Path); requestInfo.QueryString = "?customizedQuery"; Assert.Equal("?customizedQuery", requestInfo.QueryString); requestInfo.RawTarget = "/customized/raw?Target"; Assert.Equal("/customized/raw?Target", requestInfo.RawTarget); requestInfo.Protocol = "Custom/2.0"; Assert.Equal("Custom/2.0", requestInfo.Protocol); var connectionInfo = httpContext.Features.Get <IHttpConnectionFeature>(); connectionInfo.RemoteIpAddress = IPAddress.Broadcast; Assert.Equal(IPAddress.Broadcast, connectionInfo.RemoteIpAddress); connectionInfo.RemotePort = 12345; Assert.Equal(12345, connectionInfo.RemotePort); connectionInfo.LocalIpAddress = IPAddress.Any; Assert.Equal(IPAddress.Any, connectionInfo.LocalIpAddress); connectionInfo.LocalPort = 54321; Assert.Equal(54321, connectionInfo.LocalPort); connectionInfo.ConnectionId = "CustomId"; Assert.Equal("CustomId", connectionInfo.ConnectionId); // Trace identifier var requestIdentifierFeature = httpContext.Features.Get <IHttpRequestIdentifierFeature>(); Assert.NotNull(requestIdentifierFeature); requestIdentifierFeature.TraceIdentifier = "customTrace"; Assert.Equal("customTrace", requestIdentifierFeature.TraceIdentifier); // Note: Response keys are validated in the ResponseTests } catch (Exception ex) { byte[] body = Encoding.ASCII.GetBytes(ex.ToString()); httpContext.Response.Body.Write(body, 0, body.Length); } return(Task.FromResult(0)); })) { string response = await SendRequestAsync(root + "/basepath/SomePath?SomeQuery"); Assert.Equal(string.Empty, response); } }