diff --git a/test/Microsoft.AspNetCore.Mvc.IntegrationTests/ActionParametersIntegrationTest.cs b/test/Microsoft.AspNetCore.Mvc.IntegrationTests/ActionParametersIntegrationTest.cs
index 3249bd5fdc..af355f1eb6 100644
--- a/test/Microsoft.AspNetCore.Mvc.IntegrationTests/ActionParametersIntegrationTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.IntegrationTests/ActionParametersIntegrationTest.cs
@@ -63,8 +63,8 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
// ModelState
Assert.True(modelState.IsValid);
- Assert.Equal(1, modelState.Keys.Count);
- var key = Assert.Single(modelState.Keys, k => k == "Address[0].Street");
+ var key = Assert.Single(modelState.Keys);
+ Assert.Equal("Address[0].Street", key);
Assert.Equal("SomeStreet", modelState[key].AttemptedValue);
Assert.Equal("SomeStreet", modelState[key].RawValue);
Assert.Empty(modelState[key].Errors);
@@ -141,6 +141,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = operationContext.ActionContext.ModelState;
var model = new Person4();
+
// Act
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, operationContext) ?? default(ModelBindingResult);
@@ -157,8 +158,8 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
// ModelState
Assert.True(modelState.IsValid);
- Assert.Equal(1, modelState.Keys.Count);
- var key = Assert.Single(modelState.Keys, k => k == "Address[0].Street");
+ var key = Assert.Single(modelState.Keys);
+ Assert.Equal("Address[0].Street", key);
Assert.Equal("SomeStreet", modelState[key].AttemptedValue);
Assert.Equal("SomeStreet", modelState[key].RawValue);
Assert.Empty(modelState[key].Errors);
@@ -243,8 +244,8 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
// ModelState
Assert.True(modelState.IsValid);
- Assert.Equal(1, modelState.Keys.Count);
- var key = Assert.Single(modelState.Keys, k => k == "prefix.Address[0].Street");
+ var key = Assert.Single(modelState.Keys);
+ Assert.Equal("prefix.Address[0].Street", key);
Assert.Equal("SomeStreet", modelState[key].AttemptedValue);
Assert.Equal("SomeStreet", modelState[key].RawValue);
Assert.Empty(modelState[key].Errors);
@@ -334,8 +335,8 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
// ModelState
Assert.True(modelState.IsValid);
- Assert.Equal(1, modelState.Keys.Count);
- var key = Assert.Single(modelState.Keys, k => k == "prefix.Address[0].Street");
+ var key = Assert.Single(modelState.Keys);
+ Assert.Equal("prefix.Address[0].Street", key);
Assert.Equal("SomeStreet", modelState[key].AttemptedValue);
Assert.Equal("SomeStreet", modelState[key].RawValue);
Assert.Empty(modelState[key].Errors);
diff --git a/test/Microsoft.AspNetCore.Mvc.IntegrationTests/BinderTypeBasedModelBinderIntegrationTest.cs b/test/Microsoft.AspNetCore.Mvc.IntegrationTests/BinderTypeBasedModelBinderIntegrationTest.cs
index d68f211697..f24111d874 100644
--- a/test/Microsoft.AspNetCore.Mvc.IntegrationTests/BinderTypeBasedModelBinderIntegrationTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.IntegrationTests/BinderTypeBasedModelBinderIntegrationTest.cs
@@ -234,9 +234,8 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
// ModelState
Assert.True(modelState.IsValid);
-
- Assert.Equal(1, modelState.Keys.Count);
- var key = Assert.Single(modelState.Keys, k => k == "Address.Street");
+ var key = Assert.Single(modelState.Keys);
+ Assert.Equal("Address.Street", key);
Assert.Equal(ModelValidationState.Valid, modelState[key].ValidationState);
Assert.NotNull(modelState[key].RawValue); // Value is set by test model binder, no need to validate it.
}
@@ -274,8 +273,8 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
// ModelState
Assert.True(modelState.IsValid);
- Assert.Equal(1, modelState.Keys.Count);
- var key = Assert.Single(modelState.Keys, k => k == "CustomParameter.Address.Street");
+ var key = Assert.Single(modelState.Keys);
+ Assert.Equal("CustomParameter.Address.Street", key);
Assert.Equal(ModelValidationState.Valid, modelState[key].ValidationState);
Assert.NotNull(modelState[key].RawValue); // Value is set by test model binder, no need to validate it.
}
diff --git a/test/Microsoft.AspNetCore.Mvc.IntegrationTests/BodyValidationIntegrationTests.cs b/test/Microsoft.AspNetCore.Mvc.IntegrationTests/BodyValidationIntegrationTests.cs
index 4a5f65df79..b6ad7b7428 100644
--- a/test/Microsoft.AspNetCore.Mvc.IntegrationTests/BodyValidationIntegrationTests.cs
+++ b/test/Microsoft.AspNetCore.Mvc.IntegrationTests/BodyValidationIntegrationTests.cs
@@ -4,6 +4,7 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.IO;
+using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc.Abstractions;
@@ -590,9 +591,9 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
Assert.NotNull(boundPerson);
Assert.False(modelState.IsValid);
- Assert.Equal(1, modelState.Keys.Count);
-
- var street = Assert.Single(modelState, kvp => kvp.Key == "CustomParameter.Address.Street").Value;
+ var entry = Assert.Single(modelState);
+ Assert.Equal("CustomParameter.Address.Street", entry.Key);
+ var street = entry.Value;
Assert.Equal(ModelValidationState.Invalid, street.ValidationState);
var error = Assert.Single(street.Errors);
// Mono issue - https://github.com/aspnet/External/issues/19
diff --git a/test/Microsoft.AspNetCore.Mvc.IntegrationTests/CancellationTokenModelBinderIntegrationTest.cs b/test/Microsoft.AspNetCore.Mvc.IntegrationTests/CancellationTokenModelBinderIntegrationTest.cs
index aee2d1b944..a8cbde3141 100644
--- a/test/Microsoft.AspNetCore.Mvc.IntegrationTests/CancellationTokenModelBinderIntegrationTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.IntegrationTests/CancellationTokenModelBinderIntegrationTest.cs
@@ -55,7 +55,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
// ModelState
Assert.True(modelState.IsValid);
- Assert.Equal(0, modelState.Keys.Count);
+ Assert.Empty(modelState.Keys);
}
[Fact]
diff --git a/test/Microsoft.AspNetCore.Mvc.IntegrationTests/SimpleTypeModelBinderIntegrationTest.cs b/test/Microsoft.AspNetCore.Mvc.IntegrationTests/SimpleTypeModelBinderIntegrationTest.cs
index 2d350d3537..5e83e1869a 100644
--- a/test/Microsoft.AspNetCore.Mvc.IntegrationTests/SimpleTypeModelBinderIntegrationTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.IntegrationTests/SimpleTypeModelBinderIntegrationTest.cs
@@ -57,7 +57,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
// ModelState
Assert.True(modelState.IsValid);
- Assert.Equal(1, modelState.Keys.Count);
+ Assert.Equal(1, modelState.Keys.Count());
var key = Assert.Single(modelState.Keys, k => k == "CustomParameter.Address.Zip");
Assert.Equal("1", modelState[key].AttemptedValue);
Assert.Equal("1", modelState[key].RawValue);
@@ -101,7 +101,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
// ModelState
Assert.True(modelState.IsValid);
- Assert.Equal(1, modelState.Keys.Count);
+ Assert.Equal(1, modelState.Keys.Count());
var key = Assert.Single(modelState.Keys, k => k == "Address.Zip");
Assert.Equal("1", modelState[key].AttemptedValue);
Assert.Equal("1", modelState[key].RawValue);
@@ -144,7 +144,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
// ModelState
Assert.True(modelState.IsValid);
- Assert.Equal(1, modelState.Keys.Count);
+ Assert.Equal(1, modelState.Keys.Count());
var key = Assert.Single(modelState.Keys);
Assert.Equal("Parameter1", key);
Assert.Equal("someValue", modelState[key].AttemptedValue);
@@ -188,7 +188,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
// ModelState
Assert.True(modelState.IsValid);
- Assert.Equal(1, modelState.Keys.Count);
+ Assert.Equal(1, modelState.Keys.Count());
var key = Assert.Single(modelState.Keys);
Assert.Equal("Parameter1", key);
Assert.Equal("someValue,otherValue", modelState[key].AttemptedValue);
@@ -512,7 +512,8 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
var modelState = operationContext.ActionContext.ModelState;
// Act
- var modelBindingResult = await argumentBinder.BindModelAsync(parameter, operationContext) ?? default(ModelBindingResult);
+ var modelBindingResult = await argumentBinder.BindModelAsync(parameter, operationContext) ??
+ default(ModelBindingResult);
// Assert
// ModelBindingResult
@@ -529,7 +530,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
// ModelState
Assert.True(modelState.IsValid);
- Assert.Equal(new[] { "Address.Lines", "Address.Zip", "Name" }, modelState.Keys.ToArray());
+ Assert.Equal(new[] { "Address.Lines", "Address.Zip", "Name" }, modelState.Keys.OrderBy(p => p).ToArray());
var entry = modelState["Address.Lines"];
Assert.NotNull(entry);
Assert.Empty(entry.Errors);
diff --git a/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/ModelStateDictionaryExtensionsTest.cs b/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/ModelStateDictionaryExtensionsTest.cs
index 60eee79b76..aca11c043c 100644
--- a/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/ModelStateDictionaryExtensionsTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/ModelStateDictionaryExtensionsTest.cs
@@ -163,7 +163,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
{
// Arrange
var dictionary = new ModelStateDictionary();
- dictionary.Add("Text", new ModelStateEntry());
+ dictionary.SetModelValue("Text", "value", "value");
// Act
dictionary.Remove
(model => model.Text);
@@ -177,7 +177,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
{
// Arrange
var dictionary = new ModelStateDictionary();
- dictionary.Add("Child.Text", new ModelStateEntry());
+ dictionary.SetModelValue("Child.Text", "value", "value");
// Act
dictionary.Remove(model => model.Child.Text);
@@ -191,7 +191,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
{
// Arrange
var dictionary = new ModelStateDictionary();
- dictionary.Add("Child.Value", new ModelStateEntry());
+ dictionary.SetModelValue("Child.Value", "value", "value");
// Act
dictionary.Remove(model => model.Child.Value);
@@ -206,7 +206,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
// Arrange
var variable = "Test";
var dictionary = new ModelStateDictionary();
- dictionary.Add("variable", new ModelStateEntry());
+ dictionary.SetModelValue("variable", "value", "value");
// Act
dictionary.Remove(model => variable);
@@ -219,12 +219,12 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
public void RemoveAll_ForSingleExpression_RemovesModelStateKeys()
{
// Arrange
- var state = new ModelStateEntry();
var dictionary = new ModelStateDictionary();
- dictionary.Add("Key", state);
- dictionary.Add("Text", new ModelStateEntry());
- dictionary.Add("Text.Length", new ModelStateEntry());
+ dictionary.SetModelValue("Key", "value1", "value1");
+ dictionary.SetModelValue("Text", "value2", "value2");
+ dictionary.SetModelValue("Text.Length", "value3", "value3");
+ var expected = dictionary["Key"];
// Act
dictionary.RemoveAll(model => model.Text);
@@ -233,19 +233,18 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
var modelState = Assert.Single(dictionary);
Assert.Equal("Key", modelState.Key);
- Assert.Same(state, modelState.Value);
+ Assert.Same(expected, modelState.Value);
}
[Fact]
public void RemoveAll_ForRelationExpression_RemovesModelStateKeys()
{
// Arrange
- var state = new ModelStateEntry();
var dictionary = new ModelStateDictionary();
-
- dictionary.Add("Key", state);
- dictionary.Add("Child", new ModelStateEntry());
- dictionary.Add("Child.Text", new ModelStateEntry());
+ dictionary.SetModelValue("Key", "value1", "value1");
+ dictionary.SetModelValue("Child", "value2", "value2");
+ dictionary.SetModelValue("Child.Text", "value3", "value3");
+ var expected = dictionary["Key"];
// Act
dictionary.RemoveAll(model => model.Child);
@@ -254,18 +253,17 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
var modelState = Assert.Single(dictionary);
Assert.Equal("Key", modelState.Key);
- Assert.Same(state, modelState.Value);
+ Assert.Same(expected, modelState.Value);
}
[Fact]
public void RemoveAll_ForImplicitlyCastedToObjectExpression_RemovesModelStateKeys()
{
// Arrange
- var state = new ModelStateEntry();
var dictionary = new ModelStateDictionary();
-
- dictionary.Add("Child", state);
- dictionary.Add("Child.Value", new ModelStateEntry());
+ dictionary.SetModelValue("Child", "value1", "value1");
+ dictionary.SetModelValue("Child.Value", "value2", "value2");
+ var expected = dictionary["child"];
// Act
dictionary.RemoveAll(model => model.Child.Value);
@@ -274,7 +272,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
var modelState = Assert.Single(dictionary);
Assert.Equal("Child", modelState.Key);
- Assert.Same(state, modelState.Value);
+ Assert.Same(expected, modelState.Value);
}
[Fact]
@@ -282,13 +280,13 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
{
// Arrange
var variable = "Test";
- var state = new ModelStateEntry();
var dictionary = new ModelStateDictionary();
+ dictionary.SetModelValue("Key", "value1", "value1");
+ dictionary.SetModelValue("variable", "value2", "value2");
+ dictionary.SetModelValue("variable.Text", "value3", "value3");
+ dictionary.SetModelValue("variable.Value", "value4", "value4");
- dictionary.Add("Key", state);
- dictionary.Add("variable", new ModelStateEntry());
- dictionary.Add("variable.Text", new ModelStateEntry());
- dictionary.Add("variable.Value", new ModelStateEntry());
+ var expected = dictionary["Key"];
// Act
dictionary.RemoveAll(model => variable);
@@ -297,21 +295,20 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
var modelState = Assert.Single(dictionary);
Assert.Equal("Key", modelState.Key);
- Assert.Same(state, modelState.Value);
+ Assert.Same(expected, modelState.Value);
}
[Fact]
public void RemoveAll_ForModelExpression_RemovesModelPropertyKeys()
{
// Arrange
- var state = new ModelStateEntry();
var dictionary = new ModelStateDictionary();
-
- dictionary.Add("Key", state);
- dictionary.Add("Text", new ModelStateEntry());
- dictionary.Add("Child", new ModelStateEntry());
- dictionary.Add("Child.Text", new ModelStateEntry());
- dictionary.Add("Child.NoValue", new ModelStateEntry());
+ dictionary.SetModelValue("Key", "value1", "value1");
+ dictionary.SetModelValue("Text", "value2", "value2");
+ dictionary.SetModelValue("Child", "value3", "value3");
+ dictionary.SetModelValue("Child.Text", "value4", "value4");
+ dictionary.SetModelValue("Child.NoValue", "value5", "value5");
+ var expected = dictionary["Key"];
// Act
dictionary.RemoveAll(model => model);
@@ -320,7 +317,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
var modelState = Assert.Single(dictionary);
Assert.Equal("Key", modelState.Key);
- Assert.Same(state, modelState.Value);
+ Assert.Same(expected, modelState.Value);
}
private class TestModel
diff --git a/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/Rendering/HtmlHelperDisplayTextTest.cs b/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/Rendering/HtmlHelperDisplayTextTest.cs
index 1adc9e2dc2..d0bbe3118f 100644
--- a/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/Rendering/HtmlHelperDisplayTextTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/Rendering/HtmlHelperDisplayTextTest.cs
@@ -259,10 +259,10 @@ namespace Microsoft.AspNetCore.Mvc.Rendering
viewData["FieldPrefix.Name"] = "View data dictionary value";
viewData.TemplateInfo.HtmlFieldPrefix = "FieldPrefix";
- var modelState = new ModelStateEntry();
- modelState.RawValue = new string[] { "Attempted name value" };
- modelState.AttemptedValue = "Attempted name value";
- viewData.ModelState["FieldPrefix.Name"] = modelState;
+ viewData.ModelState.SetModelValue(
+ "FieldPrefix.Name",
+ "Attempted name value",
+ "Attempted name value");
// Act
var result = helper.DisplayText("Name");
@@ -284,10 +284,10 @@ namespace Microsoft.AspNetCore.Mvc.Rendering
viewData["Name"] = "View data dictionary value";
viewData.TemplateInfo.HtmlFieldPrefix = "FieldPrefix";
- var modelState = new ModelStateEntry();
- modelState.RawValue = new string[] { "Attempted name value" };
- modelState.AttemptedValue = "Attempted name value";
- viewData.ModelState["FieldPrefix.Name"] = modelState;
+ viewData.ModelState.SetModelValue(
+ "FieldPrefix.Name",
+ "Attempted name value",
+ "Attempted name value");
// Act
var result = helper.DisplayTextFor(m => m.Name);
diff --git a/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/Rendering/HtmlHelperHiddenTest.cs b/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/Rendering/HtmlHelperHiddenTest.cs
index 51312a93ef..8c2946c47e 100644
--- a/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/Rendering/HtmlHelperHiddenTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/Rendering/HtmlHelperHiddenTest.cs
@@ -361,9 +361,18 @@ namespace Microsoft.AspNetCore.Mvc.Rendering
idAttributeDotReplacement: "$");
helper.ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix = "MyPrefix";
helper.ViewData.ModelState.Clear();
- helper.ViewData.ModelState.Add("Property1", GetModelStateEntry("modelstate-without-prefix"));
- helper.ViewData.ModelState.Add("MyPrefix.Property1", GetModelStateEntry("modelstate-with-prefix"));
- helper.ViewData.ModelState.Add("MyPrefix$Property1", GetModelStateEntry("modelstate-with-iddotreplacement"));
+ helper.ViewData.ModelState.SetModelValue(
+ "Property1",
+ "modelstate-without-prefix",
+ "modelstate-without-prefix");
+ helper.ViewData.ModelState.SetModelValue(
+ "MyPrefix.Property1",
+ "modelstate-with-prefix",
+ "modelstate-with-prefix");
+ helper.ViewData.ModelState.SetModelValue(
+ "MyPrefix$Property1",
+ "modelstate-with-iddotreplacement",
+ "modelstate-with-iddotreplacement");
// Act
var result = helper.Hidden("Property1", "explicit-value", htmlAttributes: null);
@@ -411,7 +420,7 @@ namespace Microsoft.AspNetCore.Mvc.Rendering
// Act and Assert
ExceptionAssert.ThrowsArgument(
- () => helper.Hidden(string.Empty, string.Empty, attributes),
+ () => helper.Hidden(string.Empty, string.Empty, attributes),
"expression",
expected);
}
@@ -660,9 +669,18 @@ namespace Microsoft.AspNetCore.Mvc.Rendering
helper.ViewData.Model.Property1 = "propValue";
helper.ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix = "MyPrefix";
helper.ViewData.ModelState.Clear();
- helper.ViewData.ModelState.Add("Property1", GetModelStateEntry("modelstate-without-prefix"));
- helper.ViewData.ModelState.Add("MyPrefix.Property1", GetModelStateEntry("modelstate-with-prefix"));
- helper.ViewData.ModelState.Add("MyPrefix$Property1", GetModelStateEntry("modelstate-with-iddotreplacement"));
+ helper.ViewData.ModelState.SetModelValue(
+ "Property1",
+ "modelstate-without-prefix",
+ "modelstate-without-prefix");
+ helper.ViewData.ModelState.SetModelValue(
+ "MyPrefix.Property1",
+ "modelstate-with-prefix",
+ "modelstate-with-prefix");
+ helper.ViewData.ModelState.SetModelValue(
+ "MyPrefix$Property1",
+ "modelstate-with-iddotreplacement",
+ "modelstate-with-iddotreplacement");
// Act
var result = helper.HiddenFor(m => m.Property1, htmlAttributes: null);
@@ -802,9 +820,9 @@ namespace Microsoft.AspNetCore.Mvc.Rendering
{
// Arrange
var viewData = GetViewDataWithNullModelAndNonNullViewData();
- viewData.ModelState.Add("pre.Property3[key]", GetModelStateEntry("Prop3Val"));
- viewData.ModelState.Add("pre.Property4.Property5", GetModelStateEntry("Prop5Val"));
- viewData.ModelState.Add("pre.Property4.Property6[0]", GetModelStateEntry("Prop6Val"));
+ viewData.ModelState.SetModelValue("pre.Property3[key]", "Prop3Val", "Prop3Val");
+ viewData.ModelState.SetModelValue("pre.Property4.Property5", "Prop5Val", "Prop5Val");
+ viewData.ModelState.SetModelValue("pre.Property4.Property6[0]", "Prop6Val", "Prop6Val");
var helper = DefaultTemplatesUtilities.GetHtmlHelper(viewData);
viewData.TemplateInfo.HtmlFieldPrefix = "pre";
@@ -911,7 +929,7 @@ namespace Microsoft.AspNetCore.Mvc.Rendering
{
var viewData = GetViewDataWithNonNullModel();
viewData["Property1"] = "view-data-val";
- viewData.ModelState.Add("Property1", GetModelStateEntry("ModelStateValue"));
+ viewData.ModelState.SetModelValue("Property1", "ModelStateValue", "ModelStateValue");
return viewData;
}
@@ -924,15 +942,6 @@ namespace Microsoft.AspNetCore.Mvc.Rendering
return viewData;
}
- private static ModelStateEntry GetModelStateEntry(string value)
- {
- return new ModelStateEntry
- {
- RawValue = new string[] { value },
- AttemptedValue = value,
- };
- }
-
public class HiddenModel
{
public string Property1 { get; set; }
diff --git a/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/Rendering/HtmlHelperPasswordTest.cs b/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/Rendering/HtmlHelperPasswordTest.cs
index bcbeadd133..41a3a9654f 100644
--- a/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/Rendering/HtmlHelperPasswordTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/Rendering/HtmlHelperPasswordTest.cs
@@ -324,9 +324,9 @@ namespace Microsoft.AspNetCore.Mvc.Rendering
{
// Arrange
var viewData = GetViewDataWithModelStateAndModelAndViewDataValues();
- viewData.ModelState.Add("pre.Property3[key]", GetModelStateEntry("Property3Val"));
- viewData.ModelState.Add("pre.Property4.Property5", GetModelStateEntry("Property5Val"));
- viewData.ModelState.Add("pre.Property4.Property6[0]", GetModelStateEntry("Property6Val"));
+ viewData.ModelState.SetModelValue("pre.Property3[key]", "Property3Val", "Property3Val");
+ viewData.ModelState.SetModelValue("pre.Property4.Property5", "Property5Val", "Property5Val");
+ viewData.ModelState.SetModelValue("pre.Property4.Property6[0]", "Property6Val", "Property6Val");
viewData["pre.Property3[key]"] = "vdd-value1";
viewData["pre.Property4.Property5"] = "vdd-value2";
viewData["pre.Property4.Property6[0]"] = "vdd-value3";
@@ -426,7 +426,7 @@ namespace Microsoft.AspNetCore.Mvc.Rendering
{
var viewData = GetViewDataWithNullModelAndNonEmptyViewData();
viewData.Model = new PasswordModel();
- viewData.ModelState.Add("Property1", GetModelStateEntry("ModelStateValue"));
+ viewData.ModelState.SetModelValue("Property1", "ModelStateValue", "ModelStateValue");
return viewData;
}
@@ -439,15 +439,6 @@ namespace Microsoft.AspNetCore.Mvc.Rendering
return viewData;
}
- private static ModelStateEntry GetModelStateEntry(string value)
- {
- return new ModelStateEntry
- {
- RawValue = new string[] { value },
- AttemptedValue = value,
- };
- }
-
public class PasswordModel
{
public string Property1 { get; set; }
diff --git a/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/Rendering/HtmlHelperSelectTest.cs b/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/Rendering/HtmlHelperSelectTest.cs
index f9cf3b33f1..bb9b443164 100644
--- a/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/Rendering/HtmlHelperSelectTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/Rendering/HtmlHelperSelectTest.cs
@@ -381,7 +381,7 @@ namespace Microsoft.AspNetCore.Mvc.Rendering
// Act & Assert
var ex = Assert.Throws(
- "expression",
+ "expression",
() => helper.DropDownList(null, selectList: null, optionLabel: null, htmlAttributes: null));
Assert.Equal(expected, ex.Message);
}
@@ -412,19 +412,15 @@ namespace Microsoft.AspNetCore.Mvc.Rendering
// Arrange
var expectedHtml = GetExpectedSelectElement(SelectSources.ModelStateEntry, allowMultiple: false);
- var modelState = new ModelStateDictionary
- {
- ["Property1"] = new ModelStateEntry
- {
- RawValue = new string[] { SelectSources.ModelStateEntry.ToString() },
- AttemptedValue = SelectSources.ModelStateEntry.ToString()
- },
- ["Prefix.Property1"] = new ModelStateEntry
- {
- RawValue = new string[] { SelectSources.ModelStateEntryWithPrefix.ToString() },
- AttemptedValue = SelectSources.ModelStateEntryWithPrefix.ToString()
- },
- };
+ var modelState = new ModelStateDictionary();
+ modelState.SetModelValue(
+ "Property1",
+ SelectSources.ModelStateEntry,
+ SelectSources.ModelStateEntry.ToString());
+ modelState.SetModelValue(
+ "Prefix.Property1",
+ SelectSources.ModelStateEntryWithPrefix,
+ SelectSources.ModelStateEntryWithPrefix.ToString());
var provider = TestModelMetadataProvider.CreateDefaultProvider();
var viewData = new ViewDataDictionary(provider, modelState)
@@ -453,19 +449,15 @@ namespace Microsoft.AspNetCore.Mvc.Rendering
SelectSources.ModelStateEntryWithPrefix,
allowMultiple: false);
- var modelState = new ModelStateDictionary
- {
- ["Property1"] = new ModelStateEntry
- {
- RawValue = new string[] { SelectSources.ModelStateEntry.ToString() },
- AttemptedValue = SelectSources.ModelStateEntry.ToString()
- },
- ["Prefix.Property1"] = new ModelStateEntry
- {
- RawValue = new string[] { SelectSources.ModelStateEntryWithPrefix.ToString() },
- AttemptedValue = SelectSources.ModelStateEntryWithPrefix.ToString()
- },
- };
+ var modelState = new ModelStateDictionary();
+ modelState.SetModelValue(
+ "Property1",
+ SelectSources.ModelStateEntry,
+ SelectSources.ModelStateEntry.ToString());
+ modelState.SetModelValue(
+ "Prefix.Property1",
+ SelectSources.ModelStateEntryWithPrefix,
+ SelectSources.ModelStateEntryWithPrefix.ToString());
var provider = TestModelMetadataProvider.CreateDefaultProvider();
var viewData = new ViewDataDictionary(provider, modelState)
@@ -823,19 +815,15 @@ namespace Microsoft.AspNetCore.Mvc.Rendering
// Arrange
var expectedHtml = GetExpectedSelectElement(SelectSources.ModelStateEntry, allowMultiple: true);
- var modelState = new ModelStateDictionary
- {
- ["Property1"] = new ModelStateEntry
- {
- RawValue = new string[] { SelectSources.ModelStateEntry.ToString() },
- AttemptedValue = SelectSources.ModelStateEntry.ToString()
- },
- ["Prefix.Property1"] = new ModelStateEntry
- {
- RawValue = new string[] { SelectSources.ModelStateEntryWithPrefix.ToString() },
- AttemptedValue = SelectSources.ModelStateEntryWithPrefix.ToString()
- },
- };
+ var modelState = new ModelStateDictionary();
+ modelState.SetModelValue(
+ "Property1",
+ SelectSources.ModelStateEntry,
+ SelectSources.ModelStateEntry.ToString());
+ modelState.SetModelValue(
+ "Prefix.Property1",
+ SelectSources.ModelStateEntryWithPrefix,
+ SelectSources.ModelStateEntryWithPrefix.ToString());
var provider = TestModelMetadataProvider.CreateDefaultProvider();
var viewData = new ViewDataDictionary(provider, modelState)
@@ -864,19 +852,15 @@ namespace Microsoft.AspNetCore.Mvc.Rendering
SelectSources.ModelStateEntryWithPrefix,
allowMultiple: true);
- var modelState = new ModelStateDictionary
- {
- ["Property1"] = new ModelStateEntry
- {
- RawValue = new string[] { SelectSources.ModelStateEntry.ToString() },
- AttemptedValue = SelectSources.ModelStateEntry.ToString()
- },
- ["Prefix.Property1"] = new ModelStateEntry
- {
- RawValue = new string[] { SelectSources.ModelStateEntryWithPrefix.ToString() },
- AttemptedValue = SelectSources.ModelStateEntryWithPrefix.ToString()
- },
- };
+ var modelState = new ModelStateDictionary();
+ modelState.SetModelValue(
+ "Property1",
+ SelectSources.ModelStateEntry,
+ SelectSources.ModelStateEntry.ToString());
+ modelState.SetModelValue(
+ "Prefix.Property1",
+ SelectSources.ModelStateEntryWithPrefix,
+ SelectSources.ModelStateEntryWithPrefix.ToString());
var provider = TestModelMetadataProvider.CreateDefaultProvider();
var viewData = new ViewDataDictionary(provider, modelState)
diff --git a/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/Rendering/HtmlHelperValidationSummaryTest.cs b/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/Rendering/HtmlHelperValidationSummaryTest.cs
index 36257f9ba2..9f4b84c9bd 100644
--- a/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/Rendering/HtmlHelperValidationSummaryTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/Rendering/HtmlHelperValidationSummaryTest.cs
@@ -3,6 +3,7 @@
using System;
using System.Collections.Generic;
+using System.Collections.ObjectModel;
using System.ComponentModel.DataAnnotations;
using Microsoft.AspNetCore.Mvc.ModelBinding;
using Microsoft.AspNetCore.Mvc.TestCommon;
@@ -109,13 +110,13 @@ namespace Microsoft.AspNetCore.Mvc.Rendering
"HtmlEncode[[This is an error for Property3.]]" + Environment.NewLine +
" ";
var divWithAllErrors = "