Use new HttpContext.Features API.

This commit is contained in:
Chris R 2015-08-31 07:22:34 -07:00
parent d448c6e389
commit adae42b66f
5 changed files with 14 additions and 16 deletions

View File

@ -162,14 +162,14 @@ namespace Microsoft.AspNet.Hosting.Internal
private string GetRequestIdentifier(HttpContext httpContext) private string GetRequestIdentifier(HttpContext httpContext)
{ {
var requestIdentifierFeature = httpContext.GetFeature<IHttpRequestIdentifierFeature>(); var requestIdentifierFeature = httpContext.Features.Get<IHttpRequestIdentifierFeature>();
if (requestIdentifierFeature == null) if (requestIdentifierFeature == null)
{ {
requestIdentifierFeature = new HttpRequestIdentifierFeature() requestIdentifierFeature = new HttpRequestIdentifierFeature()
{ {
TraceIdentifier = Guid.NewGuid().ToString() TraceIdentifier = Guid.NewGuid().ToString()
}; };
httpContext.SetFeature(requestIdentifierFeature); httpContext.Features.Set(requestIdentifierFeature);
} }
return requestIdentifierFeature.TraceIdentifier; return requestIdentifierFeature.TraceIdentifier;

View File

@ -70,7 +70,7 @@ namespace Microsoft.AspNet.TestHost
{ {
try try
{ {
await _next(state.FeatureCollection); await _next(state.HttpContext.Features);
state.CompleteResponse(); state.CompleteResponse();
} }
catch (Exception ex) catch (Exception ex)
@ -108,11 +108,10 @@ namespace Microsoft.AspNet.TestHost
request.Headers.Host = request.RequestUri.GetComponents(UriComponents.HostAndPort, UriFormat.UriEscaped); request.Headers.Host = request.RequestUri.GetComponents(UriComponents.HostAndPort, UriFormat.UriEscaped);
} }
FeatureCollection = new FeatureCollection(); HttpContext = new DefaultHttpContext();
HttpContext = new DefaultHttpContext(FeatureCollection); HttpContext.Features.Set<IHttpRequestFeature>(new RequestFeature());
HttpContext.SetFeature<IHttpRequestFeature>(new RequestFeature());
_responseFeature = new ResponseFeature(); _responseFeature = new ResponseFeature();
HttpContext.SetFeature<IHttpResponseFeature>(_responseFeature); HttpContext.Features.Set<IHttpResponseFeature>(_responseFeature);
var serverRequest = HttpContext.Request; var serverRequest = HttpContext.Request;
serverRequest.Protocol = "HTTP/" + request.Version.ToString(2); serverRequest.Protocol = "HTTP/" + request.Version.ToString(2);
serverRequest.Scheme = request.RequestUri.Scheme; serverRequest.Scheme = request.RequestUri.Scheme;
@ -154,8 +153,6 @@ namespace Microsoft.AspNet.TestHost
public HttpContext HttpContext { get; private set; } public HttpContext HttpContext { get; private set; }
public IFeatureCollection FeatureCollection { get; private set; }
public Task<HttpResponseMessage> ResponseTask public Task<HttpResponseMessage> ResponseTask
{ {
get { return _responseTcs.Task; } get { return _responseTcs.Task; }
@ -180,7 +177,7 @@ namespace Microsoft.AspNet.TestHost
var response = new HttpResponseMessage(); var response = new HttpResponseMessage();
response.StatusCode = (HttpStatusCode)HttpContext.Response.StatusCode; response.StatusCode = (HttpStatusCode)HttpContext.Response.StatusCode;
response.ReasonPhrase = HttpContext.GetFeature<IHttpResponseFeature>().ReasonPhrase; response.ReasonPhrase = HttpContext.Features.Get<IHttpResponseFeature>().ReasonPhrase;
response.RequestMessage = _request; response.RequestMessage = _request;
// response.Version = owinResponse.Protocol; // response.Version = owinResponse.Protocol;

View File

@ -241,7 +241,7 @@ namespace Microsoft.AspNet.Hosting
// Assert // Assert
Assert.NotNull(httpContext); Assert.NotNull(httpContext);
Assert.IsType<HttpRequestIdentifierFeature>(httpContext.GetFeature<IHttpRequestIdentifierFeature>()); Assert.IsType<HttpRequestIdentifierFeature>(httpContext.Features.Get<IHttpRequestIdentifierFeature>());
} }
[Fact] [Fact]
@ -264,7 +264,7 @@ namespace Microsoft.AspNet.Hosting
// Assert // Assert
Assert.NotNull(httpContext); Assert.NotNull(httpContext);
Assert.IsType<HttpRequestIdentifierFeature>(httpContext.GetFeature<IHttpRequestIdentifierFeature>()); Assert.IsType<HttpRequestIdentifierFeature>(httpContext.Features.Get<IHttpRequestIdentifierFeature>());
} }
[Fact] [Fact]
@ -286,7 +286,7 @@ namespace Microsoft.AspNet.Hosting
// Assert // Assert
Assert.NotNull(httpContext); Assert.NotNull(httpContext);
Assert.Same(requestIdentifierFeature, httpContext.GetFeature<IHttpRequestIdentifierFeature>()); Assert.Same(requestIdentifierFeature, httpContext.Features.Get<IHttpRequestIdentifierFeature>());
} }
[Fact] [Fact]

View File

@ -3,6 +3,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using Microsoft.AspNet.Hosting.Builder; using Microsoft.AspNet.Hosting.Builder;
using Microsoft.AspNet.Http.Features;
using Microsoft.AspNet.Owin; using Microsoft.AspNet.Owin;
using Xunit; using Xunit;
@ -18,8 +19,8 @@ namespace Microsoft.AspNet.Hosting.Tests
var context = contextFactory.CreateHttpContext(new OwinFeatureCollection(env)); var context = contextFactory.CreateHttpContext(new OwinFeatureCollection(env));
// Setting a feature will throw if the above feature collection is not wrapped in a mutable feature collection. // Setting a feature will throw if the above feature collection is not wrapped in a mutable feature collection.
context.SetFeature<ICustomFeature>(new CustomFeature(100)); context.Features.Set<ICustomFeature>(new CustomFeature(100));
Assert.Equal(100, context.GetFeature<ICustomFeature>().Value); Assert.Equal(100, context.Features.Get<ICustomFeature>().Value);
} }
private interface ICustomFeature private interface ICustomFeature

View File

@ -36,7 +36,7 @@ namespace Microsoft.AspNet.TestHost
Assert.NotNull(context.Response.Headers); Assert.NotNull(context.Response.Headers);
Assert.NotNull(context.Response.Body); Assert.NotNull(context.Response.Body);
Assert.Equal(200, context.Response.StatusCode); Assert.Equal(200, context.Response.StatusCode);
Assert.Null(context.GetFeature<IHttpResponseFeature>().ReasonPhrase); Assert.Null(context.Features.Get<IHttpResponseFeature>().ReasonPhrase);
Assert.Equal("example.com", context.Request.Host.Value); Assert.Equal("example.com", context.Request.Host.Value);
return Task.FromResult(0); return Task.FromResult(0);