internal void Dispose(DefaultHttpContext httpContext) { if (_httpContextAccessor != null) { _httpContextAccessor.HttpContext = null; } httpContext.Uninitialize(); }
public void InternalActiveFlagIsSetAndUnset() { var context = new DefaultHttpContext(); Assert.False(context._active); context.Initialize(new FeatureCollection()); Assert.True(context._active); context.Uninitialize(); Assert.False(context._active); }
public void UpdateFeatures_ClearsCachedFeatures() { var features = new FeatureCollection(); features.Set <IHttpRequestFeature>(new HttpRequestFeature()); features.Set <IHttpResponseFeature>(new HttpResponseFeature()); features.Set <IHttpResponseBodyFeature>(new StreamResponseBodyFeature(Stream.Null)); features.Set <IHttpWebSocketFeature>(new TestHttpWebSocketFeature()); // FeatureCollection is set. all cached interfaces are null. var context = new DefaultHttpContext(features); TestAllCachedFeaturesAreNull(context, features); Assert.Equal(4, features.Count()); // getting feature properties populates feature collection with defaults TestAllCachedFeaturesAreSet(context, features); Assert.NotEqual(4, features.Count()); // FeatureCollection is null. and all cached interfaces are null. // only top level is tested because child objects are inaccessible. context.Uninitialize(); TestCachedFeaturesAreNull(context, null); var newFeatures = new FeatureCollection(); newFeatures.Set <IHttpRequestFeature>(new HttpRequestFeature()); newFeatures.Set <IHttpResponseFeature>(new HttpResponseFeature()); newFeatures.Set <IHttpResponseBodyFeature>(new StreamResponseBodyFeature(Stream.Null)); newFeatures.Set <IHttpWebSocketFeature>(new TestHttpWebSocketFeature()); // FeatureCollection is set to newFeatures. all cached interfaces are null. context.Initialize(newFeatures); TestAllCachedFeaturesAreNull(context, newFeatures); Assert.Equal(4, newFeatures.Count()); // getting feature properties populates new feature collection with defaults TestAllCachedFeaturesAreSet(context, newFeatures); Assert.NotEqual(4, newFeatures.Count()); }