Skip to content
This repository has been archived by the owner on Dec 14, 2018. It is now read-only.

Commit

Permalink
Test cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
pranavkm committed May 3, 2018
1 parent 86d885e commit 777782a
Show file tree
Hide file tree
Showing 10 changed files with 53 additions and 55 deletions.
Expand Up @@ -77,13 +77,13 @@ public void Configure(MvcOptions options)
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.
Expand Down
10 changes: 5 additions & 5 deletions test/Microsoft.AspNetCore.Mvc.Core.Test/ControllerBaseTest.cs
Expand Up @@ -2327,7 +2327,7 @@ public static IEnumerable<object[]> RedirectTestData
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 =>
{
Expand Down Expand Up @@ -2356,7 +2356,7 @@ public async Task TryUpdateModel_UsesModelTypeNameIfSpecified()
// Arrange
var modelName = "mymodel";

var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
var metadataProvider = new EmptyModelMetadataProvider();
var valueProvider = Mock.Of<IValueProvider>();
var binder = new StubModelBinder(context =>
{
Expand Down Expand Up @@ -2578,7 +2578,7 @@ public async Task TryUpdateModelNonGeneric_ModelTypeOverload_UsesPassedArguments
// Arrange
var modelName = "mymodel";

var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
var metadataProvider = new EmptyModelMetadataProvider();
var valueProvider = Mock.Of<IValueProvider>();
var binder = new StubModelBinder(context =>
{
Expand Down Expand Up @@ -2606,7 +2606,7 @@ public async Task TryUpdateModelNonGeneric_BindToBaseDeclaredType_ModelTypeOverl
// Arrange
var modelName = "mymodel";

var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
var metadataProvider = new EmptyModelMetadataProvider();
var valueProvider = Mock.Of<IValueProvider>();
var binder = new StubModelBinder(context =>
{
Expand Down Expand Up @@ -2834,7 +2834,7 @@ public void RedirectToPage_WithPageName_Handler_AndRouteValues()

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);

Expand Down
Expand Up @@ -791,7 +791,7 @@ private ControllerActionDescriptorProvider GetActionDescriptorProvider()

var manager = GetApplicationManager(controllerTypes);

var modelProvider = new DefaultApplicationModelProvider(options, TestModelMetadataProvider.CreateDefaultProvider());
var modelProvider = new DefaultApplicationModelProvider(options, new EmptyModelMetadataProvider());

var provider = new ControllerActionDescriptorProvider(
manager,
Expand Down
Expand Up @@ -169,7 +169,7 @@ private static ApplicationModelProviderContext CreateProviderContext(Type contro
{
var defaultProvider = new DefaultApplicationModelProvider(
Options.Create(new MvcOptions()),
TestModelMetadataProvider.CreateDefaultProvider());
new EmptyModelMetadataProvider());

var context = new ApplicationModelProviderContext(new[] { controllerType.GetTypeInfo() });
defaultProvider.OnProvidersExecuting(context);
Expand Down
Expand Up @@ -709,7 +709,7 @@ public void AttributeRouting_ThrowsIfAttributeRoutedAndNonAttributedActions_OnTh
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 },
Expand Down Expand Up @@ -1397,7 +1397,7 @@ public void OnProviderExecuted_AddsGlobalRouteValues()

var manager = GetApplicationManager(new[] { controllerTypeInfo });

var modelProvider = new DefaultApplicationModelProvider(options, TestModelMetadataProvider.CreateDefaultProvider());
var modelProvider = new DefaultApplicationModelProvider(options, new EmptyModelMetadataProvider());

var provider = new ControllerActionDescriptorProvider(
manager,
Expand All @@ -1413,7 +1413,7 @@ public void OnProviderExecuted_AddsGlobalRouteValues()
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,
Expand All @@ -1432,7 +1432,7 @@ public void OnProviderExecuted_AddsGlobalRouteValues()

var manager = GetApplicationManager(new[] { controllerTypeInfo });

var modelProvider = new DefaultApplicationModelProvider(options, TestModelMetadataProvider.CreateDefaultProvider());
var modelProvider = new DefaultApplicationModelProvider(options, new EmptyModelMetadataProvider());

var provider = new ControllerActionDescriptorProvider(
manager,
Expand Down
Expand Up @@ -102,7 +102,7 @@ public CustomActionDescriptorCollectionProvider(ControllerActionDescriptor[] act
{
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
{
Expand Down
Expand Up @@ -40,7 +40,9 @@ public void CreateControllerModel_DerivedFromControllerClass_HasFilter()
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 });
Expand Down Expand Up @@ -84,7 +86,7 @@ public void OnProvidersExecuting_ReadsBindingSourceForPropertiesFromModelMetadat
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 });

Expand Down Expand Up @@ -124,7 +126,9 @@ public void OnProvidersExecuting_ReadsBindingSourceForPropertiesFromModelMetadat
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 });
Expand Down Expand Up @@ -166,9 +170,9 @@ public void OnProvidersExecuting_AddsBindingSources_ForActionParameters()
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 });
Expand Down Expand Up @@ -215,7 +219,7 @@ public void OnProvidersExecuting_AddsBindingSources_ForActionParameters_ReadFrom
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 });
Expand Down Expand Up @@ -243,7 +247,7 @@ public void OnProvidersExecuting_UsesBindingSourceSpecifiedOnParameter()
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 });
Expand Down Expand Up @@ -1658,14 +1662,16 @@ public Task OnResourceExecutionAsync(ResourceExecutingContext context, ResourceE
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)
{
}

Expand Down
Expand Up @@ -213,7 +213,7 @@ private static ApplicationModelProviderContext GetProviderContext(Type controlle
var context = new ApplicationModelProviderContext(new[] { controllerType.GetTypeInfo() });
var provider = new DefaultApplicationModelProvider(
Options.Create(new MvcOptions()),
TestModelMetadataProvider.CreateDefaultProvider());
new EmptyModelMetadataProvider());
provider.OnProvidersExecuting(context);

return context;
Expand Down
Expand Up @@ -29,7 +29,7 @@ public static ModelMetadataProvider CreateDefaultProvider(IStringLocalizerFactor
new DataMemberRequiredBindingMetadataProvider(),
};

MvcCoreMvcOptionsSetup.ConfigureAdditionalModelMetadataDetailsProvider(detailsProviders);
MvcCoreMvcOptionsSetup.ConfigureAdditionalModelMetadataDetailsProviders(detailsProviders);

var compositeDetailsProvider = new DefaultCompositeMetadataDetailsProvider(detailsProviders);
return new DefaultModelMetadataProvider(compositeDetailsProvider, Options.Create(new MvcOptions()));
Expand All @@ -47,7 +47,7 @@ public static IModelMetadataProvider CreateDefaultProvider(IList<IMetadataDetail
new DataMemberRequiredBindingMetadataProvider(),
};

MvcCoreMvcOptionsSetup.ConfigureAdditionalModelMetadataDetailsProvider(detailsProviders);
MvcCoreMvcOptionsSetup.ConfigureAdditionalModelMetadataDetailsProviders(detailsProviders);

detailsProviders.AddRange(providers);

Expand Down
Expand Up @@ -21,12 +21,8 @@ public void OnProvidersExecuting_DoesNotAddFilter_IfTypeHasNoTempDataProperties(
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);
Expand All @@ -44,12 +40,8 @@ public void OnProvidersExecuting_ValidatesTempDataProperties()
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));
Expand All @@ -63,12 +55,8 @@ public void AddsTempDataPropertyFilter_ForTempDataAttributeProperties()
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);
Expand All @@ -82,15 +70,12 @@ public void AddsTempDataPropertyFilter_ForTempDataAttributeProperties()
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);
Expand All @@ -110,13 +95,9 @@ public void OnProvidersExecuting_SetsKeyPrefixToEmptyString_IfCompatSwitchIsSet(
// 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);
Expand All @@ -130,6 +111,17 @@ public void OnProvidersExecuting_SetsKeyPrefixToEmptyString_IfCompatSwitchIsSet(
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; }
Expand Down

0 comments on commit 777782a

Please sign in to comment.