Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dotnet/aspnetcore.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/Mvc/test/Microsoft.AspNetCore.Mvc.Core.Test/ModelBinding/Binders/ComplexTypeModelBinderProviderTest.cs')
-rw-r--r--src/Mvc/test/Microsoft.AspNetCore.Mvc.Core.Test/ModelBinding/Binders/ComplexTypeModelBinderProviderTest.cs65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/Mvc/test/Microsoft.AspNetCore.Mvc.Core.Test/ModelBinding/Binders/ComplexTypeModelBinderProviderTest.cs b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Core.Test/ModelBinding/Binders/ComplexTypeModelBinderProviderTest.cs
new file mode 100644
index 0000000000..9dc044f814
--- /dev/null
+++ b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Core.Test/ModelBinding/Binders/ComplexTypeModelBinderProviderTest.cs
@@ -0,0 +1,65 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using System;
+using System.Collections.Generic;
+using Moq;
+using Xunit;
+
+namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders
+{
+ public class ComplexTypeModelBinderProviderTest
+ {
+ [Theory]
+ [InlineData(typeof(string))]
+ [InlineData(typeof(int))]
+ [InlineData(typeof(List<int>))]
+ public void Create_ForNonComplexType_ReturnsNull(Type modelType)
+ {
+ // Arrange
+ var provider = new ComplexTypeModelBinderProvider();
+
+ var context = new TestModelBinderProviderContext(modelType);
+
+ // Act
+ var result = provider.GetBinder(context);
+
+ // Assert
+ Assert.Null(result);
+ }
+
+ [Fact]
+ public void Create_ForSupportedTypes_ReturnsBinder()
+ {
+ // Arrange
+ var provider = new ComplexTypeModelBinderProvider();
+
+ var context = new TestModelBinderProviderContext(typeof(Person));
+ context.OnCreatingBinder(m =>
+ {
+ if (m.ModelType == typeof(int) || m.ModelType == typeof(string))
+ {
+ return Mock.Of<IModelBinder>();
+ }
+ else
+ {
+ Assert.False(true, "Not the right model type");
+ return null;
+ }
+ });
+
+ // Act
+ var result = provider.GetBinder(context);
+
+ // Assert
+ Assert.IsType<ComplexTypeModelBinder>(result);
+ }
+
+ private class Person
+ {
+ public string Name { get; set; }
+
+ public int Age { get; set; }
+ }
+ }
+}