[Fixes #3904] Redesigned IValueProviderFactory and renamed a few methods

This commit is contained in:
Ajay Bhargav Baaskaran 2016-01-29 16:05:59 -08:00
parent acd88d08ba
commit 6de171f1ef
49 changed files with 301 additions and 240 deletions

View File

@ -11,12 +11,12 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
public interface IValueProviderFactory
{
/// <summary>
/// Gets a <see cref="IValueProvider"/> with values from the current request.
/// Creates a <see cref="IValueProvider"/> with values from the current request
/// and adds it to <see cref="ValueProviderFactoryContext.ValueProviders"/> list.
/// </summary>
/// <param name="context">The <see cref="ActionContext"/>.</param>
/// <returns>
/// A <see cref="Task"/> that when completed will yield a <see cref="IValueProvider"/> instance or <c>null</c>.
/// </returns>
Task<IValueProvider> GetValueProviderAsync(ActionContext context);
/// <param name="context">The <see cref="ValueProviderFactoryContext"/>.</param>
/// <returns>A <see cref="Task"/> that when completed will add an <see cref="IValueProvider"/> instance
/// to <see cref="ValueProviderFactoryContext.ValueProviders"/> list if applicable.</returns>
Task CreateValueProviderAsync(ValueProviderFactoryContext context);
}
}

View File

@ -44,7 +44,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation
/// <summary>
/// Gets the list of <see cref="ClientValidatorItem"/> instances. <see cref="IClientModelValidatorProvider"/>
/// instances should add the appropriate <see cref="ClientValidatorItem.Validator"/> properties when
/// <see cref="IClientModelValidatorProvider.GetValidators(ClientValidatorProviderContext)()"/>
/// <see cref="IClientModelValidatorProvider.CreateValidators(ClientValidatorProviderContext)()"/>
/// is called.
/// </summary>
public IList<ClientValidatorItem> Results { get; }

View File

@ -9,10 +9,10 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation
public interface IClientModelValidatorProvider
{
/// <summary>
/// Gets set of <see cref="IClientModelValidator"/>s by updating
/// Creates set of <see cref="IClientModelValidator"/>s by updating
/// <see cref="ClientValidatorItem.Validator"/> in <see cref="ClientValidatorProviderContext.Results"/>.
/// </summary>
/// <param name="context">The <see cref="ClientModelValidationContext"/> associated with this call.</param>
void GetValidators(ClientValidatorProviderContext context);
void CreateValidators(ClientValidatorProviderContext context);
}
}

View File

@ -9,7 +9,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation
public interface IModelValidatorProvider
{
/// <summary>
/// Gets the validators for <see cref="ModelValidatorProviderContext.ModelMetadata"/>.
/// Creates the validators for <see cref="ModelValidatorProviderContext.ModelMetadata"/>.
/// </summary>
/// <param name="context">The <see cref="ModelValidatorProviderContext"/>.</param>
/// <remarks>
@ -17,6 +17,6 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation
/// <see cref="ValidatorItem"/> instance which should be added to
/// <see cref="ModelValidatorProviderContext.Results"/>.
/// </remarks>
void GetValidators(ModelValidatorProviderContext context);
void CreateValidators(ModelValidatorProviderContext context);
}
}

View File

@ -43,7 +43,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation
/// <summary>
/// Gets the list of <see cref="ValidatorItem"/> instances. <see cref="IModelValidatorProvider"/> instances
/// should add the appropriate <see cref="ValidatorItem.Validator"/> properties when
/// <see cref="IModelValidatorProvider.GetValidators(ModelValidatorProviderContext)"/>
/// <see cref="IModelValidatorProvider.CreateValidators(ModelValidatorProviderContext)"/>
/// is called.
/// </summary>
public IList<ValidatorItem> Results { get; }

View File

@ -0,0 +1,40 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
using System.Collections.Generic;
namespace Microsoft.AspNetCore.Mvc.ModelBinding
{
/// <summary>
/// A context for <see cref="IValueProviderFactory"/>.
/// </summary>
public class ValueProviderFactoryContext
{
/// <summary>
/// Creates a new <see cref="ValueProviderFactoryContext"/>.
/// </summary>
/// <param name="context">The <see cref="ActionContext"/>.</param>
public ValueProviderFactoryContext(ActionContext context)
{
if (context == null)
{
throw new ArgumentNullException(nameof(context));
}
ActionContext = context;
}
/// <summary>
/// Gets the <see cref="ActionContext"/> associated with this context.
/// </summary>
public ActionContext ActionContext { get; }
/// <summary>
/// Gets the list of <see cref="IValueProvider"/> instances.
/// <see cref="IValueProviderFactory"/> instances should add the appropriate
/// <see cref="IValueProvider"/> instances to this list.
/// </summary>
public IList<IValueProvider> ValueProviders { get; } = new List<IValueProvider>();
}
}

View File

@ -90,7 +90,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
{
var context = new ClientValidatorProviderContext(metadata, items);
validatorProvider.GetValidators(context);
validatorProvider.CreateValidators(context);
}
private IReadOnlyList<IClientModelValidator> ExtractValidators(List<ClientValidatorItem> items)

View File

@ -28,7 +28,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
/// <inheritdoc />
public void GetBindingMetadata(BindingMetadataProviderContext context)
public void CreateBindingMetadata(BindingMetadataProviderContext context)
{
if (context == null)
{

View File

@ -25,7 +25,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
/// <inheritdoc />
public virtual void GetBindingMetadata(BindingMetadataProviderContext context)
public virtual void CreateBindingMetadata(BindingMetadataProviderContext context)
{
if (context == null)
{
@ -34,12 +34,12 @@ namespace Microsoft.AspNetCore.Mvc.Internal
foreach (var provider in _providers.OfType<IBindingMetadataProvider>())
{
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
}
}
/// <inheritdoc />
public virtual void GetDisplayMetadata(DisplayMetadataProviderContext context)
public virtual void CreateDisplayMetadata(DisplayMetadataProviderContext context)
{
if (context == null)
{
@ -48,12 +48,12 @@ namespace Microsoft.AspNetCore.Mvc.Internal
foreach (var provider in _providers.OfType<IDisplayMetadataProvider>())
{
provider.GetDisplayMetadata(context);
provider.CreateDisplayMetadata(context);
}
}
/// <inheritdoc />
public virtual void GetValidationMetadata(ValidationMetadataProviderContext context)
public virtual void CreateValidationMetadata(ValidationMetadataProviderContext context)
{
if (context == null)
{
@ -62,7 +62,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
foreach (var provider in _providers.OfType<IValidationMetadataProvider>())
{
provider.GetValidationMetadata(context);
provider.CreateValidationMetadata(context);
}
}
}

View File

@ -15,7 +15,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
public class DefaultModelValidatorProvider : IModelValidatorProvider
{
/// <inheritdoc />
public void GetValidators(ModelValidatorProviderContext context)
public void CreateValidators(ModelValidatorProviderContext context)
{
//Perf: Avoid allocations here
for (var i = 0; i < context.Results.Count; i++)

View File

@ -13,7 +13,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
public class DefaultValidationMetadataProvider : IValidationMetadataProvider
{
/// <inheritdoc />
public void GetValidationMetadata(ValidationMetadataProviderContext context)
public void CreateValidationMetadata(ValidationMetadataProviderContext context)
{
if (context == null)
{

View File

@ -364,17 +364,14 @@ namespace Microsoft.AspNetCore.Mvc.Internal
Context.ValidatorProviders = _resourceExecutingContext.ValidatorProviders;
var valueProviders = new List<IValueProvider>();
var factoryContext = new ValueProviderFactoryContext(Context);
for (var i = 0; i < _resourceExecutingContext.ValueProviderFactories.Count; i++)
{
var factory = _resourceExecutingContext.ValueProviderFactories[i];
var valueProvider = await factory.GetValueProviderAsync(Context);
if (valueProvider != null)
{
valueProviders.Add(valueProvider);
}
await factory.CreateValueProviderAsync(factoryContext);
}
Context.ValueProviders = valueProviders;
Context.ValueProviders = factoryContext.ValueProviders;
// >> ExceptionFilters >> Model Binding >> ActionFilters >> Action
await InvokeAllExceptionFiltersAsync();

View File

@ -89,7 +89,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
private void ExecuteProvider(IModelValidatorProvider validatorProvider, ModelMetadata metadata, List<ValidatorItem> items)
{
var context = new ModelValidatorProviderContext(metadata, items);
validatorProvider.GetValidators(context);
validatorProvider.CreateValidators(context);
}
private IReadOnlyList<IModelValidator> ExtractValidators(List<ValidatorItem> items)

View File

@ -22,7 +22,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
{
private readonly ModelBindingMessageProvider _messageProvider = CreateMessageProvider();
public void GetBindingMetadata(BindingMetadataProviderContext context)
public void CreateBindingMetadata(BindingMetadataProviderContext context)
{
if (context == null)
{

View File

@ -9,30 +9,38 @@ using Microsoft.AspNetCore.Mvc.Internal;
namespace Microsoft.AspNetCore.Mvc.ModelBinding
{
/// <summary>
/// A <see cref="IValueProviderFactory"/> for <see cref="FormValueProvider"/>.
/// </summary>
public class FormValueProviderFactory : IValueProviderFactory
{
public Task<IValueProvider> GetValueProviderAsync(ActionContext context)
/// <inheritdoc />
public Task CreateValueProviderAsync(ValueProviderFactoryContext context)
{
if (context == null)
{
throw new ArgumentNullException(nameof(context));
}
var request = context.HttpContext.Request;
var request = context.ActionContext.HttpContext.Request;
if (request.HasFormContentType)
{
return CreateValueProviderAsync(request);
// Allocating a Task only when the body is form data.
return AddValueProviderAsync(context);
}
return TaskCache<IValueProvider>.DefaultCompletedTask;
return TaskCache.CompletedTask;
}
private static async Task<IValueProvider> CreateValueProviderAsync(HttpRequest request)
private static async Task AddValueProviderAsync(ValueProviderFactoryContext context)
{
return new FormValueProvider(
var request = context.ActionContext.HttpContext.Request;
var valueProvider = new FormValueProvider(
BindingSource.Form,
await request.ReadFormAsync(),
CultureInfo.CurrentCulture);
context.ValueProviders.Add(valueProvider);
}
}
}

View File

@ -19,28 +19,32 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
public class JQueryFormValueProviderFactory : IValueProviderFactory
{
/// <inheritdoc />
public Task<IValueProvider> GetValueProviderAsync(ActionContext context)
public Task CreateValueProviderAsync(ValueProviderFactoryContext context)
{
if (context == null)
{
throw new ArgumentNullException(nameof(context));
}
var request = context.HttpContext.Request;
var request = context.ActionContext.HttpContext.Request;
if (request.HasFormContentType)
{
return CreateValueProviderAsync(request);
// Allocating a Task only when the body is form data.
return AddValueProviderAsync(context);
}
return TaskCache<IValueProvider>.DefaultCompletedTask;
return TaskCache.CompletedTask;
}
private static async Task<IValueProvider> CreateValueProviderAsync(HttpRequest request)
private static async Task AddValueProviderAsync(ValueProviderFactoryContext context)
{
return new JQueryFormValueProvider(
var request = context.ActionContext.HttpContext.Request;
var valueProvider = new JQueryFormValueProvider(
BindingSource.Form,
await GetValueCollectionAsync(request),
CultureInfo.CurrentCulture);
context.ValueProviders.Add(valueProvider);
}
private static async Task<IDictionary<string, StringValues>> GetValueCollectionAsync(HttpRequest request)

View File

@ -82,7 +82,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Metadata
if (_details.BindingMetadata == null)
{
var context = new BindingMetadataProviderContext(Identity, _details.ModelAttributes);
_detailsProvider.GetBindingMetadata(context);
_detailsProvider.CreateBindingMetadata(context);
_details.BindingMetadata = context.BindingMetadata;
}
@ -103,7 +103,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Metadata
if (_details.DisplayMetadata == null)
{
var context = new DisplayMetadataProviderContext(Identity, _details.ModelAttributes);
_detailsProvider.GetDisplayMetadata(context);
_detailsProvider.CreateDisplayMetadata(context);
_details.DisplayMetadata = context.DisplayMetadata;
}
@ -124,7 +124,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Metadata
if (_details.ValidationMetadata == null)
{
var context = new ValidationMetadataProviderContext(Identity, _details.ModelAttributes);
_detailsProvider.GetValidationMetadata(context);
_detailsProvider.CreateValidationMetadata(context);
_details.ValidationMetadata = context.ValidationMetadata;
}

View File

@ -9,9 +9,9 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Metadata
public interface IBindingMetadataProvider : IMetadataDetailsProvider
{
/// <summary>
/// Gets the values for properties of <see cref="DisplayMetadata"/>.
/// Sets the values for properties of <see cref="BindingMetadataProviderContext.BindingMetadata"/>.
/// </summary>
/// <param name="context">The <see cref="BindingMetadataProviderContext"/>.</param>
void GetBindingMetadata(BindingMetadataProviderContext context);
void CreateBindingMetadata(BindingMetadataProviderContext context);
}
}

View File

@ -9,9 +9,9 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Metadata
public interface IDisplayMetadataProvider : IMetadataDetailsProvider
{
/// <summary>
/// Gets the values for properties of <see cref="DisplayMetadata"/>.
/// Sets the values for properties of <see cref="DisplayMetadataProviderContext.DisplayMetadata"/>.
/// </summary>
/// <param name="context">The <see cref="DisplayMetadataProviderContext"/>.</param>
void GetDisplayMetadata(DisplayMetadataProviderContext context);
void CreateDisplayMetadata(DisplayMetadataProviderContext context);
}
}

View File

@ -12,6 +12,6 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Metadata
/// Gets the values for properties of <see cref="ValidationMetadata"/>.
/// </summary>
/// <param name="context">The <see cref="ValidationMetadataProviderContext"/>.</param>
void GetValidationMetadata(ValidationMetadataProviderContext context);
void CreateValidationMetadata(ValidationMetadataProviderContext context);
}
}

View File

@ -4,6 +4,7 @@
using System;
using System.Globalization;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc.Internal;
namespace Microsoft.AspNetCore.Mvc.ModelBinding
{
@ -14,17 +15,21 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
public class QueryStringValueProviderFactory : IValueProviderFactory
{
/// <inheritdoc />
public Task<IValueProvider> GetValueProviderAsync(ActionContext context)
public Task CreateValueProviderAsync(ValueProviderFactoryContext context)
{
if (context == null)
{
throw new ArgumentNullException(nameof(context));
}
return Task.FromResult<IValueProvider>(new QueryStringValueProvider(
var valueProvider = new QueryStringValueProvider(
BindingSource.Query,
context.HttpContext.Request.Query,
CultureInfo.InvariantCulture));
context.ActionContext.HttpContext.Request.Query,
CultureInfo.InvariantCulture);
context.ValueProviders.Add(valueProvider);
return TaskCache.CompletedTask;
}
}
}

View File

@ -3,6 +3,7 @@
using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc.Internal;
namespace Microsoft.AspNetCore.Mvc.ModelBinding
{
@ -12,16 +13,20 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
public class RouteValueProviderFactory : IValueProviderFactory
{
/// <inheritdoc />
public Task<IValueProvider> GetValueProviderAsync(ActionContext context)
public Task CreateValueProviderAsync(ValueProviderFactoryContext context)
{
if (context == null)
{
throw new ArgumentNullException(nameof(context));
}
return Task.FromResult<IValueProvider>(new RouteValueProvider(
var valueProvider = new RouteValueProvider(
BindingSource.Path,
context.RouteData.Values));
context.ActionContext.RouteData.Values);
context.ValueProviders.Add(valueProvider);
return TaskCache.CompletedTask;
}
}
}

View File

@ -33,7 +33,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation
public IReadOnlyList<IClientModelValidatorProvider> ValidatorProviders { get; }
/// <inheritdoc />
public void GetValidators(ClientValidatorProviderContext context)
public void CreateValidators(ClientValidatorProviderContext context)
{
if (context == null)
{
@ -43,7 +43,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation
// Perf: Avoid allocations
for (var i = 0; i < ValidatorProviders.Count; i++)
{
ValidatorProviders[i].GetValidators(context);
ValidatorProviders[i].CreateValidators(context);
}
}
}

View File

@ -33,12 +33,12 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation
public IList<IModelValidatorProvider> ValidatorProviders { get; }
/// <inheritdoc />
public void GetValidators(ModelValidatorProviderContext context)
public void CreateValidators(ModelValidatorProviderContext context)
{
// Perf: Avoid allocations
for (var i = 0; i < ValidatorProviders.Count; i++)
{
ValidatorProviders[i].GetValidators(context);
ValidatorProviders[i].CreateValidators(context);
}
}
}

View File

@ -59,7 +59,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation
public string FullTypeName { get; }
/// <inheritdoc />
public void GetValidationMetadata(ValidationMetadataProviderContext context)
public void CreateValidationMetadata(ValidationMetadataProviderContext context)
{
if (context == null)
{

View File

@ -48,7 +48,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
}
/// <inheritdoc />
public void GetValidators(ClientValidatorProviderContext context)
public void CreateValidators(ClientValidatorProviderContext context)
{
if (context == null)
{

View File

@ -21,7 +21,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
IValidationMetadataProvider
{
/// <inheritdoc />
public void GetBindingMetadata(BindingMetadataProviderContext context)
public void CreateBindingMetadata(BindingMetadataProviderContext context)
{
if (context == null)
{
@ -36,7 +36,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
}
/// <inheritdoc />
public void GetDisplayMetadata(DisplayMetadataProviderContext context)
public void CreateDisplayMetadata(DisplayMetadataProviderContext context)
{
if (context == null)
{
@ -219,7 +219,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
}
/// <inheritdoc />
public void GetValidationMetadata(ValidationMetadataProviderContext context)
public void CreateValidationMetadata(ValidationMetadataProviderContext context)
{
if (context == null)
{

View File

@ -49,7 +49,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
_stringLocalizerFactory = stringLocalizerFactory;
}
public void GetValidators(ModelValidatorProviderContext context)
public void CreateValidators(ModelValidatorProviderContext context)
{
IStringLocalizer stringLocalizer = null;
if (_stringLocalizerFactory != null && _options.Value.DataAnnotationLocalizerProvider != null)

View File

@ -16,7 +16,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
public class DefaultClientModelValidatorProvider : IClientModelValidatorProvider
{
/// <inheritdoc />
public void GetValidators(ClientValidatorProviderContext context)
public void CreateValidators(ClientValidatorProviderContext context)
{
if (context == null)
{

View File

@ -13,7 +13,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
public class NumericClientModelValidatorProvider : IClientModelValidatorProvider
{
/// <inheritdoc />
public void GetValidators(ClientValidatorProviderContext context)
public void CreateValidators(ClientValidatorProviderContext context)
{
if (context == null)
{

View File

@ -14,7 +14,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Metadata
public class DataMemberRequiredBindingMetadataProvider : IBindingMetadataProvider
{
/// <inheritdoc />
public void GetBindingMetadata(BindingMetadataProviderContext context)
public void CreateBindingMetadata(BindingMetadataProviderContext context)
{
if (context == null)
{

View File

@ -1509,7 +1509,7 @@ namespace Microsoft.AspNetCore.Mvc.Core.Test
validator1.Validator = validator.Object;
var provider = new Mock<IModelValidatorProvider>();
provider.Setup(v => v.GetValidators(It.IsAny<ModelValidatorProviderContext>()))
provider.Setup(v => v.CreateValidators(It.IsAny<ModelValidatorProviderContext>()))
.Callback<ModelValidatorProviderContext>(c => c.Results.Add(validator1));
var binder = new StubModelBinder();
@ -1546,7 +1546,7 @@ namespace Microsoft.AspNetCore.Mvc.Core.Test
validator1.Validator = validator.Object;
var provider = new Mock<IModelValidatorProvider>();
provider.Setup(v => v.GetValidators(It.IsAny<ModelValidatorProviderContext>()))
provider.Setup(v => v.CreateValidators(It.IsAny<ModelValidatorProviderContext>()))
.Callback<ModelValidatorProviderContext>(c => c.Results.Add(validator1));
var binder = new StubModelBinder();

View File

@ -81,7 +81,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
private class ProviderWithNonReusableValidators : IClientModelValidatorProvider
{
public void GetValidators(ClientValidatorProviderContext context)
public void CreateValidators(ClientValidatorProviderContext context)
{
for (var i = 0; i < context.Results.Count; i++)
{

View File

@ -11,7 +11,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
public class DefaultModelMetadataBindingDetailsProviderTest
{
[Fact]
public void GetBindingDetails_FindsBinderTypeProvider()
public void CreateBindingDetails_FindsBinderTypeProvider()
{
// Arrange
var attributes = new object[]
@ -27,14 +27,14 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.Equal(typeof(HeaderModelBinder), context.BindingMetadata.BinderType);
}
[Fact]
public void GetBindingDetails_FindsBinderTypeProvider_IfNullFallsBack()
public void CreateBindingDetails_FindsBinderTypeProvider_IfNullFallsBack()
{
// Arrange
var attributes = new object[]
@ -51,14 +51,14 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.Equal(typeof(HeaderModelBinder), context.BindingMetadata.BinderType);
}
[Fact]
public void GetBindingDetails_FindsModelName()
public void CreateBindingDetails_FindsModelName()
{
// Arrange
var attributes = new object[]
@ -74,14 +74,14 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.Equal("Product", context.BindingMetadata.BinderModelName);
}
[Fact]
public void GetBindingDetails_FindsModelName_IfNullFallsBack()
public void CreateBindingDetails_FindsModelName_IfNullFallsBack()
{
// Arrange
var attributes = new object[]
@ -98,14 +98,14 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.Equal("Product", context.BindingMetadata.BinderModelName);
}
[Fact]
public void GetBindingDetails_FindsBindingSource()
public void CreateBindingDetails_FindsBindingSource()
{
// Arrange
var attributes = new object[]
@ -121,14 +121,14 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.Equal(BindingSource.Body, context.BindingMetadata.BindingSource);
}
[Fact]
public void GetBindingDetails_FindsBindingSource_IfNullFallsBack()
public void CreateBindingDetails_FindsBindingSource_IfNullFallsBack()
{
// Arrange
var attributes = new object[]
@ -145,14 +145,14 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.Equal(BindingSource.Body, context.BindingMetadata.BindingSource);
}
[Fact]
public void GetBindingDetails_FindsBindingBehaviorNever_OnProperty()
public void CreateBindingDetails_FindsBindingBehaviorNever_OnProperty()
{
// Arrange
var propertyAttributes = new object[]
@ -167,7 +167,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.False(context.BindingMetadata.IsBindingAllowed);
@ -175,7 +175,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
public void GetBindingDetails_FindsBindNever_OnProperty()
public void CreateBindingDetails_FindsBindNever_OnProperty()
{
// Arrange
var propertyAttributes = new object[]
@ -190,7 +190,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.False(context.BindingMetadata.IsBindingAllowed);
@ -198,7 +198,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
public void GetBindingDetails_FindsBindingBehaviorOptional_OnProperty()
public void CreateBindingDetails_FindsBindingBehaviorOptional_OnProperty()
{
// Arrange
var propertyAttributes = new object[]
@ -213,7 +213,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.True(context.BindingMetadata.IsBindingAllowed);
@ -221,7 +221,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
public void GetBindingDetails_FindsBindingBehaviorRequired_OnProperty()
public void CreateBindingDetails_FindsBindingBehaviorRequired_OnProperty()
{
// Arrange
var propertyAttributes = new object[]
@ -236,7 +236,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.True(context.BindingMetadata.IsBindingAllowed);
@ -244,7 +244,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
public void GetBindingDetails_FindsBindRequired_OnProperty()
public void CreateBindingDetails_FindsBindRequired_OnProperty()
{
// Arrange
var propertyAttributes = new object[]
@ -259,7 +259,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.True(context.BindingMetadata.IsBindingAllowed);
@ -269,7 +269,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
// These attributes have conflicting behavior - the 'required' behavior should be used because
// of ordering.
[Fact]
public void GetBindingDetails_UsesFirstAttribute()
public void CreateBindingDetails_UsesFirstAttribute()
{
// Arrange
var propertyAttributes = new object[]
@ -285,7 +285,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.True(context.BindingMetadata.IsBindingAllowed);
@ -293,7 +293,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
public void GetBindingDetails_FindsBindRequired_OnContainerClass()
public void CreateBindingDetails_FindsBindRequired_OnContainerClass()
{
// Arrange
var context = new BindingMetadataProviderContext(
@ -303,7 +303,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.True(context.BindingMetadata.IsBindingAllowed);
@ -311,7 +311,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
public void GetBindingDetails_FindsBindNever_OnContainerClass()
public void CreateBindingDetails_FindsBindNever_OnContainerClass()
{
// Arrange
var context = new BindingMetadataProviderContext(
@ -321,7 +321,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.False(context.BindingMetadata.IsBindingAllowed);
@ -329,7 +329,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
public void GetBindingDetails_FindsBindNever_OnBaseClass()
public void CreateBindingDetails_FindsBindNever_OnBaseClass()
{
// Arrange
var context = new BindingMetadataProviderContext(
@ -339,7 +339,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.False(context.BindingMetadata.IsBindingAllowed);
@ -347,7 +347,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
public void GetBindingDetails_OverrideBehaviorOnClass_OverrideWithOptional()
public void CreateBindingDetails_OverrideBehaviorOnClass_OverrideWithOptional()
{
// Arrange
var propertyAttributes = new object[]
@ -362,7 +362,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.True(context.BindingMetadata.IsBindingAllowed);
@ -370,7 +370,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
public void GetBindingDetails_OverrideBehaviorOnClass_OverrideWithRequired()
public void CreateBindingDetails_OverrideBehaviorOnClass_OverrideWithRequired()
{
// Arrange
var propertyAttributes = new object[]
@ -385,7 +385,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.True(context.BindingMetadata.IsBindingAllowed);
@ -393,7 +393,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
public void GetBindingDetails_OverrideInheritedBehaviorOnClass_OverrideWithRequired()
public void CreateBindingDetails_OverrideInheritedBehaviorOnClass_OverrideWithRequired()
{
// Arrange
var propertyAttributes = new object[]
@ -408,7 +408,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.True(context.BindingMetadata.IsBindingAllowed);
@ -416,7 +416,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
public void GetBindingDetails_OverrideBehaviorOnClass_OverrideWithNever()
public void CreateBindingDetails_OverrideBehaviorOnClass_OverrideWithNever()
{
// Arrange
var propertyAttributes = new object[]
@ -431,7 +431,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.False(context.BindingMetadata.IsBindingAllowed);
@ -440,7 +440,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
// This overrides an inherited class-level attribute with a different class-level attribute.
[Fact]
public void GetBindingDetails_OverrideBehaviorOnBaseClass_OverrideWithRequired_OnClass()
public void CreateBindingDetails_OverrideBehaviorOnBaseClass_OverrideWithRequired_OnClass()
{
// Arrange
var context = new BindingMetadataProviderContext(
@ -450,7 +450,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.True(context.BindingMetadata.IsBindingAllowed);
@ -460,7 +460,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
[Theory]
[InlineData(true)]
[InlineData(false)]
public void GetBindingDetails_BindingBehaviorLeftAlone_ForTypeMetadata(bool initialValue)
public void CreateBindingDetails_BindingBehaviorLeftAlone_ForTypeMetadata(bool initialValue)
{
// Arrange
var attributes = new object[]
@ -479,7 +479,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.Equal(initialValue, context.BindingMetadata.IsBindingAllowed);
@ -491,7 +491,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
[Theory]
[InlineData(true)]
[InlineData(false)]
public void GetBindingDetails_BindingBehaviorLeftAlone_ForAttributeOnPropertyType(bool initialValue)
public void CreateBindingDetails_BindingBehaviorLeftAlone_ForAttributeOnPropertyType(bool initialValue)
{
// Arrange
var typeAttributes = new object[]
@ -510,7 +510,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.Equal(initialValue, context.BindingMetadata.IsBindingAllowed);

View File

@ -16,7 +16,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
public class DefaultModelValidatorProviderTest
{
[Fact]
public void GetValidators_ForIValidatableObject()
public void CreateValidators_ForIValidatableObject()
{
// Arrange
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
@ -26,7 +26,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var context = new ModelValidatorProviderContext(metadata, GetValidatorItems(metadata));
// Act
validatorProvider.GetValidators(context);
validatorProvider.CreateValidators(context);
// Assert
var validatorItems = context.Results;
@ -36,7 +36,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
public void GetValidators_ModelValidatorAttributeOnClass()
public void CreateValidators_ModelValidatorAttributeOnClass()
{
// Arrange
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
@ -46,7 +46,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var context = new ModelValidatorProviderContext(metadata, GetValidatorItems(metadata));
// Act
validatorProvider.GetValidators(context);
validatorProvider.CreateValidators(context);
// Assert
var validatorItems = context.Results;
@ -56,7 +56,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
public void GetValidators_ModelValidatorAttributeOnProperty()
public void CreateValidators_ModelValidatorAttributeOnProperty()
{
// Arrange
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
@ -68,7 +68,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var context = new ModelValidatorProviderContext(metadata, GetValidatorItems(metadata));
// Act
validatorProvider.GetValidators(context);
validatorProvider.CreateValidators(context);
// Assert
var validatorItems = context.Results;
@ -78,7 +78,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
public void GetValidators_ModelValidatorAttributeOnPropertyAndClass()
public void CreateValidators_ModelValidatorAttributeOnPropertyAndClass()
{
// Arrange
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
@ -90,7 +90,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var context = new ModelValidatorProviderContext(metadata, GetValidatorItems(metadata));
// Act
validatorProvider.GetValidators(context);
validatorProvider.CreateValidators(context);
// Assert
var validatorItems = context.Results;
@ -101,7 +101,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
public void GetValidators_FromModelMetadataType_SingleValidator()
public void CreateValidators_FromModelMetadataType_SingleValidator()
{
// Arrange
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
@ -113,7 +113,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var context = new ModelValidatorProviderContext(metadata, GetValidatorItems(metadata));
// Act
validatorProvider.GetValidators(context);
validatorProvider.CreateValidators(context);
// Assert
var validatorItems = context.Results;
@ -123,7 +123,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
public void GetValidators_FromModelMetadataType_MergedValidators()
public void CreateValidators_FromModelMetadataType_MergedValidators()
{
// Arrange
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
@ -135,7 +135,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var context = new ModelValidatorProviderContext(metadata, GetValidatorItems(metadata));
// Act
validatorProvider.GetValidators(context);
validatorProvider.CreateValidators(context);
// Assert
var validatorItems = context.Results;

View File

@ -81,7 +81,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
private class ProviderWithNonReusableValidators : IModelValidatorProvider
{
public void GetValidators(ModelValidatorProviderContext context)
public void CreateValidators(ModelValidatorProviderContext context)
{
for (var i = 0; i < context.Results.Count; i++)
{

View File

@ -23,10 +23,10 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Test
var factory = new FormValueProviderFactory();
// Act
var result = await factory.GetValueProviderAsync(context);
await factory.CreateValueProviderAsync(context);
// Assert
Assert.Null(result);
Assert.Empty(context.ValueProviders);
}
[Theory]
@ -41,14 +41,14 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Test
var factory = new FormValueProviderFactory();
// Act
var result = await factory.GetValueProviderAsync(context);
await factory.CreateValueProviderAsync(context);
// Assert
var valueProvider = Assert.IsType<FormValueProvider>(result);
var valueProvider = Assert.IsType<FormValueProvider>(Assert.Single(context.ValueProviders));
Assert.Equal(CultureInfo.CurrentCulture, valueProvider.Culture);
}
private static ActionContext CreateContext(string contentType)
private static ValueProviderFactoryContext CreateContext(string contentType)
{
var context = new DefaultHttpContext();
context.Request.ContentType = contentType;
@ -58,7 +58,9 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Test
context.Request.Form = new FormCollection(new Dictionary<string, StringValues>());
}
return new ActionContext(context, new RouteData(), new ActionDescriptor());
var actionContext = new ActionContext(context, new RouteData(), new ActionDescriptor());
return new ValueProviderFactoryContext(actionContext);
}
}
}

View File

@ -47,10 +47,10 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Test
var factory = new JQueryFormValueProviderFactory();
// Act
var result = await factory.GetValueProviderAsync(context);
await factory.CreateValueProviderAsync(context);
// Assert
Assert.Null(result);
Assert.Empty(context.ValueProviders);
}
[Theory]
@ -58,17 +58,17 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Test
[InlineData("application/x-www-form-urlencoded;charset=utf-8")]
[InlineData("multipart/form-data; boundary=----WebKitFormBoundarymx2fSWqWSd0OxQqq")]
[InlineData("multipart/form-data; boundary=----WebKitFormBoundarymx2fSWqWSd0OxQqq; charset=utf-8")]
public async Task GetValueProviderAsync_ReturnsValueProvider_WithCurrentCulture(string contentType)
public async Task CreateValueProviderAsync_ReturnsValueProvider_WithCurrentCulture(string contentType)
{
// Arrange
var context = CreateContext(contentType, formValues: null);
var factory = new JQueryFormValueProviderFactory();
// Act
var result = await factory.GetValueProviderAsync(context);
await factory.CreateValueProviderAsync(context);
// Assert
var valueProvider = Assert.IsType<JQueryFormValueProvider>(result);
var valueProvider = Assert.IsType<JQueryFormValueProvider>(Assert.Single(context.ValueProviders));
Assert.Equal(CultureInfo.CurrentCulture, valueProvider.Culture);
}
@ -109,14 +109,15 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Test
var factory = new JQueryFormValueProviderFactory();
// Act
var valueProvider = await factory.GetValueProviderAsync(context);
var result = valueProvider.GetValue(key);
await factory.CreateValueProviderAsync(context);
// Assert
var valueProvider = Assert.Single(context.ValueProviders);
var result = valueProvider.GetValue(key);
Assert.Equal("found", (string)result);
}
private static ActionContext CreateContext(string contentType, Dictionary<string, StringValues> formValues)
private static ValueProviderFactoryContext CreateContext(string contentType, Dictionary<string, StringValues> formValues)
{
var context = new DefaultHttpContext();
context.Request.ContentType = contentType;
@ -126,7 +127,9 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Test
context.Request.Form = new FormCollection(formValues ?? new Dictionary<string, StringValues>());
}
return new ActionContext(context, new RouteData(), new ActionDescriptor());
var actionContext = new ActionContext(context, new RouteData(), new ActionDescriptor());
return new ValueProviderFactoryContext(actionContext);
}
}
}

View File

@ -23,7 +23,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Metadata
var context = new ValidationMetadataProviderContext(key, new ModelAttributes(attributes, new object[0]));
// Act
provider.GetValidationMetadata(context);
provider.CreateValidationMetadata(context);
// Assert
var validatorMetadata = Assert.Single(context.ValidationMetadata.ValidatorMetadata);
@ -42,7 +42,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Metadata
var context = new ValidationMetadataProviderContext(key, new ModelAttributes(attributes, new object[0]));
// Act
provider.GetValidationMetadata(context);
provider.CreateValidationMetadata(context);
// Assert
var validatorMetadata = Assert.Single(context.ValidationMetadata.ValidatorMetadata);
@ -62,7 +62,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Metadata
context.ValidationMetadata.ValidatorMetadata.Add(attribute);
// Act
provider.GetValidationMetadata(context);
provider.CreateValidationMetadata(context);
// Assert
var validatorMetadata = Assert.Single(context.ValidationMetadata.ValidatorMetadata);

View File

@ -24,13 +24,14 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Test
context.SetupGet(c => c.Items).Returns(new Dictionary<object, object>());
context.SetupGet(c => c.Request).Returns(request.Object);
var actionContext = new ActionContext(context.Object, new RouteData(), new ActionDescriptor());
var factoryContext = new ValueProviderFactoryContext(actionContext);
var factory = new QueryStringValueProviderFactory();
// Act
var result = await factory.GetValueProviderAsync(actionContext);
await factory.CreateValueProviderAsync(factoryContext);
// Assert
var valueProvider = Assert.IsType<QueryStringValueProvider>(result);
var valueProvider = Assert.IsType<QueryStringValueProvider>(Assert.Single(factoryContext.ValueProviders));
Assert.Equal(CultureInfo.InvariantCulture, valueProvider.Culture);
}
}

View File

@ -20,7 +20,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation
var validator3 = new ValidatorItem(validatorMetadata);
var provider1 = new Mock<IModelValidatorProvider>();
provider1.Setup(p => p.GetValidators(It.IsAny<ModelValidatorProviderContext>()))
provider1.Setup(p => p.CreateValidators(It.IsAny<ModelValidatorProviderContext>()))
.Callback<ModelValidatorProviderContext>(c =>
{
c.Results.Add(validator1);
@ -28,7 +28,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation
});
var provider2 = new Mock<IModelValidatorProvider>();
provider2.Setup(p => p.GetValidators(It.IsAny<ModelValidatorProviderContext>()))
provider2.Setup(p => p.CreateValidators(It.IsAny<ModelValidatorProviderContext>()))
.Callback<ModelValidatorProviderContext>(c =>
{
c.Results.Add(validator3);
@ -39,7 +39,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation
// Act
var validatorProviderContext = new ModelValidatorProviderContext(modelMetadata, new List<ValidatorItem>());
compositeModelValidator.GetValidators(validatorProviderContext);
compositeModelValidator.CreateValidators(validatorProviderContext);
// Assert
Assert.Equal(

View File

@ -15,7 +15,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
private readonly IModelMetadataProvider _metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
[Fact]
public void GetValidators_AddsRequiredAttribute_ForIsRequiredTrue()
public void CreateValidators_AddsRequiredAttribute_ForIsRequiredTrue()
{
// Arrange
var provider = new DataAnnotationsClientModelValidatorProvider(
@ -30,7 +30,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var providerContext = new ClientValidatorProviderContext(metadata, GetValidatorItems(metadata));
// Act
provider.GetValidators(providerContext);
provider.CreateValidators(providerContext);
// Assert
var validatorItem = Assert.Single(providerContext.Results);
@ -38,7 +38,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
}
[Fact]
public void GetValidators_DoesNotAddDuplicateRequiredAttribute_ForIsRequiredTrue()
public void CreateValidators_DoesNotAddDuplicateRequiredAttribute_ForIsRequiredTrue()
{
// Arrange
var provider = new DataAnnotationsClientModelValidatorProvider(
@ -61,7 +61,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var providerContext = new ClientValidatorProviderContext(metadata, items);
// Act
provider.GetValidators(providerContext);
provider.CreateValidators(providerContext);
// Assert
var validatorItem = Assert.Single(providerContext.Results);
@ -69,7 +69,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
}
[Fact]
public void GetValidators_DoesNotAddRequiredAttribute_ForIsRequiredFalse()
public void CreateValidators_DoesNotAddRequiredAttribute_ForIsRequiredFalse()
{
// Arrange
var provider = new DataAnnotationsClientModelValidatorProvider(
@ -84,14 +84,14 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var providerContext = new ClientValidatorProviderContext(metadata, GetValidatorItems(metadata));
// Act
provider.GetValidators(providerContext);
provider.CreateValidators(providerContext);
// Assert
Assert.Empty(providerContext.Results);
}
[Fact]
public void GetValidators_DoesNotAddExtraRequiredAttribute_IfAttributeIsSpecifiedExplicitly()
public void CreateValidators_DoesNotAddExtraRequiredAttribute_IfAttributeIsSpecifiedExplicitly()
{
// Arrange
var provider = new DataAnnotationsClientModelValidatorProvider(
@ -106,7 +106,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var providerContext = new ClientValidatorProviderContext(metadata, GetValidatorItems(metadata));
// Act
provider.GetValidators(providerContext);
provider.CreateValidators(providerContext);
// Assert
var validatorItem = Assert.Single(providerContext.Results);
@ -127,7 +127,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var providerContext = new ClientValidatorProviderContext(metadata, GetValidatorItems(metadata));
// Act
provider.GetValidators(providerContext);
provider.CreateValidators(providerContext);
// Assert
var validatorItem = Assert.Single(providerContext.Results);

View File

@ -52,7 +52,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
[Theory]
[MemberData(nameof(DisplayDetailsData))]
public void GetDisplayMetadata_SimpleAttributes(
public void CreateDisplayMetadata_SimpleAttributes(
object attribute,
Func<DisplayMetadata, object> accessor,
object expected)
@ -64,7 +64,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var context = new DisplayMetadataProviderContext(key, new ModelAttributes(new object[] { attribute }));
// Act
provider.GetDisplayMetadata(context);
provider.CreateDisplayMetadata(context);
// Assert
var value = accessor(context.DisplayMetadata);
@ -72,7 +72,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
}
[Fact]
public void GetDisplayMetadata_FindsDisplayFormat_FromDataType()
public void CreateDisplayMetadata_FindsDisplayFormat_FromDataType()
{
// Arrange
var provider = new DataAnnotationsMetadataProvider();
@ -85,14 +85,14 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var context = new DisplayMetadataProviderContext(key, new ModelAttributes(attributes));
// Act
provider.GetDisplayMetadata(context);
provider.CreateDisplayMetadata(context);
// Assert
Assert.Same(displayFormat.DataFormatString, context.DisplayMetadata.DisplayFormatString);
}
[Fact]
public void GetDisplayMetadata_FindsDisplayFormat_OverridingDataType()
public void CreateDisplayMetadata_FindsDisplayFormat_OverridingDataType()
{
// Arrange
var provider = new DataAnnotationsMetadataProvider();
@ -108,14 +108,14 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var context = new DisplayMetadataProviderContext(key, new ModelAttributes(attributes));
// Act
provider.GetDisplayMetadata(context);
provider.CreateDisplayMetadata(context);
// Assert
Assert.Same(displayFormat.DataFormatString, context.DisplayMetadata.DisplayFormatString);
}
[Fact]
public void GetBindingMetadata_EditableAttributeFalse_SetsReadOnlyTrue()
public void CreateBindingMetadata_EditableAttributeFalse_SetsReadOnlyTrue()
{
// Arrange
var provider = new DataAnnotationsMetadataProvider();
@ -127,14 +127,14 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var context = new BindingMetadataProviderContext(key, new ModelAttributes(attributes));
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.True(context.BindingMetadata.IsReadOnly);
}
[Fact]
public void GetBindingMetadata_EditableAttributeTrue_SetsReadOnlyFalse()
public void CreateBindingMetadata_EditableAttributeTrue_SetsReadOnlyFalse()
{
// Arrange
var provider = new DataAnnotationsMetadataProvider();
@ -146,7 +146,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var context = new BindingMetadataProviderContext(key, new ModelAttributes(attributes));
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.False(context.BindingMetadata.IsReadOnly);
@ -155,7 +155,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
// This is IMPORTANT. Product code needs to use GetName() instead of .Name. It's easy to regress.
[Fact]
public void GetDisplayMetadata_DisplayAttribute_NameFromResources()
public void CreateDisplayMetadata_DisplayAttribute_NameFromResources()
{
// Arrange
var provider = new DataAnnotationsMetadataProvider();
@ -176,7 +176,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var context = new DisplayMetadataProviderContext(key, new ModelAttributes(attributes));
// Act
provider.GetDisplayMetadata(context);
provider.CreateDisplayMetadata(context);
// Assert
Assert.Equal("name from resources", context.DisplayMetadata.DisplayName());
@ -184,7 +184,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
// This is IMPORTANT. Product code needs to use GetDescription() instead of .Description. It's easy to regress.
[Fact]
public void GetDisplayMetadata_DisplayAttribute_DescriptionFromResources()
public void CreateDisplayMetadata_DisplayAttribute_DescriptionFromResources()
{
// Arrange
var provider = new DataAnnotationsMetadataProvider();
@ -205,7 +205,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var context = new DisplayMetadataProviderContext(key, new ModelAttributes(attributes));
// Act
provider.GetDisplayMetadata(context);
provider.CreateDisplayMetadata(context);
// Assert
Assert.Equal("description from resources", context.DisplayMetadata.Description());
@ -229,7 +229,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
[InlineData(typeof(StructWithFields), false)]
[InlineData(typeof(StructWithFields?), false)]
[InlineData(typeof(StructWithProperties), false)]
public void GetDisplayMetadata_IsEnum_ReflectsModelType(Type type, bool expectedIsEnum)
public void CreateDisplayMetadata_IsEnum_ReflectsModelType(Type type, bool expectedIsEnum)
{
// Arrange
var provider = new DataAnnotationsMetadataProvider();
@ -239,7 +239,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var context = new DisplayMetadataProviderContext(key, new ModelAttributes(attributes));
// Act
provider.GetDisplayMetadata(context);
provider.CreateDisplayMetadata(context);
// Assert
Assert.Equal(expectedIsEnum, context.DisplayMetadata.IsEnum);
@ -263,7 +263,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
[InlineData(typeof(StructWithFields), false)]
[InlineData(typeof(StructWithFields?), false)]
[InlineData(typeof(StructWithProperties), false)]
public void GetDisplayMetadata_IsFlagsEnum_ReflectsModelType(Type type, bool expectedIsFlagsEnum)
public void CreateDisplayMetadata_IsFlagsEnum_ReflectsModelType(Type type, bool expectedIsFlagsEnum)
{
// Arrange
var provider = new DataAnnotationsMetadataProvider();
@ -273,7 +273,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var context = new DisplayMetadataProviderContext(key, new ModelAttributes(attributes));
// Act
provider.GetDisplayMetadata(context);
provider.CreateDisplayMetadata(context);
// Assert
Assert.Equal(expectedIsFlagsEnum, context.DisplayMetadata.IsFlagsEnum);
@ -393,7 +393,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
[Theory]
[MemberData(nameof(EnumNamesData))]
public void GetDisplayMetadata_EnumNamesAndValues_ReflectsModelType(
public void CreateDisplayMetadata_EnumNamesAndValues_ReflectsModelType(
Type type,
IReadOnlyDictionary<string, string> expectedDictionary)
{
@ -405,7 +405,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var context = new DisplayMetadataProviderContext(key, new ModelAttributes(attributes));
// Act
provider.GetDisplayMetadata(context);
provider.CreateDisplayMetadata(context);
// Assert
// This assertion does *not* require entry orders to match.
@ -527,7 +527,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
[Theory]
[MemberData(nameof(EnumDisplayNamesData))]
public void GetDisplayMetadata_EnumGroupedDisplayNamesAndValues_ReflectsModelType(
public void CreateDisplayMetadata_EnumGroupedDisplayNamesAndValues_ReflectsModelType(
Type type,
IEnumerable<KeyValuePair<EnumGroupAndName, string>> expectedKeyValuePairs)
{
@ -539,7 +539,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var context = new DisplayMetadataProviderContext(key, new ModelAttributes(attributes));
// Act
provider.GetDisplayMetadata(context);
provider.CreateDisplayMetadata(context);
// Assert
// OrderBy is used because the order of the results may very depending on the platform / client.
@ -551,7 +551,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
}
[Fact]
public void GetValidationMetadata_RequiredAttribute_SetsIsRequiredToTrue()
public void CreateValidationMetadata_RequiredAttribute_SetsIsRequiredToTrue()
{
// Arrange
var provider = new DataAnnotationsMetadataProvider();
@ -563,7 +563,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var context = new ValidationMetadataProviderContext(key, new ModelAttributes(attributes, new object[0]));
// Act
provider.GetValidationMetadata(context);
provider.CreateValidationMetadata(context);
// Assert
Assert.True(context.ValidationMetadata.IsRequired);
@ -573,7 +573,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
[InlineData(true)]
[InlineData(false)]
[InlineData(null)]
public void GetValidationMetadata_NoRequiredAttribute_IsRequiredLeftAlone(bool? initialValue)
public void CreateValidationMetadata_NoRequiredAttribute_IsRequiredLeftAlone(bool? initialValue)
{
// Arrange
var provider = new DataAnnotationsMetadataProvider();
@ -584,7 +584,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
context.ValidationMetadata.IsRequired = initialValue;
// Act
provider.GetValidationMetadata(context);
provider.CreateValidationMetadata(context);
// Assert
Assert.Equal(initialValue, context.ValidationMetadata.IsRequired);
@ -594,7 +594,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
[Theory]
[InlineData(true)]
[InlineData(false)]
public void GetBindingMetadata_RequiredAttribute_IsBindingRequiredLeftAlone(bool initialValue)
public void CreateBindingMetadata_RequiredAttribute_IsBindingRequiredLeftAlone(bool initialValue)
{
// Arrange
var provider = new DataAnnotationsMetadataProvider();
@ -605,7 +605,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
context.BindingMetadata.IsBindingRequired = initialValue;
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.Equal(initialValue, context.BindingMetadata.IsBindingRequired);
@ -615,7 +615,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
[InlineData(true)]
[InlineData(false)]
[InlineData(null)]
public void GetBindingDetails_NoEditableAttribute_IsReadOnlyLeftAlone(bool? initialValue)
public void CreateBindingDetails_NoEditableAttribute_IsReadOnlyLeftAlone(bool? initialValue)
{
// Arrange
var provider = new DataAnnotationsMetadataProvider();
@ -626,14 +626,14 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
context.BindingMetadata.IsReadOnly = initialValue;
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.Equal(initialValue, context.BindingMetadata.IsReadOnly);
}
[Fact]
public void GetValidationDetails_ValidatableObject_ReturnsObject()
public void CreateValidationDetails_ValidatableObject_ReturnsObject()
{
// Arrange
var provider = new DataAnnotationsMetadataProvider();
@ -644,7 +644,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var context = new ValidationMetadataProviderContext(key, new ModelAttributes(attributes, new object[0]));
// Act
provider.GetValidationMetadata(context);
provider.CreateValidationMetadata(context);
// Assert
var validatorMetadata = Assert.Single(context.ValidationMetadata.ValidatorMetadata);
@ -652,7 +652,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
}
[Fact]
public void GetValidationDetails_ValidatableObject_AlreadyInContext_Ignores()
public void CreateValidationDetails_ValidatableObject_AlreadyInContext_Ignores()
{
// Arrange
var provider = new DataAnnotationsMetadataProvider();
@ -664,7 +664,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
context.ValidationMetadata.ValidatorMetadata.Add(attribute);
// Act
provider.GetValidationMetadata(context);
provider.CreateValidationMetadata(context);
// Assert
var validatorMetadata = Assert.Single(context.ValidationMetadata.ValidatorMetadata);

View File

@ -16,7 +16,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
private readonly IModelMetadataProvider _metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
[Fact]
public void GetValidators_ReturnsValidatorForIValidatableObject()
public void CreateValidators_ReturnsValidatorForIValidatableObject()
{
// Arrange
var provider = new DataAnnotationsModelValidatorProvider(
@ -29,7 +29,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var providerContext = new ModelValidatorProviderContext(metadata, GetValidatorItems(metadata));
// Act
provider.GetValidators(providerContext);
provider.CreateValidators(providerContext);
// Assert
var validatorItem = Assert.Single(providerContext.Results);
@ -37,7 +37,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
}
[Fact]
public void GetValidators_InsertsRequiredValidatorsFirst()
public void CreateValidators_InsertsRequiredValidatorsFirst()
{
var provider = new DataAnnotationsModelValidatorProvider(
new ValidationAttributeAdapterProvider(),
@ -50,7 +50,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var providerContext = new ModelValidatorProviderContext(metadata, GetValidatorItems(metadata));
// Act
provider.GetValidators(providerContext);
provider.CreateValidators(providerContext);
// Assert
Assert.Equal(4, providerContext.Results.Count);
@ -71,7 +71,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var providerContext = new ModelValidatorProviderContext(metadata, GetValidatorItems(metadata));
// Act
provider.GetValidators(providerContext);
provider.CreateValidators(providerContext);
// Assert
var validatorItem = providerContext.Results.Single();
@ -103,7 +103,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var providerContext = new ModelValidatorProviderContext(metadata, GetValidatorItems(metadata));
// Act
provider.GetValidators(providerContext);
provider.CreateValidators(providerContext);
// Assert
Assert.Single(providerContext.Results);

View File

@ -28,7 +28,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var context = new BindingMetadataProviderContext(key, new ModelAttributes(attributes, new object[0]));
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.True(context.BindingMetadata.IsBindingRequired);
@ -56,7 +56,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
context.BindingMetadata.IsBindingRequired = initialValue;
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.Equal(initialValue, context.BindingMetadata.IsBindingRequired);
@ -81,7 +81,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
context.BindingMetadata.IsBindingRequired = initialValue;
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.Equal(initialValue, context.BindingMetadata.IsBindingRequired);
@ -104,7 +104,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
context.BindingMetadata.IsBindingRequired = initialValue;
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.Equal(initialValue, context.BindingMetadata.IsBindingRequired);
@ -132,7 +132,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
context.BindingMetadata.IsBindingRequired = initialValue;
// Act
provider.GetBindingMetadata(context);
provider.CreateBindingMetadata(context);
// Assert
Assert.Equal(initialValue, context.BindingMetadata.IsBindingRequired);

View File

@ -21,7 +21,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
[InlineData(typeof(float?))]
[InlineData(typeof(double?))]
[InlineData(typeof(decimal?))]
public void GetValidators_GetsNumericValidator_ForNumericType(Type modelType)
public void CreateValidators_GetsNumericValidator_ForNumericType(Type modelType)
{
// Arrange
var provider = new NumericClientModelValidatorProvider();
@ -30,7 +30,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var providerContext = new ClientValidatorProviderContext(metadata, GetValidatorItems(metadata));
// Act
provider.GetValidators(providerContext);
provider.CreateValidators(providerContext);
// Assert
var validatorItem = Assert.Single(providerContext.Results);
@ -38,7 +38,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
}
[Fact]
public void GetValidators_DoesNotAddDuplicateValidators()
public void CreateValidators_DoesNotAddDuplicateValidators()
{
// Arrange
var provider = new NumericClientModelValidatorProvider();
@ -54,7 +54,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var providerContext = new ClientValidatorProviderContext(metadata, items);
// Act
provider.GetValidators(providerContext);
provider.CreateValidators(providerContext);
// Assert
var validatorItem = Assert.Single(providerContext.Results);
@ -69,7 +69,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
[InlineData(typeof(long?))]
[InlineData(typeof(string))]
[InlineData(typeof(DateTime))]
public void GetValidators_DoesNotGetsNumericValidator_ForUnsupportedTypes(Type modelType)
public void CreateValidators_DoesNotGetsNumericValidator_ForUnsupportedTypes(Type modelType)
{
// Arrange
var provider = new NumericClientModelValidatorProvider();
@ -78,7 +78,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var providerContext = new ClientValidatorProviderContext(metadata, GetValidatorItems(metadata));
// Act
provider.GetValidators(providerContext);
provider.CreateValidators(providerContext);
// Assert
Assert.Empty(providerContext.Results);

View File

@ -15,7 +15,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
public class DefaultModelClientValidatorProviderTest
{
[Fact]
public void GetValidators_ForIValidatableObject()
public void CreateValidators_ForIValidatableObject()
{
// Arrange
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
@ -25,7 +25,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var context = new ModelValidatorProviderContext(metadata, GetValidatorItems(metadata));
// Act
validatorProvider.GetValidators(context);
validatorProvider.CreateValidators(context);
// Assert
var validatorItems = context.Results;
@ -35,7 +35,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
}
[Fact]
public void GetValidators_ClientModelValidatorAttributeOnClass()
public void CreateValidators_ClientModelValidatorAttributeOnClass()
{
// Arrange
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
@ -45,7 +45,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var context = new ModelValidatorProviderContext(metadata, GetValidatorItems(metadata));
// Act
validatorProvider.GetValidators(context);
validatorProvider.CreateValidators(context);
// Assert
var validatorItems = context.Results;
@ -56,7 +56,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
}
[Fact]
public void GetValidators_ClientModelValidatorAttributeOnProperty()
public void CreateValidators_ClientModelValidatorAttributeOnProperty()
{
// Arrange
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
@ -68,7 +68,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var context = new ModelValidatorProviderContext(metadata, GetValidatorItems(metadata));
// Act
validatorProvider.GetValidators(context);
validatorProvider.CreateValidators(context);
// Assert
var validatorItems = context.Results;
@ -78,7 +78,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
}
[Fact]
public void GetValidators_ClientModelValidatorAttributeOnPropertyAndClass()
public void CreateValidators_ClientModelValidatorAttributeOnPropertyAndClass()
{
// Arrange
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
@ -90,7 +90,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var context = new ModelValidatorProviderContext(metadata, GetValidatorItems(metadata));
// Act
validatorProvider.GetValidators(context);
validatorProvider.CreateValidators(context);
// Assert
var validatorItems = context.Results;
@ -102,7 +102,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
// RangeAttribute is an example of a ValidationAttribute with it's own adapter type.
[Fact]
public void GetValidators_ClientValidatorAttribute_SpecificAdapter()
public void CreateValidators_ClientValidatorAttribute_SpecificAdapter()
{
// Arrange
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
@ -114,7 +114,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var context = new ClientValidatorProviderContext(metadata, GetClientValidatorItems(metadata));
// Act
validatorProvider.GetValidators(context);
validatorProvider.CreateValidators(context);
// Assert
var validatorItems = context.Results;
@ -125,7 +125,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
}
[Fact]
public void GetValidators_ClientValidatorAttribute_DefaultAdapter()
public void CreateValidators_ClientValidatorAttribute_DefaultAdapter()
{
// Arrange
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
@ -137,7 +137,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var context = new ClientValidatorProviderContext(metadata, GetClientValidatorItems(metadata));
// Act
validatorProvider.GetValidators(context);
validatorProvider.CreateValidators(context);
// Assert
var validatorItems = context.Results;
@ -146,7 +146,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
}
[Fact]
public void GetValidators_FromModelMetadataType_SingleValidator()
public void CreateValidators_FromModelMetadataType_SingleValidator()
{
// Arrange
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
@ -158,7 +158,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var context = new ClientValidatorProviderContext(metadata, GetClientValidatorItems(metadata));
// Act
validatorProvider.GetValidators(context);
validatorProvider.CreateValidators(context);
// Assert
var validatorItems = context.Results;
@ -169,7 +169,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
}
[Fact]
public void GetValidators_FromModelMetadataType_MergedValidators()
public void CreateValidators_FromModelMetadataType_MergedValidators()
{
// Arrange
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
@ -181,7 +181,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
var context = new ClientValidatorProviderContext(metadata, GetClientValidatorItems(metadata));
// Act
validatorProvider.GetValidators(context);
validatorProvider.CreateValidators(context);
// Assert
var validatorItems = context.Results;

View File

@ -93,14 +93,10 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
private static ControllerContext GetControllerContext(MvcOptions options, ActionContext context)
{
var valueProviders = new List<IValueProvider>();
var valueProviderFactoryContext = new ValueProviderFactoryContext(context);
foreach (var factory in options.ValueProviderFactories)
{
var valueProvider = factory.GetValueProviderAsync(context).Result;
if (valueProvider != null)
{
valueProviders.Add(valueProvider);
}
factory.CreateValueProviderAsync(valueProviderFactoryContext).GetAwaiter().GetResult();
}
return new ControllerContext(context)
@ -108,7 +104,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
InputFormatters = options.InputFormatters,
ValidatorProviders = options.ModelValidatorProviders,
ModelBinders = options.ModelBinders,
ValueProviders = valueProviders
ValueProviders = valueProviderFactoryContext.ValueProviders
};
}
}

View File

@ -127,7 +127,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
{
public List<MetadataBuilder> Builders { get; } = new List<MetadataBuilder>();
public void GetBindingMetadata(BindingMetadataProviderContext context)
public void CreateBindingMetadata(BindingMetadataProviderContext context)
{
foreach (var builder in Builders)
{
@ -135,7 +135,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
}
}
public void GetDisplayMetadata(DisplayMetadataProviderContext context)
public void CreateDisplayMetadata(DisplayMetadataProviderContext context)
{
foreach (var builder in Builders)
{
@ -143,7 +143,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
}
}
public void GetValidationMetadata(ValidationMetadataProviderContext context)
public void CreateValidationMetadata(ValidationMetadataProviderContext context)
{
foreach (var builder in Builders)
{