Make ModelBindingContext.Result non-nullable

This change simplifies a bunch of code and fits more in line with the
current design of model binding.

Now, a model binder only has to do anything if it was successful.
'return' is enough to indicate failure.
This commit is contained in:
Ryan Nowak 2016-05-20 14:44:51 -07:00
parent 88c9ae6588
commit d92b3ba2c6
51 changed files with 572 additions and 772 deletions

View File

@ -106,18 +106,15 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
/// <summary>
/// <para>
/// On completion returns a <see cref="ModelBindingResult"/> which
/// represents the result of the model binding process.
/// Gets or sets a <see cref="ModelBindingResult"/> which represents the result of the model binding process.
/// </para>
/// <para>
/// If model binding was successful, the <see cref="ModelBindingResult"/> should be a value created
/// with <see cref="ModelBindingResult.Success"/>. If model binding failed, the
/// <see cref="ModelBindingResult"/> should be a value created with <see cref="ModelBindingResult.Failed"/>.
/// If there was no data, or this model binder cannot handle the operation, the
/// <see cref="ModelBindingResult"/> should be null.
/// Before an <see cref="IModelBinder"/> is called, <see cref="Result"/> will be set to a value indicating
/// failure. The binder should set <see cref="Result"/> to a value created with
/// <see cref="ModelBindingResult.Success"/> if model binding succeeded.
/// </para>
/// </summary>
public abstract ModelBindingResult? Result { get; set; }
public abstract ModelBindingResult Result { get; set; }
/// <summary>
/// Pushes a layer of state onto this context. Model binders will call this as part of recursion when binding properties

View File

@ -85,9 +85,9 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var parameter = parameters[i];
var result = await BindModelAsync(parameter, controllerContext, valueProvider);
if (result != null && result.Value.IsModelSet)
if (result.IsModelSet)
{
arguments[parameter.Name] = result.Value.Model;
arguments[parameter.Name] = result.Model;
}
}
@ -105,18 +105,18 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var property = properties[i];
var result = await BindModelAsync(property, controllerContext, valueProvider);
if (result != null && result.Value.IsModelSet)
if (result.IsModelSet)
{
var propertyHelper = FindPropertyHelper(propertyHelpers, property);
if (propertyHelper != null)
{
ActivateProperty(property, propertyHelper, controller, result.Value.Model);
ActivateProperty(property, propertyHelper, controller, result.Model);
}
}
}
}
public async Task<ModelBindingResult?> BindModelAsync(
public async Task<ModelBindingResult> BindModelAsync(
ParameterDescriptor parameter,
ControllerContext controllerContext)
{
@ -135,7 +135,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
return await BindModelAsync(parameter, controllerContext, valueProvider);
}
public async Task<ModelBindingResult?> BindModelAsync(
public async Task<ModelBindingResult> BindModelAsync(
ParameterDescriptor parameter,
ControllerContext controllerContext,
IValueProvider valueProvider)
@ -189,13 +189,13 @@ namespace Microsoft.AspNetCore.Mvc.Internal
await binder.BindModelAsync(modelBindingContext);
var modelBindingResult = modelBindingContext.Result;
if (modelBindingResult != null && modelBindingResult.Value.IsModelSet)
if (modelBindingResult.IsModelSet)
{
_validator.Validate(
controllerContext,
modelBindingContext.ValidationState,
modelBindingContext.ModelName,
modelBindingResult.Value.Model);
modelBindingResult.Model);
}
return modelBindingResult;

View File

@ -177,7 +177,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
}
/// <inheritdoc />
public override ModelBindingResult? Result
public override ModelBindingResult Result
{
get
{
@ -303,7 +303,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
{
_stack.Push(_state);
Result = null;
Result = default(ModelBindingResult);
return new NestedScope(this);
}
@ -344,7 +344,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
public BindingSource BindingSource;
public bool IsTopLevelObject;
public ModelBindingResult? Result;
public ModelBindingResult Result;
};
}
}

View File

@ -12,7 +12,6 @@ namespace Microsoft.AspNetCore.Mvc.Internal
public Task BindModelAsync(ModelBindingContext bindingContext)
{
bindingContext.Result = ModelBindingResult.Failed();
return TaskCache.CompletedTask;
}
}

View File

@ -52,11 +52,6 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = (IModelBinder)_factory(requestServices, arguments: null);
await binder.BindModelAsync(bindingContext);
if (bindingContext.Result == null)
{
bindingContext.Result = ModelBindingResult.Failed();
}
}
}
}

View File

@ -91,11 +91,6 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var exception = new UnsupportedContentTypeException(message);
bindingContext.ModelState.AddModelError(modelBindingKey, exception, bindingContext.ModelMetadata);
// This model binder is the only handler for the Body binding source and it cannot run twice. Always
// tell the model binding system to skip other model binders and never to fall back i.e. indicate a
// fatal error.
bindingContext.Result = ModelBindingResult.Failed();
return;
}
@ -107,9 +102,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
if (result.HasError)
{
// Formatter encountered an error. Do not use the model it returned. As above, tell the model
// binding system to skip other model binders and never to fall back.
bindingContext.Result = ModelBindingResult.Failed();
// Formatter encountered an error. Do not use the model it returned.
return;
}
@ -119,11 +112,6 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
catch (Exception ex)
{
bindingContext.ModelState.AddModelError(modelBindingKey, ex, bindingContext.ModelMetadata);
// This model binder is the only handler for the Body binding source and it cannot run twice. Always
// tell the model binding system to skip other model binders and never to fall back i.e. indicate a
// fatal error.
bindingContext.Result = ModelBindingResult.Failed();
return;
}
}

View File

@ -24,7 +24,6 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var valueProviderResult = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
if (valueProviderResult == ValueProviderResult.None)
{
bindingContext.Result = ModelBindingResult.Failed();
return TaskCache.CompletedTask;
}
@ -34,7 +33,6 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var value = valueProviderResult.FirstValue;
if (string.IsNullOrEmpty(value))
{
bindingContext.Result = ModelBindingResult.Failed();
return TaskCache.CompletedTask;
}
@ -50,12 +48,8 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
bindingContext.ModelName,
exception,
bindingContext.ModelMetadata);
return TaskCache.CompletedTask;
}
// Matched the type (byte[]) only this binder supports. As in missing data cases, always tell the model
// binding system to skip other model binders i.e. return non-null.
bindingContext.Result = ModelBindingResult.Failed();
return TaskCache.CompletedTask;
}
}
}

View File

@ -192,9 +192,9 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
{
await ElementBinder.BindModelAsync(bindingContext);
if (bindingContext.Result != null && bindingContext.Result.Value.IsModelSet)
if (bindingContext.Result.IsModelSet)
{
boundValue = bindingContext.Result.Value.Model;
boundValue = bindingContext.Result.Model;
boundCollection.Add(ModelBindingHelper.CastOrDefault<TElement>(boundValue));
}
}

View File

@ -90,7 +90,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
model: propertyModel))
{
await BindProperty(bindingContext);
result = bindingContext.Result ?? ModelBindingResult.Failed();
result = bindingContext.Result;
}
if (result.IsModelSet)

View File

@ -49,13 +49,13 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
}
await base.BindModelAsync(bindingContext);
if (bindingContext.Result == null || !bindingContext.Result.Value.IsModelSet)
if (!bindingContext.Result.IsModelSet)
{
// No match for the prefix at all.
return;
}
var result = bindingContext.Result.Value;
var result = bindingContext.Result;
Debug.Assert(result.Model != null);
var model = (IDictionary<TKey, TValue>)result.Model;
@ -103,7 +103,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var valueResult = bindingContext.Result;
// Always add an entry to the dictionary but validate only if binding was successful.
model[convertedKey] = ModelBindingHelper.CastOrDefault<TValue>(valueResult.Value.Model);
model[convertedKey] = ModelBindingHelper.CastOrDefault<TValue>(valueResult.Model);
keyMappings.Add(kvp.Key, convertedKey);
}
}

View File

@ -34,9 +34,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
!bindingContext.ModelMetadata.IsReadOnly;
if (!createFileCollection && !ModelBindingHelper.CanGetCompatibleCollection<IFormFile>(bindingContext))
{
// Silently fail and stop other model binders running if unable to create an instance or use the
// current instance.
bindingContext.Result = ModelBindingResult.Failed();
// Silently fail if unable to create an instance or use the current instance.
return;
}
@ -65,7 +63,6 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
if (postedFiles.Count == 0)
{
// Silently fail if the named file does not exist in the request.
bindingContext.Result = ModelBindingResult.Failed();
return;
}
@ -77,7 +74,6 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
{
// Silently fail if no files match. Will bind to an empty collection (treat empty as a success
// case and not reach here) if binding to a top-level object.
bindingContext.Result = ModelBindingResult.Failed();
return;
}

View File

@ -68,10 +68,6 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
bindingContext.ModelState.TryAddModelError(
keyModelName,
bindingContext.ModelMetadata.ModelBindingMessageProvider.MissingKeyOrValueAccessor());
// Were able to get some data for this model.
// Always tell the model binding system to skip other model binders.
bindingContext.Result = ModelBindingResult.Failed();
return;
}
@ -80,10 +76,6 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
bindingContext.ModelState.TryAddModelError(
valueModelName,
bindingContext.ModelMetadata.ModelBindingMessageProvider.MissingKeyOrValueAccessor());
// Were able to get some data for this model.
// Always tell the model binding system to skip other model binders.
bindingContext.Result = ModelBindingResult.Failed();
return;
}
@ -112,15 +104,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
{
await binder.BindModelAsync(bindingContext);
var result = bindingContext.Result;
if (result != null && result.Value.IsModelSet)
{
return result.Value;
}
else
{
return ModelBindingResult.Failed();
}
return bindingContext.Result;
}
}
}

View File

@ -38,7 +38,6 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
if (valueProviderResult == ValueProviderResult.None)
{
// no entry
bindingContext.Result = ModelBindingResult.Failed();
return TaskCache.CompletedTask;
}
@ -76,8 +75,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
bindingContext.ModelName,
bindingContext.ModelMetadata.ModelBindingMessageProvider.ValueMustNotBeNullAccessor(
valueProviderResult.ToString()));
bindingContext.Result = ModelBindingResult.Failed();
return TaskCache.CompletedTask;
}
else
@ -102,8 +100,6 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
bindingContext.ModelMetadata);
// Were able to find a converter for the type but conversion failed.
// Tell the model binding system to skip other model binders.
bindingContext.Result = ModelBindingResult.Failed();
return TaskCache.CompletedTask;
}
}

View File

@ -450,13 +450,13 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Internal
await binder.BindModelAsync(modelBindingContext);
var modelBindingResult = modelBindingContext.Result;
if (modelBindingResult != null && modelBindingResult.Value.IsModelSet)
if (modelBindingResult.IsModelSet)
{
objectModelValidator.Validate(
actionContext,
modelBindingContext.ValidationState,
modelBindingContext.ModelName,
modelBindingResult.Value.Model);
modelBindingResult.Model);
return modelState.IsValid;
}

View File

@ -1,18 +0,0 @@
// 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.Threading.Tasks;
namespace Microsoft.AspNetCore.Mvc.ModelBinding
{
public static class ModelBinderExtensions
{
public static async Task<ModelBindingResult> BindModelResultAsync(
this IModelBinder binder,
ModelBindingContext context)
{
await binder.BindModelAsync(context);
return context.Result ?? default(ModelBindingResult);
}
}
}

View File

@ -29,12 +29,12 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new ArrayModelBinder<int>(new SimpleTypeModelBinder(typeof(int)));
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.True(bindingContext.Result.IsModelSet);
var array = Assert.IsType<int[]>(result.Model);
var array = Assert.IsType<int[]>(bindingContext.Result.Model);
Assert.Equal(new[] { 42, 84 }, array);
}
@ -44,23 +44,23 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
// Arrange
var binder = new ArrayModelBinder<string>(new SimpleTypeModelBinder(typeof(string)));
var context = CreateContext();
context.IsTopLevelObject = true;
var bindingContext = CreateContext();
bindingContext.IsTopLevelObject = true;
// Lack of prefix and non-empty model name both ignored.
context.ModelName = "modelName";
bindingContext.ModelName = "modelName";
var metadataProvider = new TestModelMetadataProvider();
context.ModelMetadata = metadataProvider.GetMetadataForType(typeof(string[]));
bindingContext.ModelMetadata = metadataProvider.GetMetadataForType(typeof(string[]));
context.ValueProvider = new TestValueProvider(new Dictionary<string, object>());
bindingContext.ValueProvider = new TestValueProvider(new Dictionary<string, object>());
// Act
var result = await binder.BindModelResultAsync(context);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.Empty(Assert.IsType<string[]>(result.Model));
Assert.True(result.IsModelSet);
Assert.Empty(Assert.IsType<string[]>(bindingContext.Result.Model));
Assert.True(bindingContext.Result.IsModelSet);
}
[Theory]
@ -71,21 +71,21 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
// Arrange
var binder = new ArrayModelBinder<string>(new SimpleTypeModelBinder(typeof(string)));
var context = CreateContext();
context.ModelName = ModelNames.CreatePropertyModelName(prefix, "ArrayProperty");
var bindingContext = CreateContext();
bindingContext.ModelName = ModelNames.CreatePropertyModelName(prefix, "ArrayProperty");
var metadataProvider = new TestModelMetadataProvider();
context.ModelMetadata = metadataProvider.GetMetadataForProperty(
bindingContext.ModelMetadata = metadataProvider.GetMetadataForProperty(
typeof(ModelWithArrayProperty),
nameof(ModelWithArrayProperty.ArrayProperty));
context.ValueProvider = new TestValueProvider(new Dictionary<string, object>());
bindingContext.ValueProvider = new TestValueProvider(new Dictionary<string, object>());
// Act
var result = await binder.BindModelResultAsync(context);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.Equal(default(ModelBindingResult), result);
Assert.False(bindingContext.Result.IsModelSet);
}
public static TheoryData<int[]> ArrayModelData
@ -128,11 +128,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new ArrayModelBinder<int>(new SimpleTypeModelBinder(typeof(int)));
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.Same(model, result.Model);
Assert.True(bindingContext.Result.IsModelSet);
Assert.Same(model, bindingContext.Result.Model);
for (var i = 0; i < arrayLength; i++)
{
@ -151,7 +151,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var model = value.ConvertTo(mbc.ModelType);
return ModelBindingResult.Success(model);
}
return null;
return ModelBindingResult.Failed();
});
}

View File

@ -23,10 +23,10 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new BinderTypeModelBinder(typeof(NullModelBinder));
// Act
var binderResult = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.False(binderResult.IsModelSet);
Assert.False(bindingContext.Result.IsModelSet);
}
[Fact]
@ -45,12 +45,12 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new BinderTypeModelBinder(typeof(NotNullModelBinder));
// Act
var binderResult = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
var p = (Person)binderResult.Model;
Assert.Equal(model.Age, p.Age);
Assert.Equal(model.Name, p.Name);
var person = (Person)bindingContext.Result.Model;
Assert.Equal(model.Age, person.Age);
Assert.Equal(model.Name, person.Name);
}
[Fact]

View File

@ -40,13 +40,12 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = CreateBinder(new[] { inputFormatter });
// Act
var binderResult = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
mockInputFormatter.Verify(v => v.CanRead(It.IsAny<InputFormatterContext>()), Times.Once);
mockInputFormatter.Verify(v => v.ReadAsync(It.IsAny<InputFormatterContext>()), Times.Once);
Assert.NotNull(binderResult);
Assert.True(binderResult.IsModelSet);
Assert.True(bindingContext.Result.IsModelSet);
}
[Fact]
@ -61,14 +60,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = CreateBinder(new List<IInputFormatter>());
// Act
var binderResult = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
// Returns non-null because it understands the metadata type.
Assert.NotNull(binderResult);
Assert.False(binderResult.IsModelSet);
Assert.Null(binderResult.Model);
Assert.False(bindingContext.Result.IsModelSet);
Assert.Null(bindingContext.Result.Model);
// Key is the empty string because this was a top-level binding.
var entry = Assert.Single(bindingContext.ModelState);
@ -89,14 +85,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = CreateBinder(new List<IInputFormatter>());
// Act
var binderResult = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
// Returns non-null because it understands the metadata type.
Assert.NotNull(binderResult);
Assert.False(binderResult.IsModelSet);
Assert.Null(binderResult.Model);
Assert.False(bindingContext.Result.IsModelSet);
Assert.Null(bindingContext.Result.Model);
// Key is the bindermodelname because this was a top-level binding.
var entry = Assert.Single(bindingContext.ModelState);
@ -116,11 +109,10 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = CreateBinder(new List<IInputFormatter>());
// Act
var binderResult = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.NotNull(binderResult);
Assert.False(binderResult.IsModelSet);
Assert.False(bindingContext.Result.IsModelSet);
}
[Fact]
@ -142,14 +134,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = CreateBinder(new[] { new XyzFormatter() });
// Act
var binderResult = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
// Returns non-null because it understands the metadata type.
Assert.NotNull(binderResult);
Assert.False(binderResult.IsModelSet);
Assert.Null(binderResult.Model);
Assert.False(bindingContext.Result.IsModelSet);
Assert.Null(bindingContext.Result.Model);
// Key is the empty string because this was a top-level binding.
var entry = Assert.Single(bindingContext.ModelState);
@ -176,14 +165,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = CreateBinder(new List<IInputFormatter>());
// Act
var binderResult = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
// Returns non-null result because it understands the metadata type.
Assert.NotNull(binderResult);
Assert.False(binderResult.IsModelSet);
Assert.Null(binderResult.Model);
Assert.False(bindingContext.Result.IsModelSet);
Assert.Null(bindingContext.Result.Model);
// Key is the empty string because this was a top-level binding.
var entry = Assert.Single(bindingContext.ModelState);
@ -213,11 +199,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = CreateBinder(inputFormatters);
// Act
var binderResult = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(binderResult.IsModelSet);
Assert.Same(canReadFormatter1, binderResult.Model);
Assert.True(bindingContext.Result.IsModelSet);
Assert.Same(canReadFormatter1, bindingContext.Result.Model);
}
private static DefaultModelBindingContext GetBindingContext(

View File

@ -24,12 +24,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new ByteArrayModelBinder();
// Act
var binderResult = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.NotNull(binderResult);
Assert.False(binderResult.IsModelSet);
Assert.Null(binderResult.Model);
Assert.False(bindingContext.Result.IsModelSet);
Assert.Null(bindingContext.Result.Model);
var modelState = Assert.Single(bindingContext.ModelState);
Assert.Equal("foo", modelState.Key);
@ -49,11 +48,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new ByteArrayModelBinder();
// Act
var binderResult = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.NotNull(binderResult);
var bytes = Assert.IsType<byte[]>(binderResult.Model);
Assert.True(bindingContext.Result.IsModelSet);
var bytes = Assert.IsType<byte[]>(bindingContext.Result.Model);
Assert.Equal(new byte[] { 23, 43, 53 }, bytes);
}
@ -72,10 +71,10 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new ByteArrayModelBinder();
// Act
var binderResult = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.NotNull(binderResult);
Assert.False(bindingContext.Result.IsModelSet);
Assert.False(bindingContext.ModelState.IsValid);
var error = Assert.Single(bindingContext.ModelState["foo"].Errors);
Assert.Equal(expected, error.ErrorMessage);
@ -94,12 +93,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new ByteArrayModelBinder();
// Act
var binderResult = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.NotNull(binderResult);
Assert.False(binderResult.IsModelSet);
Assert.Null(binderResult.Model);
Assert.False(bindingContext.Result.IsModelSet);
Assert.Null(bindingContext.Result.Model);
Assert.Empty(bindingContext.ModelState); // No submitted data for "foo".
}

View File

@ -20,11 +20,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new CancellationTokenModelBinder();
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.Equal(bindingContext.HttpContext.RequestAborted, result.Model);
Assert.True(bindingContext.Result.IsModelSet);
Assert.Equal(bindingContext.HttpContext.RequestAborted, bindingContext.Result.Model);
}
private static DefaultModelBindingContext GetBindingContext(Type modelType)

View File

@ -81,12 +81,12 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new CollectionModelBinder<int>(CreateIntBinder());
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.True(bindingContext.Result.IsModelSet);
var list = Assert.IsAssignableFrom<IList<int>>(result.Model);
var list = Assert.IsAssignableFrom<IList<int>>(bindingContext.Result.Model);
Assert.Equal(new[] { 42, 100, 200 }, list.ToArray());
Assert.True(modelState.IsValid);
@ -112,12 +112,12 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new CollectionModelBinder<int>(CreateIntBinder());
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.True(bindingContext.Result.IsModelSet);
Assert.Same(list, result.Model);
Assert.Same(list, bindingContext.Result.Model);
Assert.Equal(new[] { 42, 100, 200 }, list.ToArray());
Assert.True(modelState.IsValid);
@ -138,12 +138,12 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new CollectionModelBinder<int>(CreateIntBinder());
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.True(bindingContext.Result.IsModelSet);
var list = Assert.IsAssignableFrom<IList<int>>(result.Model);
var list = Assert.IsAssignableFrom<IList<int>>(bindingContext.Result.Model);
Assert.Equal(new[] { 42, 100, 200 }, list.ToArray());
}
@ -164,12 +164,12 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new CollectionModelBinder<int>(CreateIntBinder());
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.True(bindingContext.Result.IsModelSet);
Assert.Same(list, result.Model);
Assert.Same(list, bindingContext.Result.Model);
Assert.Equal(new[] { 42, 100, 200 }, list.ToArray());
}
@ -185,13 +185,12 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var bindingContext = GetModelBindingContext(valueProvider, isReadOnly: false);
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.NotNull(result.Model);
Assert.True(bindingContext.Result.IsModelSet);
var model = Assert.IsType<List<int>>(result.Model);
var model = Assert.IsType<List<int>>(bindingContext.Result.Model);
Assert.Empty(model);
}
@ -214,25 +213,25 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
public async Task CollectionModelBinder_CreatesEmptyCollection_IfIsTopLevelObject()
{
// Arrange
var binder = new CollectionModelBinder<string>(new StubModelBinder(result: null));
var binder = new CollectionModelBinder<string>(new StubModelBinder(result: ModelBindingResult.Failed()));
var context = CreateContext();
context.IsTopLevelObject = true;
var bindingContext = CreateContext();
bindingContext.IsTopLevelObject = true;
// Lack of prefix and non-empty model name both ignored.
context.ModelName = "modelName";
bindingContext.ModelName = "modelName";
var metadataProvider = new TestModelMetadataProvider();
context.ModelMetadata = metadataProvider.GetMetadataForType(typeof(List<string>));
bindingContext.ModelMetadata = metadataProvider.GetMetadataForType(typeof(List<string>));
context.ValueProvider = new TestValueProvider(new Dictionary<string, object>());
bindingContext.ValueProvider = new TestValueProvider(new Dictionary<string, object>());
// Act
var result = await binder.BindModelResultAsync(context);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.Empty(Assert.IsType<List<string>>(result.Model));
Assert.True(result.IsModelSet);
Assert.Empty(Assert.IsType<List<string>>(bindingContext.Result.Model));
Assert.True(bindingContext.Result.IsModelSet);
}
// Setup like CollectionModelBinder_CreatesEmptyCollection_IfIsTopLevelObject except
@ -241,29 +240,29 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
public async Task CollectionModelBinder_DoesNotCreateEmptyCollection_IfModelNonNull()
{
// Arrange
var binder = new CollectionModelBinder<string>(new StubModelBinder(result: null));
var binder = new CollectionModelBinder<string>(new StubModelBinder(result: ModelBindingResult.Failed()));
var context = CreateContext();
context.IsTopLevelObject = true;
var bindingContext = CreateContext();
bindingContext.IsTopLevelObject = true;
var list = new List<string>();
context.Model = list;
bindingContext.Model = list;
// Lack of prefix and non-empty model name both ignored.
context.ModelName = "modelName";
bindingContext.ModelName = "modelName";
var metadataProvider = new TestModelMetadataProvider();
context.ModelMetadata = metadataProvider.GetMetadataForType(typeof(List<string>));
bindingContext.ModelMetadata = metadataProvider.GetMetadataForType(typeof(List<string>));
context.ValueProvider = new TestValueProvider(new Dictionary<string, object>());
bindingContext.ValueProvider = new TestValueProvider(new Dictionary<string, object>());
// Act
var result = await binder.BindModelResultAsync(context);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.Same(list, result.Model);
Assert.Same(list, bindingContext.Result.Model);
Assert.Empty(list);
Assert.True(result.IsModelSet);
Assert.True(bindingContext.Result.IsModelSet);
}
[Theory]
@ -272,23 +271,23 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
public async Task CollectionModelBinder_DoesNotCreateCollection_IfNotIsTopLevelObject(string prefix)
{
// Arrange
var binder = new CollectionModelBinder<string>(new StubModelBinder(result: null));
var binder = new CollectionModelBinder<string>(new StubModelBinder(result: ModelBindingResult.Failed()));
var context = CreateContext();
context.ModelName = ModelNames.CreatePropertyModelName(prefix, "ListProperty");
var bindingContext = CreateContext();
bindingContext.ModelName = ModelNames.CreatePropertyModelName(prefix, "ListProperty");
var metadataProvider = new TestModelMetadataProvider();
context.ModelMetadata = metadataProvider.GetMetadataForProperty(
bindingContext.ModelMetadata = metadataProvider.GetMetadataForProperty(
typeof(ModelWithListProperty),
nameof(ModelWithListProperty.ListProperty));
context.ValueProvider = new TestValueProvider(new Dictionary<string, object>());
bindingContext.ValueProvider = new TestValueProvider(new Dictionary<string, object>());
// Act
var result = await binder.BindModelResultAsync(context);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.Equal(default(ModelBindingResult), result);
Assert.False(bindingContext.Result.IsModelSet);
}
// Model type -> can create instance.
@ -378,7 +377,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var value = mbc.ValueProvider.GetValue(mbc.ModelName);
if (value == ValueProviderResult.None)
{
return null;
return ModelBindingResult.Failed();
}
var model = value.ConvertTo(mbc.ModelType);

View File

@ -283,12 +283,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
.Returns(false);
// Act
var result = await testableBinder.Object.BindModelResultAsync(bindingContext);
await testableBinder.Object.BindModelAsync(bindingContext);
// Assert
Assert.NotNull(result);
Assert.True(result.IsModelSet);
var returnedPerson = Assert.IsType<Person>(result.Model);
Assert.True(bindingContext.Result.IsModelSet);
var returnedPerson = Assert.IsType<Person>(bindingContext.Result.Model);
Assert.Same(model, returnedPerson);
testableBinder.Verify();
}

View File

@ -40,19 +40,19 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
new SimpleTypeModelBinder(typeof(string)));
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.True(bindingContext.Result.IsModelSet);
var dictionary = Assert.IsAssignableFrom<IDictionary<int, string>>(result.Model);
var dictionary = Assert.IsAssignableFrom<IDictionary<int, string>>(bindingContext.Result.Model);
Assert.NotNull(dictionary);
Assert.Equal(2, dictionary.Count);
Assert.Equal("forty-two", dictionary[42]);
Assert.Equal("eighty-four", dictionary[84]);
// This uses the default IValidationStrategy
Assert.DoesNotContain(result.Model, bindingContext.ValidationState.Keys);
Assert.DoesNotContain(bindingContext.Result.Model, bindingContext.ValidationState.Keys);
}
[Theory]
@ -80,19 +80,19 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
new SimpleTypeModelBinder(typeof(string)));
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.True(bindingContext.Result.IsModelSet);
Assert.Same(dictionary, result.Model);
Assert.Same(dictionary, bindingContext.Result.Model);
Assert.NotNull(dictionary);
Assert.Equal(2, dictionary.Count);
Assert.Equal("forty-two", dictionary[42]);
Assert.Equal("eighty-four", dictionary[84]);
// This uses the default IValidationStrategy
Assert.DoesNotContain(result.Model, bindingContext.ValidationState.Keys);
Assert.DoesNotContain(bindingContext.Result.Model, bindingContext.ValidationState.Keys);
}
// modelName, keyFormat, dictionary
@ -135,23 +135,23 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
new SimpleTypeModelBinder(typeof(string)),
new SimpleTypeModelBinder(typeof(string)));
var context = CreateContext();
context.ModelName = modelName;
context.ValueProvider = CreateEnumerableValueProvider(keyFormat, dictionary);
context.FieldName = modelName;
var bindingContext = CreateContext();
bindingContext.ModelName = modelName;
bindingContext.ValueProvider = CreateEnumerableValueProvider(keyFormat, dictionary);
bindingContext.FieldName = modelName;
var metadataProvider = new TestModelMetadataProvider();
context.ModelMetadata = metadataProvider.GetMetadataForProperty(
bindingContext.ModelMetadata = metadataProvider.GetMetadataForProperty(
typeof(ModelWithDictionaryProperties),
nameof(ModelWithDictionaryProperties.DictionaryProperty));
// Act
var result = await binder.BindModelResultAsync(context);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.True(bindingContext.Result.IsModelSet);
var resultDictionary = Assert.IsAssignableFrom<IDictionary<string, string>>(result.Model);
var resultDictionary = Assert.IsAssignableFrom<IDictionary<string, string>>(bindingContext.Result.Model);
Assert.Equal(dictionary, resultDictionary);
}
@ -171,23 +171,23 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
new SimpleTypeModelBinder(typeof(string)),
new SimpleTypeModelBinder(typeof(string)));
var context = CreateContext();
context.ModelName = "prefix";
context.ValueProvider = CreateTestValueProvider("prefix[{0}]", dictionary);
context.FieldName = context.ModelName;
var bindingContext = CreateContext();
bindingContext.ModelName = "prefix";
bindingContext.ValueProvider = CreateTestValueProvider("prefix[{0}]", dictionary);
bindingContext.FieldName = bindingContext.ModelName;
var metadataProvider = new TestModelMetadataProvider();
context.ModelMetadata = metadataProvider.GetMetadataForProperty(
bindingContext.ModelMetadata = metadataProvider.GetMetadataForProperty(
typeof(ModelWithDictionaryProperties),
nameof(ModelWithDictionaryProperties.DictionaryProperty));
// Act
var result = await binder.BindModelResultAsync(context);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.True(bindingContext.Result.IsModelSet);
var resultDictionary = Assert.IsAssignableFrom<IDictionary<string, string>>(result.Model);
var resultDictionary = Assert.IsAssignableFrom<IDictionary<string, string>>(bindingContext.Result.Model);
Assert.Empty(resultDictionary);
}
@ -221,23 +221,23 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
new SimpleTypeModelBinder(typeof(long)),
new SimpleTypeModelBinder(typeof(int)));
var context = CreateContext();
context.ModelName = "prefix";
context.ValueProvider = CreateEnumerableValueProvider("prefix[{0}]", stringDictionary);
context.FieldName = context.ModelName;
var bindingContext = CreateContext();
bindingContext.ModelName = "prefix";
bindingContext.ValueProvider = CreateEnumerableValueProvider("prefix[{0}]", stringDictionary);
bindingContext.FieldName = bindingContext.ModelName;
var metadataProvider = new TestModelMetadataProvider();
context.ModelMetadata = metadataProvider.GetMetadataForProperty(
bindingContext.ModelMetadata = metadataProvider.GetMetadataForProperty(
typeof(ModelWithDictionaryProperties),
nameof(ModelWithDictionaryProperties.DictionaryWithValueTypesProperty));
// Act
var result = await binder.BindModelResultAsync(context);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.True(bindingContext.Result.IsModelSet);
var resultDictionary = Assert.IsAssignableFrom<IDictionary<long, int>>(result.Model);
var resultDictionary = Assert.IsAssignableFrom<IDictionary<long, int>>(bindingContext.Result.Model);
Assert.Equal(dictionary, resultDictionary);
}
@ -258,13 +258,13 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
{ "prefix[27].Name", "Fred" },
};
var context = CreateContext();
context.ModelName = "prefix";
context.ValueProvider = CreateEnumerableValueProvider("{0}", stringDictionary);
context.FieldName = context.ModelName;
var bindingContext = CreateContext();
bindingContext.ModelName = "prefix";
bindingContext.ValueProvider = CreateEnumerableValueProvider("{0}", stringDictionary);
bindingContext.FieldName = bindingContext.ModelName;
var metadataProvider = new TestModelMetadataProvider();
context.ModelMetadata = metadataProvider.GetMetadataForProperty(
bindingContext.ModelMetadata = metadataProvider.GetMetadataForProperty(
typeof(ModelWithDictionaryProperties),
nameof(ModelWithDictionaryProperties.DictionaryWithComplexValuesProperty));
@ -279,17 +279,17 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
}));
// Act
var result = await binder.BindModelResultAsync(context);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.True(bindingContext.Result.IsModelSet);
var resultDictionary = Assert.IsAssignableFrom<IDictionary<int, ModelWithProperties>>(result.Model);
var resultDictionary = Assert.IsAssignableFrom<IDictionary<int, ModelWithProperties>>(bindingContext.Result.Model);
Assert.Equal(dictionary, resultDictionary);
// This requires a non-default IValidationStrategy
Assert.Contains(result.Model, context.ValidationState.Keys);
var entry = context.ValidationState[result.Model];
Assert.Contains(bindingContext.Result.Model, bindingContext.ValidationState.Keys);
var entry = bindingContext.ValidationState[bindingContext.Result.Model];
var strategy = Assert.IsType<ShortFormDictionaryValidationStrategy<int, ModelWithProperties>>(entry.Strategy);
Assert.Equal(
new KeyValuePair<string, int>[]
@ -313,24 +313,24 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
new SimpleTypeModelBinder(typeof(string)),
new SimpleTypeModelBinder(typeof(string)));
var context = CreateContext();
context.ModelName = modelName;
var bindingContext = CreateContext();
bindingContext.ModelName = modelName;
context.ValueProvider = CreateEnumerableValueProvider(keyFormat, dictionary);
context.FieldName = context.ModelName;
bindingContext.ValueProvider = CreateEnumerableValueProvider(keyFormat, dictionary);
bindingContext.FieldName = bindingContext.ModelName;
var metadataProvider = new TestModelMetadataProvider();
context.ModelMetadata = metadataProvider.GetMetadataForProperty(
bindingContext.ModelMetadata = metadataProvider.GetMetadataForProperty(
typeof(ModelWithDictionaryProperties),
nameof(ModelWithDictionaryProperties.CustomDictionaryProperty));
// Act
var result = await binder.BindModelResultAsync(context);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.True(bindingContext.Result.IsModelSet);
var resultDictionary = Assert.IsAssignableFrom<SortedDictionary<string, string>>(result.Model);
var resultDictionary = Assert.IsAssignableFrom<SortedDictionary<string, string>>(bindingContext.Result.Model);
Assert.Equal(expectedDictionary, resultDictionary);
}
@ -342,23 +342,23 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
new SimpleTypeModelBinder(typeof(string)),
new SimpleTypeModelBinder(typeof(string)));
var context = CreateContext();
context.IsTopLevelObject = true;
var bindingContext = CreateContext();
bindingContext.IsTopLevelObject = true;
// Lack of prefix and non-empty model name both ignored.
context.ModelName = "modelName";
bindingContext.ModelName = "modelName";
var metadataProvider = new TestModelMetadataProvider();
context.ModelMetadata = metadataProvider.GetMetadataForType(typeof(Dictionary<string, string>));
bindingContext.ModelMetadata = metadataProvider.GetMetadataForType(typeof(Dictionary<string, string>));
context.ValueProvider = new TestValueProvider(new Dictionary<string, object>());
bindingContext.ValueProvider = new TestValueProvider(new Dictionary<string, object>());
// Act
var result = await binder.BindModelResultAsync(context);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.Empty(Assert.IsType<Dictionary<string, string>>(result.Model));
Assert.True(result.IsModelSet);
Assert.Empty(Assert.IsType<Dictionary<string, string>>(bindingContext.Result.Model));
Assert.True(bindingContext.Result.IsModelSet);
}
[Theory]
@ -371,21 +371,21 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
new SimpleTypeModelBinder(typeof(int)),
new SimpleTypeModelBinder(typeof(int)));
var context = CreateContext();
context.ModelName = ModelNames.CreatePropertyModelName(prefix, "ListProperty");
var bindingContext = CreateContext();
bindingContext.ModelName = ModelNames.CreatePropertyModelName(prefix, "ListProperty");
var metadataProvider = new TestModelMetadataProvider();
context.ModelMetadata = metadataProvider.GetMetadataForProperty(
bindingContext.ModelMetadata = metadataProvider.GetMetadataForProperty(
typeof(ModelWithDictionaryProperties),
nameof(ModelWithDictionaryProperties.DictionaryProperty));
context.ValueProvider = new TestValueProvider(new Dictionary<string, object>());
bindingContext.ValueProvider = new TestValueProvider(new Dictionary<string, object>());
// Act
var result = await binder.BindModelResultAsync(context);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.Equal(default(ModelBindingResult), result);
Assert.False(bindingContext.Result.IsModelSet);
}
// Model type -> can create instance.

View File

@ -29,13 +29,13 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new FormCollectionModelBinder();
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.True(bindingContext.Result.IsModelSet);
Assert.Empty(bindingContext.ValidationState);
var form = Assert.IsAssignableFrom<IFormCollection>(result.Model);
var form = Assert.IsAssignableFrom<IFormCollection>(bindingContext.Result.Model);
Assert.Equal(2, form.Count);
Assert.Equal("value1", form["field1"]);
Assert.Equal("value2", form["field2"]);
@ -50,11 +50,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new FormCollectionModelBinder();
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
var form = Assert.IsAssignableFrom<IFormCollection>(result.Model);
Assert.True(bindingContext.Result.IsModelSet);
var form = Assert.IsAssignableFrom<IFormCollection>(bindingContext.Result.Model);
Assert.Empty(form);
}

View File

@ -26,12 +26,12 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new FormFileModelBinder();
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.True(bindingContext.Result.IsModelSet);
var entry = bindingContext.ValidationState[result.Model];
var entry = bindingContext.ValidationState[bindingContext.Result.Model];
Assert.False(entry.SuppressValidation);
Assert.Equal("file", entry.Key);
Assert.Null(entry.Metadata);
@ -47,17 +47,17 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new FormFileModelBinder();
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.True(bindingContext.Result.IsModelSet);
var entry = bindingContext.ValidationState[result.Model];
var entry = bindingContext.ValidationState[bindingContext.Result.Model];
Assert.False(entry.SuppressValidation);
Assert.Equal("file", entry.Key);
Assert.Null(entry.Metadata);
var files = Assert.IsAssignableFrom<IList<IFormFile>>(result.Model);
var files = Assert.IsAssignableFrom<IList<IFormFile>>(bindingContext.Result.Model);
Assert.Equal(2, files.Count);
}
@ -79,12 +79,12 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var bindingContext = GetBindingContext(destinationType, httpContext);
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.IsAssignableFrom(destinationType, result.Model);
Assert.Equal(formFiles, result.Model as IEnumerable<IFormFile>);
Assert.True(bindingContext.Result.IsModelSet);
Assert.IsAssignableFrom(destinationType, bindingContext.Result.Model);
Assert.Equal(formFiles, bindingContext.Result.Model as IEnumerable<IFormFile>);
}
[Fact]
@ -97,11 +97,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new FormFileModelBinder();
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
var file = Assert.IsAssignableFrom<IFormFile>(result.Model);
Assert.True(bindingContext.Result.IsModelSet);
var file = Assert.IsAssignableFrom<IFormFile>(bindingContext.Result.Model);
Assert.Equal("file1.txt", file.FileName);
}
@ -115,11 +115,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new FormFileModelBinder();
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.False(result.IsModelSet);
Assert.Null(result.Model);
Assert.False(bindingContext.Result.IsModelSet);
Assert.Null(bindingContext.Result.Model);
}
[Fact]
@ -133,11 +133,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new FormFileModelBinder();
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.False(result.IsModelSet);
Assert.Null(result.Model);
Assert.False(bindingContext.Result.IsModelSet);
Assert.Null(bindingContext.Result.Model);
}
[Theory]
@ -159,11 +159,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new FormFileModelBinder();
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
var file = Assert.IsAssignableFrom<IFormFile>(result.Model);
Assert.True(bindingContext.Result.IsModelSet);
var file = Assert.IsAssignableFrom<IFormFile>(bindingContext.Result.Model);
Assert.Equal(expected, file.Name);
}
@ -179,11 +179,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new FormFileModelBinder();
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.False(result.IsModelSet);
Assert.Null(result.Model);
Assert.False(bindingContext.Result.IsModelSet);
Assert.Null(bindingContext.Result.Model);
}
[Fact]
@ -197,11 +197,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new FormFileModelBinder();
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.False(result.IsModelSet);
Assert.Null(result.Model);
Assert.False(bindingContext.Result.IsModelSet);
Assert.Null(bindingContext.Result.Model);
}
[Fact]
@ -214,11 +214,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var bindingContext = GetBindingContextForReadOnlyArray(httpContext);
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.False(result.IsModelSet);
Assert.Null(result.Model);
Assert.False(bindingContext.Result.IsModelSet);
Assert.Null(bindingContext.Result.Model);
}
[Fact]
@ -231,11 +231,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var bindingContext = GetBindingContext(typeof(ISet<IFormFile>), httpContext);
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.False(result.IsModelSet);
Assert.Null(result.Model);
Assert.False(bindingContext.Result.IsModelSet);
Assert.Null(bindingContext.Result.Model);
}
private static DefaultModelBindingContext GetBindingContextForReadOnlyArray(HttpContext httpContext)

View File

@ -22,13 +22,13 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
{
// Arrange
var binder = new HeaderModelBinder();
var modelBindingContext = GetBindingContext(type);
var bindingContext = GetBindingContext(type);
// Act
var result = await binder.BindModelResultAsync(modelBindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.False(result.IsModelSet);
Assert.False(bindingContext.Result.IsModelSet);
}
[Fact]
@ -39,17 +39,17 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var header = "Accept";
var headerValue = "application/json,text/json";
var binder = new HeaderModelBinder();
var modelBindingContext = GetBindingContext(type);
var bindingContext = GetBindingContext(type);
modelBindingContext.FieldName = header;
modelBindingContext.HttpContext.Request.Headers.Add(header, new[] { headerValue });
bindingContext.FieldName = header;
bindingContext.HttpContext.Request.Headers.Add(header, new[] { headerValue });
// Act
var result = await binder.BindModelResultAsync(modelBindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.Equal(headerValue.Split(','), result.Model);
Assert.True(bindingContext.Result.IsModelSet);
Assert.Equal(headerValue.Split(','), bindingContext.Result.Model);
}
[Fact]
@ -60,17 +60,17 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var header = "User-Agent";
var headerValue = "UnitTest";
var binder = new HeaderModelBinder();
var modelBindingContext = GetBindingContext(type);
var bindingContext = GetBindingContext(type);
modelBindingContext.FieldName = header;
modelBindingContext.HttpContext.Request.Headers.Add(header, new[] { headerValue });
bindingContext.FieldName = header;
bindingContext.HttpContext.Request.Headers.Add(header, new[] { headerValue });
// Act
var result = await binder.BindModelResultAsync(modelBindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.Equal(headerValue, result.Model);
Assert.True(bindingContext.Result.IsModelSet);
Assert.Equal(headerValue, bindingContext.Result.Model);
}
[Theory]
@ -86,18 +86,18 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var header = "Accept";
var headerValue = "application/json,text/json";
var binder = new HeaderModelBinder();
var modelBindingContext = GetBindingContext(destinationType);
var bindingContext = GetBindingContext(destinationType);
modelBindingContext.FieldName = header;
modelBindingContext.HttpContext.Request.Headers.Add(header, new[] { headerValue });
bindingContext.FieldName = header;
bindingContext.HttpContext.Request.Headers.Add(header, new[] { headerValue });
// Act
var result = await binder.BindModelResultAsync(modelBindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.IsAssignableFrom(destinationType, result.Model);
Assert.Equal(headerValue.Split(','), result.Model as IEnumerable<string>);
Assert.True(bindingContext.Result.IsModelSet);
Assert.IsAssignableFrom(destinationType, bindingContext.Result.Model);
Assert.Equal(headerValue.Split(','), bindingContext.Result.Model as IEnumerable<string>);
}
[Fact]
@ -107,17 +107,17 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var header = "Accept";
var headerValue = "application/json,text/json";
var binder = new HeaderModelBinder();
var modelBindingContext = GetBindingContextForReadOnlyArray();
var bindingContext = GetBindingContextForReadOnlyArray();
modelBindingContext.FieldName = header;
modelBindingContext.HttpContext.Request.Headers.Add(header, new[] { headerValue });
bindingContext.FieldName = header;
bindingContext.HttpContext.Request.Headers.Add(header, new[] { headerValue });
// Act
var result = await binder.BindModelResultAsync(modelBindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.False(result.IsModelSet);
Assert.Null(result.Model);
Assert.False(bindingContext.Result.IsModelSet);
Assert.Null(bindingContext.Result.Model);
}
[Fact]
@ -127,17 +127,17 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var header = "Accept";
var headerValue = "application/json,text/json";
var binder = new HeaderModelBinder();
var modelBindingContext = GetBindingContext(typeof(ISet<string>));
var bindingContext = GetBindingContext(typeof(ISet<string>));
modelBindingContext.FieldName = header;
modelBindingContext.HttpContext.Request.Headers.Add(header, new[] { headerValue });
bindingContext.FieldName = header;
bindingContext.HttpContext.Request.Headers.Add(header, new[] { headerValue });
// Act
var result = await binder.BindModelResultAsync(modelBindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.False(result.IsModelSet);
Assert.Null(result.Model);
Assert.False(bindingContext.Result.IsModelSet);
Assert.Null(bindingContext.Result.Model);
}
private static DefaultModelBindingContext GetBindingContext(Type modelType)

View File

@ -24,11 +24,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new KeyValuePairModelBinder<int, string>(CreateIntBinder(false), CreateStringBinder());
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.False(result.IsModelSet);
Assert.Null(result.Model);
Assert.False(bindingContext.Result.IsModelSet);
Assert.Null(bindingContext.Result.Model);
Assert.False(bindingContext.ModelState.IsValid);
Assert.Equal("someName", bindingContext.ModelName);
var error = Assert.Single(bindingContext.ModelState["someName.Key"].Errors);
@ -46,10 +46,10 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new KeyValuePairModelBinder<int, string>(CreateIntBinder(), CreateStringBinder(false));
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.Null(result.Model);
Assert.Null(bindingContext.Result.Model);
Assert.False(bindingContext.ModelState.IsValid);
Assert.Equal("someName", bindingContext.ModelName);
var state = bindingContext.ModelState["someName.Value"];
@ -69,10 +69,10 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new KeyValuePairModelBinder<int, string>(CreateIntBinder(false), CreateStringBinder(false));
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.Equal(default(ModelBindingResult), result);
Assert.False(bindingContext.Result.IsModelSet);
Assert.True(bindingContext.ModelState.IsValid);
Assert.Equal(0, bindingContext.ModelState.ErrorCount);
}
@ -87,11 +87,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new KeyValuePairModelBinder<int, string>(CreateIntBinder(), CreateStringBinder());
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.Equal(new KeyValuePair<int, string>(42, "some-value"), result.Model);
Assert.True(bindingContext.Result.IsModelSet);
Assert.Equal(new KeyValuePair<int, string>(42, "some-value"), bindingContext.Result.Model);
}
[Theory]
@ -103,7 +103,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
bool isSuccess)
{
// Arrange
ModelBindingResult? innerResult;
ModelBindingResult innerResult;
if (isSuccess)
{
innerResult = ModelBindingResult.Success(model);
@ -128,7 +128,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var result = await binder.TryBindStrongModel<int>(bindingContext, innerBinder, "Key", "someName.Key");
// Assert
Assert.Equal(innerResult.Value, result);
Assert.Equal(innerResult, result);
Assert.Empty(bindingContext.ModelState);
}
@ -140,24 +140,24 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
new SimpleTypeModelBinder(typeof(string)),
new SimpleTypeModelBinder(typeof(string)));
var context = CreateContext();
context.IsTopLevelObject = true;
var bindingContext = CreateContext();
bindingContext.IsTopLevelObject = true;
// Lack of prefix and non-empty model name both ignored.
context.ModelName = "modelName";
bindingContext.ModelName = "modelName";
var metadataProvider = new TestModelMetadataProvider();
context.ModelMetadata = metadataProvider.GetMetadataForType(typeof(KeyValuePair<string, string>));
bindingContext.ModelMetadata = metadataProvider.GetMetadataForType(typeof(KeyValuePair<string, string>));
context.ValueProvider = new TestValueProvider(new Dictionary<string, object>());
bindingContext.ValueProvider = new TestValueProvider(new Dictionary<string, object>());
// Act
var result = await binder.BindModelResultAsync(context);
await binder.BindModelAsync(bindingContext);
// Assert
var model = Assert.IsType<KeyValuePair<string, string>>(result.Model);
var model = Assert.IsType<KeyValuePair<string, string>>(bindingContext.Result.Model);
Assert.Equal(default(KeyValuePair<string, string>), model);
Assert.True(result.IsModelSet);
Assert.True(bindingContext.Result.IsModelSet);
}
[Theory]
@ -170,21 +170,21 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
new SimpleTypeModelBinder(typeof(string)),
new SimpleTypeModelBinder(typeof(string)));
var context = CreateContext();
context.ModelName = ModelNames.CreatePropertyModelName(prefix, "KeyValuePairProperty");
var bindingContext = CreateContext();
bindingContext.ModelName = ModelNames.CreatePropertyModelName(prefix, "KeyValuePairProperty");
var metadataProvider = new TestModelMetadataProvider();
context.ModelMetadata = metadataProvider.GetMetadataForProperty(
bindingContext.ModelMetadata = metadataProvider.GetMetadataForProperty(
typeof(ModelWithKeyValuePairProperty),
nameof(ModelWithKeyValuePairProperty.KeyValuePairProperty));
context.ValueProvider = new TestValueProvider(new Dictionary<string, object>());
bindingContext.ValueProvider = new TestValueProvider(new Dictionary<string, object>());
// Act
var result = await binder.BindModelResultAsync(context);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.Equal(default(ModelBindingResult), result);
Assert.False(bindingContext.Result.IsModelSet);
}
private static DefaultModelBindingContext CreateContext()
@ -225,7 +225,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var model = 42;
return ModelBindingResult.Success(model);
}
return null;
return ModelBindingResult.Failed();
});
return mockIntBinder;
}
@ -239,7 +239,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var model = "some-value";
return ModelBindingResult.Success(model);
}
return null;
return ModelBindingResult.Failed();
});
}

View File

@ -19,16 +19,15 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var type = typeof(IService);
var binder = new ServicesModelBinder();
var modelBindingContext = GetBindingContext(type);
var bindingContext = GetBindingContext(type);
// Act
var result = await binder.BindModelResultAsync(modelBindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.NotNull(result.Model);
Assert.True(bindingContext.Result.IsModelSet);
var entry = modelBindingContext.ValidationState[result.Model];
var entry = bindingContext.ValidationState[bindingContext.Result.Model];
Assert.True(entry.SuppressValidation);
Assert.Null(entry.Key);
Assert.Null(entry.Metadata);

View File

@ -50,10 +50,10 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new SimpleTypeModelBinder(destinationType);
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.False(result.IsModelSet);
Assert.False(bindingContext.Result.IsModelSet);
}
[Theory]
@ -75,11 +75,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new SimpleTypeModelBinder(destinationType);
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.False(result.IsModelSet);
Assert.Null(result.Model);
Assert.False(bindingContext.Result.IsModelSet);
Assert.Null(bindingContext.Result.Model);
var error = Assert.Single(bindingContext.ModelState["theModelName"].Errors);
Assert.Equal("The value '' is invalid.", error.ErrorMessage, StringComparer.Ordinal);
@ -100,11 +100,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new SimpleTypeModelBinder(typeof(int));
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.False(result.IsModelSet);
Assert.Null(result.Model);
Assert.False(bindingContext.Result.IsModelSet);
Assert.Null(bindingContext.Result.Model);
Assert.False(bindingContext.ModelState.IsValid);
var error = Assert.Single(bindingContext.ModelState["theModelName"].Errors);
Assert.Equal(message, error.ErrorMessage);
@ -118,10 +118,10 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new SimpleTypeModelBinder(typeof(int));
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.Equal(ModelBindingResult.Failed(), result);
Assert.Equal(ModelBindingResult.Failed(), bindingContext.Result);
Assert.Empty(bindingContext.ModelState);
}
@ -138,10 +138,10 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new SimpleTypeModelBinder(typeof(string));
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.Null(result.Model);
Assert.Null(bindingContext.Result.Model);
Assert.True(bindingContext.ModelState.ContainsKey("theModelName"));
}
@ -160,10 +160,10 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new SimpleTypeModelBinder(typeof(string));
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.Null(result.Model);
Assert.Null(bindingContext.Result.Model);
Assert.True(bindingContext.ModelState.ContainsKey("theModelName"));
}
@ -180,11 +180,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new SimpleTypeModelBinder(typeof(int?));
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.Equal(12, result.Model);
Assert.True(bindingContext.Result.IsModelSet);
Assert.Equal(12, bindingContext.Result.Model);
Assert.True(bindingContext.ModelState.ContainsKey("theModelName"));
}
@ -201,11 +201,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new SimpleTypeModelBinder(typeof(double?));
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.Equal(12.5, result.Model);
Assert.True(bindingContext.Result.IsModelSet);
Assert.Equal(12.5, bindingContext.Result.Model);
Assert.True(bindingContext.ModelState.ContainsKey("theModelName"));
}
@ -222,11 +222,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new SimpleTypeModelBinder(typeof(int));
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.Equal(42, result.Model);
Assert.True(bindingContext.Result.IsModelSet);
Assert.Equal(42, bindingContext.Result.Model);
Assert.True(bindingContext.ModelState.ContainsKey("theModelName"));
}
@ -243,11 +243,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new SimpleTypeModelBinder(typeof(decimal));
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
Assert.Equal(12.5M, result.Model);
Assert.True(bindingContext.Result.IsModelSet);
Assert.Equal(12.5M, bindingContext.Result.Model);
Assert.True(bindingContext.ModelState.ContainsKey("theModelName"));
}
@ -264,11 +264,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new SimpleTypeModelBinder(typeof(decimal));
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.False(result.IsModelSet);
Assert.Null(result.Model);
Assert.False(bindingContext.Result.IsModelSet);
Assert.Null(bindingContext.Result.Model);
var error = Assert.Single(bindingContext.ModelState["theModelName"].Errors);
Assert.Equal("The value '12,5' is not valid for Decimal.", error.ErrorMessage, StringComparer.Ordinal);
@ -288,11 +288,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new SimpleTypeModelBinder(typeof(IntEnum));
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
var boundModel = Assert.IsType<IntEnum>(result.Model);
Assert.True(bindingContext.Result.IsModelSet);
var boundModel = Assert.IsType<IntEnum>(bindingContext.Result.Model);
Assert.Equal(IntEnum.Value1, boundModel);
}
@ -309,11 +309,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new SimpleTypeModelBinder(typeof(IntEnum));
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
var boundModel = Assert.IsType<IntEnum>(result.Model);
Assert.True(bindingContext.Result.IsModelSet);
var boundModel = Assert.IsType<IntEnum>(bindingContext.Result.Model);
Assert.Equal(IntEnum.Value1, boundModel);
}
@ -335,11 +335,11 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
var binder = new SimpleTypeModelBinder(typeof(FlagsEnum));
// Act
var result = await binder.BindModelResultAsync(bindingContext);
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(result.IsModelSet);
var boundModel = Assert.IsType<FlagsEnum>(result.Model);
Assert.True(bindingContext.Result.IsModelSet);
var boundModel = Assert.IsType<FlagsEnum>(bindingContext.Result.Model);
Assert.Equal((FlagsEnum)expected, boundModel);
}

View File

@ -22,25 +22,12 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
{
public class ModelBindingHelperTest
{
public static TheoryData<ModelBindingResult?> UnsuccessfulModelBindingData
{
get
{
return new TheoryData<ModelBindingResult?>
{
null,
ModelBindingResult.Failed(),
};
}
}
[Theory]
[MemberData(nameof(UnsuccessfulModelBindingData))]
public async Task TryUpdateModel_ReturnsFalse_IfBinderIsUnsuccessful(ModelBindingResult? binderResult)
[Fact]
public async Task TryUpdateModel_ReturnsFalse_IfBinderIsUnsuccessful()
{
// Arrange
var metadataProvider = new EmptyModelMetadataProvider();
var binder = new StubModelBinder(binderResult);
var binder = new StubModelBinder(ModelBindingResult.Failed());
var model = new MyModel();
// Act
@ -141,14 +128,12 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
Assert.Equal("MyPropertyValue", model.MyProperty);
}
[Theory]
[MemberData(nameof(UnsuccessfulModelBindingData))]
public async Task TryUpdateModel_UsingPropertyFilterOverload_ReturnsFalse_IfBinderIsUnsuccessful(
ModelBindingResult? binderResult)
[Fact]
public async Task TryUpdateModel_UsingPropertyFilterOverload_ReturnsFalse_IfBinderIsUnsuccessful()
{
// Arrange
var metadataProvider = new EmptyModelMetadataProvider();
var binder = new StubModelBinder(binderResult);
var binder = new StubModelBinder(ModelBindingResult.Failed());
var model = new MyModel();
Func<ModelMetadata, bool> propertyFilter = (m) => true;
@ -224,14 +209,12 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
Assert.Equal("Old-ExcludedPropertyValue", model.ExcludedProperty);
}
[Theory]
[MemberData(nameof(UnsuccessfulModelBindingData))]
public async Task TryUpdateModel_UsingIncludeExpressionOverload_ReturnsFalse_IfBinderIsUnsuccessful(
ModelBindingResult? binderResult)
[Fact]
public async Task TryUpdateModel_UsingIncludeExpressionOverload_ReturnsFalse_IfBinderIsUnsuccessful()
{
// Arrange
var metadataProvider = new EmptyModelMetadataProvider();
var binder = new StubModelBinder(binderResult);
var binder = new StubModelBinder(ModelBindingResult.Failed());
var model = new MyModel();
// Act
@ -472,14 +455,12 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
ex.Message);
}
[Theory]
[MemberData(nameof(UnsuccessfulModelBindingData))]
public async Task TryUpdateModelNonGeneric_PropertyFilterOverload_ReturnsFalse_IfBinderIsUnsuccessful(
ModelBindingResult? binderResult)
[Fact]
public async Task TryUpdateModelNonGeneric_PropertyFilterOverload_ReturnsFalse_IfBinderIsUnsuccessful()
{
// Arrange
var metadataProvider = new EmptyModelMetadataProvider();
var binder = new StubModelBinder(binderResult);
var binder = new StubModelBinder(ModelBindingResult.Failed());
var model = new MyModel();
Func<ModelMetadata, bool> propertyFilter = (m) => true;
@ -557,14 +538,12 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
Assert.Equal("Old-ExcludedPropertyValue", model.ExcludedProperty);
}
[Theory]
[MemberData(nameof(UnsuccessfulModelBindingData))]
public async Task TryUpdateModelNonGeneric_ModelTypeOverload_ReturnsFalse_IfBinderIsUnsuccessful(
ModelBindingResult? binderResult)
[Fact]
public async Task TryUpdateModelNonGeneric_ModelTypeOverload_ReturnsFalse_IfBinderIsUnsuccessful()
{
// Arrange
var metadataProvider = new EmptyModelMetadataProvider();
var binder = new StubModelBinder(binderResult);
var binder = new StubModelBinder(ModelBindingResult.Failed());
var model = new MyModel();

View File

@ -17,7 +17,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
_callback = context => TaskCache.CompletedTask;
}
public StubModelBinder(ModelBindingResult? result)
public StubModelBinder(ModelBindingResult result)
{
_callback = context =>
{
@ -35,7 +35,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
};
}
public StubModelBinder(Func<ModelBindingContext, ModelBindingResult?> callback)
public StubModelBinder(Func<ModelBindingContext, ModelBindingResult> callback)
{
_callback = context =>
{
@ -45,7 +45,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
};
}
public StubModelBinder(Func<ModelBindingContext, Task<ModelBindingResult?>> callback)
public StubModelBinder(Func<ModelBindingContext, Task<ModelBindingResult>> callback)
{
_callback = async context =>
{
@ -66,8 +66,8 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
{
throw new ArgumentNullException(nameof(bindingContext));
}
Debug.Assert(bindingContext.Result == null);
Debug.Assert(bindingContext.Result == ModelBindingResult.Failed());
await _callback.Invoke(bindingContext);
}
}

View File

@ -49,7 +49,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var model = new Person3();
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -94,7 +94,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -143,7 +143,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var model = new Person4();
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -189,7 +189,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -230,7 +230,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -274,7 +274,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -321,7 +321,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -366,7 +366,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);

View File

@ -31,7 +31,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -75,7 +75,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -115,7 +115,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -155,7 +155,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -190,7 +190,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -235,7 +235,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -276,7 +276,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -317,7 +317,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);

View File

@ -36,7 +36,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
@ -73,7 +73,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.False(modelBindingResult.Value.IsModelSet);
Assert.False(modelBindingResult.IsModelSet);
// ModelState (not set unless inner binder sets it)
Assert.True(modelState.IsValid);
@ -84,75 +84,6 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
{
}
[Fact]
public async Task BindParameter_WithModelBinderType_NonGreedy_NoData()
{
// Arrange
var argumentBinder = ModelBindingTestHelper.GetArgumentBinder();
var parameter = new ParameterDescriptor()
{
Name = "Parameter1",
BindingInfo = new BindingInfo()
{
BinderType = typeof(NullResultModelBinder)
},
ParameterType = typeof(Person2)
};
// No data is passed.
var testContext = ModelBindingTestHelper.GetTestContext();
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
// ModelBindingResult
Assert.False(modelBindingResult.Value.IsModelSet);
// ModelState
Assert.True(modelState.IsValid);
Assert.Empty(modelState.Keys);
}
// ModelBinderAttribute can be used without specifying the binder type.
// In such cases BinderTypeBasedModelBinder acts like a non greedy binder where
// it returns an empty ModelBindingResult allowing other ModelBinders to run.
[Fact]
public async Task BindParameter_WithOutModelBinderType()
{
// Arrange
var argumentBinder = ModelBindingTestHelper.GetArgumentBinder();
var parameter = new ParameterDescriptor()
{
Name = "Parameter1",
BindingInfo = new BindingInfo()
{
BinderType = typeof(NullResultModelBinder)
},
ParameterType = typeof(Person2)
};
// No data is passed.
var testContext = ModelBindingTestHelper.GetTestContext();
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
// ModelBindingResult
Assert.False(modelBindingResult.Value.IsModelSet);
// ModelState
Assert.True(modelState.IsValid);
Assert.Empty(modelState.Keys);
}
// Ensures that prefix is part of the result returned back.
[Fact]
[ReplaceCulture]
@ -176,7 +107,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
@ -219,7 +150,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
@ -258,7 +189,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
@ -286,7 +217,8 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
{
throw new ArgumentNullException(nameof(bindingContext));
}
Debug.Assert(bindingContext.Result == null);
Debug.Assert(bindingContext.Result == ModelBindingResult.Failed());
if (bindingContext.ModelType != typeof(Address))
{
@ -313,7 +245,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
{
throw new ArgumentNullException(nameof(bindingContext));
}
Debug.Assert(bindingContext.Result == null);
Debug.Assert(bindingContext.Result == ModelBindingResult.Failed());
var model = "Success";
bindingContext.ModelState.SetModelValue(
@ -334,7 +266,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
{
throw new ArgumentNullException(nameof(bindingContext));
}
Debug.Assert(bindingContext.Result == null);
Debug.Assert(bindingContext.Result == ModelBindingResult.Failed());
bindingContext.Result = ModelBindingResult.Success(model: null);
return TaskCache.CompletedTask;
@ -349,25 +281,11 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
{
throw new ArgumentNullException(nameof(bindingContext));
}
Debug.Assert(bindingContext.Result == null);
Debug.Assert(bindingContext.Result == ModelBindingResult.Failed());
bindingContext.Result = ModelBindingResult.Failed();
return TaskCache.CompletedTask;
}
}
private class NullResultModelBinder : IModelBinder
{
public Task BindModelAsync(ModelBindingContext bindingContext)
{
if (bindingContext == null)
{
throw new ArgumentNullException(nameof(bindingContext));
}
Debug.Assert(bindingContext.Result == null);
return TaskCache.CompletedTask;
}
}
}
}

View File

@ -55,7 +55,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -95,7 +95,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var result = await argumentBinding.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var result = await argumentBinding.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelState.IsValid);
@ -130,7 +130,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -182,7 +182,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -223,7 +223,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -263,7 +263,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -299,7 +299,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -342,7 +342,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -379,7 +379,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -420,7 +420,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -462,7 +462,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -521,7 +521,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -559,7 +559,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -623,7 +623,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -680,7 +680,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);

View File

@ -45,7 +45,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
@ -90,7 +90,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
@ -129,7 +129,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert

View File

@ -40,7 +40,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
@ -74,7 +74,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
@ -111,7 +111,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert

View File

@ -39,7 +39,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -85,7 +85,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -119,7 +119,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -151,7 +151,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -190,7 +190,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -229,7 +229,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -262,7 +262,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -300,7 +300,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -359,7 +359,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -410,7 +410,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -462,7 +462,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -505,7 +505,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -556,7 +556,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -606,7 +606,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -663,7 +663,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -702,7 +702,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -926,7 +926,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);

View File

@ -35,7 +35,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -75,7 +75,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -113,7 +113,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -164,7 +164,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -199,7 +199,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -231,7 +231,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -292,7 +292,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -332,7 +332,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -371,7 +371,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -411,7 +411,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -522,7 +522,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);

View File

@ -53,8 +53,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ??
default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
// ModelBindingResult

View File

@ -51,7 +51,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
@ -101,7 +101,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
// ModelBindingResult
@ -141,7 +141,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert

View File

@ -51,7 +51,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
@ -100,8 +100,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var result = await argumentBinder.BindModelAsync(parameter, testContext) ??
default(ModelBindingResult);
var result = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(result.IsModelSet);
@ -146,8 +145,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var result = await argumentBinder.BindModelAsync(parameter, testContext) ??
default(ModelBindingResult);
var result = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(result.IsModelSet);
@ -191,8 +189,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var result = await argumentBinder.BindModelAsync(parameter, testContext) ??
default(ModelBindingResult);
var result = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(result.IsModelSet);
@ -246,7 +243,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
// ModelBindingResult
@ -295,7 +292,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.False(modelBindingResult.Value.IsModelSet);
Assert.False(modelBindingResult.IsModelSet);
// ModelState
Assert.True(modelState.IsValid);

View File

@ -42,7 +42,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -80,7 +80,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -119,7 +119,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -175,7 +175,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
throw new ArgumentNullException(nameof(bindingContext));
}
Debug.Assert(bindingContext.Result == null);
Debug.Assert(bindingContext.Result == ModelBindingResult.Failed());
var allowedBindingSource = bindingContext.BindingSource;
if (allowedBindingSource == null ||
@ -211,7 +211,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -245,7 +245,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -280,7 +280,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -325,7 +325,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -370,7 +370,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -405,7 +405,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -449,7 +449,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -493,7 +493,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -529,7 +529,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -577,7 +577,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -625,7 +625,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);

View File

@ -47,7 +47,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
@ -87,7 +87,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
@ -129,7 +129,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
@ -175,8 +175,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var result = await argumentBinder.BindModelAsync(parameter, testContext) ??
default(ModelBindingResult);
var result = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(result.IsModelSet);
@ -223,8 +222,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var result = await argumentBinder.BindModelAsync(parameter, testContext) ??
default(ModelBindingResult);
var result = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(result.IsModelSet);
@ -287,7 +285,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert

View File

@ -33,7 +33,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -71,7 +71,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.False(modelBindingResult.IsModelSet);
@ -117,7 +117,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.False(modelBindingResult.IsModelSet);
@ -154,7 +154,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.False(modelBindingResult.IsModelSet);
@ -201,7 +201,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.False(modelBindingResult.IsModelSet);
@ -244,7 +244,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -284,7 +284,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -324,7 +324,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -360,7 +360,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -405,7 +405,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -446,7 +446,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -487,7 +487,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);

View File

@ -47,7 +47,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -96,7 +96,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -135,7 +135,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -184,7 +184,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -230,7 +230,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);

View File

@ -66,7 +66,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -107,7 +107,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -148,7 +148,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -190,7 +190,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -231,7 +231,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -279,7 +279,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -322,7 +322,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -365,7 +365,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -419,7 +419,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -463,7 +463,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -508,7 +508,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -551,7 +551,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -592,7 +592,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -633,7 +633,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -679,7 +679,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -725,7 +725,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -763,7 +763,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -805,7 +805,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -851,7 +851,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -897,7 +897,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -935,7 +935,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -977,7 +977,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1023,7 +1023,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1069,7 +1069,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1107,7 +1107,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1149,7 +1149,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1195,7 +1195,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1241,7 +1241,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1279,7 +1279,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1327,7 +1327,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1371,7 +1371,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1417,7 +1417,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1469,7 +1469,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1514,7 +1514,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1563,7 +1563,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1614,7 +1614,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1657,7 +1657,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1696,7 +1696,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1739,7 +1739,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1782,7 +1782,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1821,7 +1821,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1865,7 +1865,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1909,7 +1909,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);

View File

@ -35,7 +35,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
@ -72,7 +72,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
// ModelBindingResult
@ -108,7 +108,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
// ModelBindingResult
@ -144,7 +144,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
// ModelBindingResult

View File

@ -40,7 +40,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
@ -84,7 +84,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
@ -129,7 +129,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
@ -173,7 +173,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
@ -217,7 +217,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
@ -275,7 +275,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
@ -324,7 +324,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
@ -376,7 +376,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
// ModelBindingResult
@ -419,7 +419,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
@ -457,7 +457,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
@ -511,8 +511,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ??
default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
// ModelBindingResult

View File

@ -183,7 +183,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -220,7 +220,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -271,7 +271,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -309,7 +309,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -362,7 +362,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -401,7 +401,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -454,7 +454,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -493,7 +493,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -541,7 +541,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -579,7 +579,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -627,7 +627,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -664,7 +664,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -715,7 +715,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -752,7 +752,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -792,7 +792,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -850,7 +850,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -887,7 +887,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -957,7 +957,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -994,7 +994,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1045,7 +1045,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1082,7 +1082,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1122,7 +1122,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1162,7 +1162,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1202,7 +1202,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = testContext.ModelState;
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1333,7 +1333,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
modelState.SetModelValue("CustomParameter.message", "Hello", "Hello");
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1376,7 +1376,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
modelState.SetModelValue("message", "Hello", "Hello");
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1421,7 +1421,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
modelState.SetModelValue("other.key", "1", "1");
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);
@ -1468,7 +1468,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
modelState.SetModelValue("other.key", "1", "1");
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext) ?? default(ModelBindingResult);
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, testContext);
// Assert
Assert.True(modelBindingResult.IsModelSet);

View File

@ -25,9 +25,7 @@ namespace Microsoft.AspNetCore.Mvc.WebApiCompatShim
await binder.BindModelAsync(bindingContext);
// Assert
Assert.True(bindingContext.Result.HasValue);
var result = bindingContext.Result.Value;
var result = bindingContext.Result;
Assert.True(result.IsModelSet);
Assert.Same(expectedModel, result.Model);