public void CreateContextReinitializesPreviouslyStoredDefaultHttpContext() { // Arrange var hostingApplication = CreateApplication(); var features = new FeaturesWithContext <Context>(new DefaultHttpContext().Features); var previousContext = new DefaultHttpContext(); // Pretend like we had previous HttpContext features.HostContext = new Context(); features.HostContext.HttpContext = previousContext; var context = hostingApplication.CreateContext(features); Assert.Same(previousContext, context.HttpContext); // Act/Assert hostingApplication.DisposeContext(context, null); Assert.Same(previousContext, context.HttpContext); }
public void CreateContextCreatesNewContextIfNotUsingDefaultHttpContextFactory() { // Arrange var factory = new Mock <IHttpContextFactory>(); factory.Setup(m => m.Create(It.IsAny <IFeatureCollection>())).Returns <IFeatureCollection>(f => new DefaultHttpContext(f)); factory.Setup(m => m.Dispose(It.IsAny <HttpContext>())).Callback(() => { }); var hostingApplication = CreateApplication(factory.Object); var features = new FeaturesWithContext <Context>(new DefaultHttpContext().Features); var previousContext = new DefaultHttpContext(); // Pretend like we had previous HttpContext features.HostContext = new Context(); features.HostContext.HttpContext = previousContext; var context = hostingApplication.CreateContext(features); Assert.NotSame(previousContext, context.HttpContext); // Act/Assert hostingApplication.DisposeContext(context, null); }