Use new HttpContext.Features API.
This commit is contained in:
parent
d448c6e389
commit
adae42b66f
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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]
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue