Test cleanup

This commit is contained in:
Pranav K 2018-05-03 14:07:08 -07:00
parent 86d885e533
commit 777782ac6e
10 changed files with 53 additions and 55 deletions

View File

@ -77,13 +77,13 @@ namespace Microsoft.AspNetCore.Mvc.Internal
options.ValueProviderFactories.Add(new JQueryFormValueProviderFactory());
// Set up metadata providers
ConfigureAdditionalModelMetadataDetailsProvider(options.ModelMetadataDetailsProviders);
ConfigureAdditionalModelMetadataDetailsProviders(options.ModelMetadataDetailsProviders);
// Set up validators
options.ModelValidatorProviders.Add(new DefaultModelValidatorProvider());
}
internal static void ConfigureAdditionalModelMetadataDetailsProvider(IList<IMetadataDetailsProvider> modelMetadataDetailsProviders)
internal static void ConfigureAdditionalModelMetadataDetailsProviders(IList<IMetadataDetailsProvider> modelMetadataDetailsProviders)
{
// Don't bind the Type class by default as it's expensive. A user can override this behavior
// by altering the collection of providers.

View File

@ -2327,7 +2327,7 @@ namespace Microsoft.AspNetCore.Mvc.Core.Test
public async Task TryUpdateModel_FallsBackOnEmptyPrefix_IfNotSpecified()
{
// Arrange
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
var metadataProvider = new EmptyModelMetadataProvider();
var valueProvider = Mock.Of<IValueProvider>();
var binder = new StubModelBinder(context =>
{
@ -2356,7 +2356,7 @@ namespace Microsoft.AspNetCore.Mvc.Core.Test
// Arrange
var modelName = "mymodel";
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
var metadataProvider = new EmptyModelMetadataProvider();
var valueProvider = Mock.Of<IValueProvider>();
var binder = new StubModelBinder(context =>
{
@ -2578,7 +2578,7 @@ namespace Microsoft.AspNetCore.Mvc.Core.Test
// Arrange
var modelName = "mymodel";
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
var metadataProvider = new EmptyModelMetadataProvider();
var valueProvider = Mock.Of<IValueProvider>();
var binder = new StubModelBinder(context =>
{
@ -2606,7 +2606,7 @@ namespace Microsoft.AspNetCore.Mvc.Core.Test
// Arrange
var modelName = "mymodel";
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
var metadataProvider = new EmptyModelMetadataProvider();
var valueProvider = Mock.Of<IValueProvider>();
var binder = new StubModelBinder(context =>
{
@ -2834,7 +2834,7 @@ namespace Microsoft.AspNetCore.Mvc.Core.Test
private static ControllerBase GetController(IModelBinder binder, IValueProvider valueProvider)
{
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
var metadataProvider = new EmptyModelMetadataProvider();
var services = new ServiceCollection();
services.AddSingleton<ILoggerFactory>(NullLoggerFactory.Instance);

View File

@ -791,7 +791,7 @@ namespace Microsoft.AspNetCore.Mvc.Infrastructure
var manager = GetApplicationManager(controllerTypes);
var modelProvider = new DefaultApplicationModelProvider(options, TestModelMetadataProvider.CreateDefaultProvider());
var modelProvider = new DefaultApplicationModelProvider(options, new EmptyModelMetadataProvider());
var provider = new ControllerActionDescriptorProvider(
manager,

View File

@ -169,7 +169,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
{
var defaultProvider = new DefaultApplicationModelProvider(
Options.Create(new MvcOptions()),
TestModelMetadataProvider.CreateDefaultProvider());
new EmptyModelMetadataProvider());
var context = new ApplicationModelProviderContext(new[] { controllerType.GetTypeInfo() });
defaultProvider.OnProvidersExecuting(context);

View File

@ -709,7 +709,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var manager = GetApplicationManager(new[] { controllerTypeInfo });
var options = Options.Create(new MvcOptions());
options.Value.Conventions.Add(new TestRoutingConvention());
var modelProvider = new DefaultApplicationModelProvider(options, TestModelMetadataProvider.CreateDefaultProvider());
var modelProvider = new DefaultApplicationModelProvider(options, new EmptyModelMetadataProvider());
var provider = new ControllerActionDescriptorProvider(
manager,
new[] { modelProvider },
@ -1397,7 +1397,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var manager = GetApplicationManager(new[] { controllerTypeInfo });
var modelProvider = new DefaultApplicationModelProvider(options, TestModelMetadataProvider.CreateDefaultProvider());
var modelProvider = new DefaultApplicationModelProvider(options, new EmptyModelMetadataProvider());
var provider = new ControllerActionDescriptorProvider(
manager,
@ -1413,7 +1413,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var options = Options.Create(new MvcOptions());
var manager = GetApplicationManager(controllerTypeInfos);
var modelProvider = new DefaultApplicationModelProvider(options, TestModelMetadataProvider.CreateDefaultProvider());
var modelProvider = new DefaultApplicationModelProvider(options, new EmptyModelMetadataProvider());
var provider = new ControllerActionDescriptorProvider(
manager,
@ -1432,7 +1432,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var manager = GetApplicationManager(new[] { controllerTypeInfo });
var modelProvider = new DefaultApplicationModelProvider(options, TestModelMetadataProvider.CreateDefaultProvider());
var modelProvider = new DefaultApplicationModelProvider(options, new EmptyModelMetadataProvider());
var provider = new ControllerActionDescriptorProvider(
manager,

View File

@ -102,7 +102,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
{
var descriptorProvider = new CustomActionDescriptorCollectionProvider(
new[] { controllerContext.ActionDescriptor });
var modelMetadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
var modelMetadataProvider = new EmptyModelMetadataProvider();
var modelBinderFactory = TestModelBinderFactory.CreateDefault();
var mvcOptions = Options.Create(new MvcOptions
{

View File

@ -40,7 +40,9 @@ namespace Microsoft.AspNetCore.Mvc.Internal
public void OnProvidersExecuting_AddsControllerProperties()
{
// Arrange
var builder = new TestApplicationModelProvider();
var builder = new TestApplicationModelProvider(
new MvcOptions { AllowValidatingTopLevelNodes = true },
TestModelMetadataProvider.CreateDefaultProvider());
var typeInfo = typeof(ModelBinderController).GetTypeInfo();
var context = new ApplicationModelProviderContext(new[] { typeInfo });
@ -84,7 +86,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var detailsProvider = new BindingSourceMetadataProvider(typeof(string), BindingSource.Services);
var modelMetadataProvider = TestModelMetadataProvider.CreateDefaultProvider(new[] { detailsProvider });
var typeInfo = typeof(ModelBinderController).GetTypeInfo();
var provider = new TestApplicationModelProvider(Options.Create(new MvcOptions()), modelMetadataProvider);
var provider = new TestApplicationModelProvider(new MvcOptions(), modelMetadataProvider);
var context = new ApplicationModelProviderContext(new[] { typeInfo });
@ -124,7 +126,9 @@ namespace Microsoft.AspNetCore.Mvc.Internal
public void OnProvidersExecuting_AddsBindingSources_ForActionParameters()
{
// Arrange
var builder = new TestApplicationModelProvider();
var builder = new TestApplicationModelProvider(
new MvcOptions { AllowValidatingTopLevelNodes = true },
TestModelMetadataProvider.CreateDefaultProvider());
var typeInfo = typeof(ModelBinderController).GetTypeInfo();
var context = new ApplicationModelProviderContext(new[] { typeInfo });
@ -166,9 +170,9 @@ namespace Microsoft.AspNetCore.Mvc.Internal
public void OnProvidersExecuting_AddsBindingSources_ForActionParameters_WithLegacyValidationBehavior()
{
// Arrange
var modelMetadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
var options = Options.Create(new MvcOptions { AllowValidatingTopLevelNodes = false });
var builder = new TestApplicationModelProvider(options, modelMetadataProvider);
var builder = new TestApplicationModelProvider(
new MvcOptions(),
TestModelMetadataProvider.CreateDefaultProvider());
var typeInfo = typeof(ModelBinderController).GetTypeInfo();
var context = new ApplicationModelProviderContext(new[] { typeInfo });
@ -215,7 +219,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var detailsProvider = new BindingSourceMetadataProvider(typeof(Guid), BindingSource.Special);
var modelMetadataProvider = TestModelMetadataProvider.CreateDefaultProvider(new[] { detailsProvider });
var provider = new TestApplicationModelProvider(Options.Create(options), modelMetadataProvider);
var provider = new TestApplicationModelProvider(options, modelMetadataProvider);
var typeInfo = typeof(ModelBinderController).GetTypeInfo();
var context = new ApplicationModelProviderContext(new[] { typeInfo });
@ -243,7 +247,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var detailsProvider = new BindingSourceMetadataProvider(typeof(Guid), BindingSource.Special);
var modelMetadataProvider = TestModelMetadataProvider.CreateDefaultProvider(new[] { detailsProvider });
var provider = new TestApplicationModelProvider(Options.Create(options), modelMetadataProvider);
var provider = new TestApplicationModelProvider(options, modelMetadataProvider);
var typeInfo = typeof(ModelBinderController).GetTypeInfo();
var context = new ApplicationModelProviderContext(new[] { typeInfo });
@ -1658,14 +1662,16 @@ namespace Microsoft.AspNetCore.Mvc.Internal
private class TestApplicationModelProvider : DefaultApplicationModelProvider
{
public TestApplicationModelProvider()
: this(Options.Create(new MvcOptions { AllowValidatingTopLevelNodes = true }), TestModelMetadataProvider.CreateDefaultProvider())
: this(
new MvcOptions { AllowValidatingTopLevelNodes = true },
new EmptyModelMetadataProvider())
{
}
public TestApplicationModelProvider(
IOptions<MvcOptions> options,
MvcOptions options,
IModelMetadataProvider modelMetadataProvider)
: base(options, modelMetadataProvider)
: base(Options.Create(options), modelMetadataProvider)
{
}

View File

@ -213,7 +213,7 @@ namespace Microsoft.AspNetCore.Mvc.Cors.Internal
var context = new ApplicationModelProviderContext(new[] { controllerType.GetTypeInfo() });
var provider = new DefaultApplicationModelProvider(
Options.Create(new MvcOptions()),
TestModelMetadataProvider.CreateDefaultProvider());
new EmptyModelMetadataProvider());
provider.OnProvidersExecuting(context);
return context;

View File

@ -29,7 +29,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
new DataMemberRequiredBindingMetadataProvider(),
};
MvcCoreMvcOptionsSetup.ConfigureAdditionalModelMetadataDetailsProvider(detailsProviders);
MvcCoreMvcOptionsSetup.ConfigureAdditionalModelMetadataDetailsProviders(detailsProviders);
var compositeDetailsProvider = new DefaultCompositeMetadataDetailsProvider(detailsProviders);
return new DefaultModelMetadataProvider(compositeDetailsProvider, Options.Create(new MvcOptions()));
@ -47,7 +47,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
new DataMemberRequiredBindingMetadataProvider(),
};
MvcCoreMvcOptionsSetup.ConfigureAdditionalModelMetadataDetailsProvider(detailsProviders);
MvcCoreMvcOptionsSetup.ConfigureAdditionalModelMetadataDetailsProviders(detailsProviders);
detailsProviders.AddRange(providers);

View File

@ -21,12 +21,8 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Internal
var type = typeof(TestController_NoTempDataProperties);
var options = Options.Create(new MvcViewOptions());
var provider = new TempDataApplicationModelProvider(options);
var defaultProvider = new DefaultApplicationModelProvider(
Options.Create(new MvcOptions()),
TestModelMetadataProvider.CreateDefaultProvider());
var context = new ApplicationModelProviderContext(new[] { type.GetTypeInfo() });
defaultProvider.OnProvidersExecuting(context);
var context = GetContext(type);
// Act
provider.OnProvidersExecuting(context);
@ -44,12 +40,8 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Internal
var options = Options.Create(new MvcViewOptions());
var provider = new TempDataApplicationModelProvider(options);
var expected = $"The '{type.FullName}.Test' property with TempDataAttribute is invalid. A property using TempDataAttribute must have a public getter and setter.";
var defaultProvider = new DefaultApplicationModelProvider(
Options.Create(new MvcOptions()),
TestModelMetadataProvider.CreateDefaultProvider());
var context = new ApplicationModelProviderContext(new[] { type.GetTypeInfo() });
defaultProvider.OnProvidersExecuting(context);
var context = GetContext(type);
// Act & Assert
var ex = Assert.Throws<InvalidOperationException>(() => provider.OnProvidersExecuting(context));
@ -63,12 +55,8 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Internal
var type = typeof(TestController_NullableNonPrimitiveTempDataProperty);
var options = Options.Create(new MvcViewOptions());
var provider = new TempDataApplicationModelProvider(options);
var defaultProvider = new DefaultApplicationModelProvider(
Options.Create(new MvcOptions()),
TestModelMetadataProvider.CreateDefaultProvider());
var context = new ApplicationModelProviderContext(new[] { type.GetTypeInfo() });
defaultProvider.OnProvidersExecuting(context);
var context = GetContext(type);
// Act
provider.OnProvidersExecuting(context);
@ -82,15 +70,12 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Internal
public void InitializeFilterFactory_WithExpectedPropertyHelpers_ForTempDataAttributeProperties()
{
// Arrange
var expected = typeof(TestController_OneTempDataProperty).GetProperty(nameof(TestController_OneTempDataProperty.Test2));
var type = typeof(TestController_OneTempDataProperty);
var expected = type.GetProperty(nameof(TestController_OneTempDataProperty.Test2));
var options = Options.Create(new MvcViewOptions());
var provider = new TempDataApplicationModelProvider(options);
var defaultProvider = new DefaultApplicationModelProvider(
Options.Create(new MvcOptions()),
TestModelMetadataProvider.CreateDefaultProvider());
var context = new ApplicationModelProviderContext(new[] { typeof(TestController_OneTempDataProperty).GetTypeInfo() });
defaultProvider.OnProvidersExecuting(context);
var context = GetContext(type);
// Act
provider.OnProvidersExecuting(context);
@ -110,13 +95,9 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Internal
// Arrange
var expected = typeof(TestController_OneTempDataProperty).GetProperty(nameof(TestController_OneTempDataProperty.Test2));
var options = Options.Create(new MvcViewOptions { SuppressTempDataAttributePrefix = true });
var type = typeof(TestController_OneTempDataProperty);
var provider = new TempDataApplicationModelProvider(options);
var defaultProvider = new DefaultApplicationModelProvider(
Options.Create(new MvcOptions()),
TestModelMetadataProvider.CreateDefaultProvider());
var context = new ApplicationModelProviderContext(new[] { typeof(TestController_OneTempDataProperty).GetTypeInfo() });
defaultProvider.OnProvidersExecuting(context);
var context = GetContext(type);
// Act
provider.OnProvidersExecuting(context);
@ -130,6 +111,17 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures.Internal
Assert.Equal("Test2", property.Key);
}
private static ApplicationModelProviderContext GetContext(Type type)
{
var defaultProvider = new DefaultApplicationModelProvider(
Options.Create(new MvcOptions()),
new EmptyModelMetadataProvider());
var context = new ApplicationModelProviderContext(new[] { type.GetTypeInfo() });
defaultProvider.OnProvidersExecuting(context);
return context;
}
public class TestController_NoTempDataProperties
{
public DateTime? DateTime { get; set; }