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)
{
var requestIdentifierFeature = httpContext.GetFeature<IHttpRequestIdentifierFeature>();
var requestIdentifierFeature = httpContext.Features.Get<IHttpRequestIdentifierFeature>();
if (requestIdentifierFeature == null)
{
requestIdentifierFeature = new HttpRequestIdentifierFeature()
{
TraceIdentifier = Guid.NewGuid().ToString()
};
httpContext.SetFeature(requestIdentifierFeature);
httpContext.Features.Set(requestIdentifierFeature);
}
return requestIdentifierFeature.TraceIdentifier;

View File

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

View File

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

View File

@ -3,6 +3,7 @@
using System.Collections.Generic;
using Microsoft.AspNet.Hosting.Builder;
using Microsoft.AspNet.Http.Features;
using Microsoft.AspNet.Owin;
using Xunit;
@ -18,8 +19,8 @@ namespace Microsoft.AspNet.Hosting.Tests
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.
context.SetFeature<ICustomFeature>(new CustomFeature(100));
Assert.Equal(100, context.GetFeature<ICustomFeature>().Value);
context.Features.Set<ICustomFeature>(new CustomFeature(100));
Assert.Equal(100, context.Features.Get<ICustomFeature>().Value);
}
private interface ICustomFeature

View File

@ -36,7 +36,7 @@ namespace Microsoft.AspNet.TestHost
Assert.NotNull(context.Response.Headers);
Assert.NotNull(context.Response.Body);
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);
return Task.FromResult(0);