public void CreateActivator_CreatesModelInstance() { // Arrange var simpleModel = new DISimpleModel(); var serviceProvider = new Mock <IServiceProvider>(MockBehavior.Strict); serviceProvider.Setup(s => s.GetService(typeof(DISimpleModel))) .Returns(simpleModel) .Verifiable(); var activatorProvider = new ServiceBasedPageModelActivatorProvider(); var pageContext = new PageContext { HttpContext = new DefaultHttpContext { RequestServices = serviceProvider.Object, }, ActionDescriptor = new CompiledPageActionDescriptor { ModelTypeInfo = typeof(DISimpleModel).GetTypeInfo(), } }; // Act var activator = activatorProvider.CreateActivator(pageContext.ActionDescriptor); var model = activator(pageContext); // Assert var simpleModel2 = Assert.IsType <DISimpleModel>(model); Assert.NotNull(simpleModel2); }
public void Create_ThrowsIfModelIsNotRegisteredInServiceProvider() { // Arrange var expected = "No service for type '" + typeof(DISimpleModel) + "' has been registered."; var model = new DISimpleModel(); var httpContext = new DefaultHttpContext { RequestServices = Mock.Of <IServiceProvider>() }; var activatorProvider = new ServiceBasedPageModelActivatorProvider(); var context = new PageContext { HttpContext = httpContext, ActionDescriptor = new CompiledPageActionDescriptor { ModelTypeInfo = typeof(DISimpleModel).GetTypeInfo(), } }; // Act and Assert var activator = activatorProvider.CreateActivator(context.ActionDescriptor); var ex = Assert.Throws <InvalidOperationException>( () => activator(context)); Assert.Equal(expected, ex.Message); }
public void Create_GetsServicesFromServiceProvider() { // Arrange var simpleModel = new DISimpleModel(); var serviceProvider = new Mock <IServiceProvider>(MockBehavior.Strict); serviceProvider.Setup(s => s.GetService(typeof(DISimpleModel))) .Returns(simpleModel) .Verifiable(); var activatorProvider = new ServiceBasedPageModelActivatorProvider(); var pageContext = new PageContext { HttpContext = new DefaultHttpContext { RequestServices = serviceProvider.Object, }, ActionDescriptor = new CompiledPageActionDescriptor { ModelTypeInfo = typeof(DISimpleModel).GetTypeInfo(), } }; // Act var activator = activatorProvider.CreateActivator(pageContext.ActionDescriptor); var instance = activator(pageContext); // Assert Assert.Same(simpleModel, instance); serviceProvider.Verify(); }