#7024 Request: ServiceBasedPageModelActivatorProvider [Review Changes]

This commit is contained in:
Nisha Kaushik 2018-05-22 10:19:21 +05:30 committed by Pranav K
parent b8e5036e20
commit 077b1d87a9
3 changed files with 12 additions and 14 deletions

View File

@ -110,11 +110,9 @@ namespace Microsoft.Extensions.DependencyInjection
ServiceDescriptor.Singleton<IActionInvokerProvider, PageActionInvokerProvider>()); ServiceDescriptor.Singleton<IActionInvokerProvider, PageActionInvokerProvider>());
// Page and Page model creation and activation // Page and Page model creation and activation
services.TryAddSingleton<IPageModelActivatorProvider, DefaultPageModelActivatorProvider>(); services.TryAddSingleton<IPageModelActivatorProvider, DefaultPageModelActivatorProvider>();
services.TryAddSingleton<IPageModelFactoryProvider, DefaultPageModelFactoryProvider>(); services.TryAddSingleton<IPageModelFactoryProvider, DefaultPageModelFactoryProvider>();
services.TryAddSingleton<IPageModelActivatorProvider, ServiceBasedPageModelActivatorProvider>();
services.TryAddSingleton<IPageActivatorProvider, DefaultPageActivatorProvider>(); services.TryAddSingleton<IPageActivatorProvider, DefaultPageActivatorProvider>();
services.TryAddSingleton<IPageFactoryProvider, DefaultPageFactoryProvider>(); services.TryAddSingleton<IPageFactoryProvider, DefaultPageFactoryProvider>();

View File

@ -19,8 +19,8 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure
throw new ArgumentNullException(nameof(descriptor)); throw new ArgumentNullException(nameof(descriptor));
} }
var modelTypeInfo = descriptor.ModelTypeInfo?.AsType(); var modelType = descriptor.ModelTypeInfo?.AsType();
if (modelTypeInfo == null) if (modelType == null)
{ {
throw new ArgumentException(Resources.FormatPropertyOfTypeCannotBeNull( throw new ArgumentException(Resources.FormatPropertyOfTypeCannotBeNull(
nameof(descriptor.ModelTypeInfo), nameof(descriptor.ModelTypeInfo),
@ -30,7 +30,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure
return context => return context =>
{ {
return context.HttpContext.RequestServices.GetRequiredService(modelTypeInfo); return context.HttpContext.RequestServices.GetRequiredService(modelType);
}; };
} }

View File

@ -31,10 +31,10 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure
{ {
// Arrange // Arrange
var simpleModel = new DISimpleModel(); var simpleModel = new DISimpleModel();
var serviceProvider = new Mock<IServiceProvider>(MockBehavior.Strict); var serviceProvider = new Mock<IServiceProvider>(MockBehavior.Strict);
serviceProvider.Setup(s => s.GetService(typeof(DISimpleModel))) serviceProvider.Setup(s => s.GetService(typeof(DISimpleModel)))
.Returns(simpleModel) .Returns(simpleModel)
.Verifiable(); .Verifiable();
var activatorProvider = new ServiceBasedPageModelActivatorProvider(); var activatorProvider = new ServiceBasedPageModelActivatorProvider();
var pageContext = new PageContext var pageContext = new PageContext
@ -62,11 +62,11 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure
public void CreateActivator_CreatesModelInstance() public void CreateActivator_CreatesModelInstance()
{ {
// Arrange // Arrange
var controller = new DISimpleModel(); var simpleModel = new DISimpleModel();
var serviceProvider = new Mock<IServiceProvider>(MockBehavior.Strict); var serviceProvider = new Mock<IServiceProvider>(MockBehavior.Strict);
serviceProvider.Setup(s => s.GetService(typeof(DISimpleModel))) serviceProvider.Setup(s => s.GetService(typeof(DISimpleModel)))
.Returns(controller) .Returns(simpleModel)
.Verifiable(); .Verifiable();
var activatorProvider = new ServiceBasedPageModelActivatorProvider(); var activatorProvider = new ServiceBasedPageModelActivatorProvider();
var pageContext = new PageContext var pageContext = new PageContext
@ -86,8 +86,8 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure
var model = activator(pageContext); var model = activator(pageContext);
// Assert // Assert
var simpleModel = Assert.IsType<DISimpleModel>(model); var simpleModel2 = Assert.IsType<DISimpleModel>(model);
Assert.NotNull(simpleModel); Assert.NotNull(simpleModel2);
} }
[Fact] [Fact]