Clean up `AssociatedMetadataProviderTest`
- remove unused nested class `ModelWithReadOnlyProperty` - remove unecessary nested classes `RangeAttribute` and `RequiredAttribute` - use `Assert.NotEmpty()` and `Assert.Single()` where appropriate
This commit is contained in:
parent
2eec0bbf6d
commit
266644560f
|
|
@ -14,6 +14,7 @@ namespace Microsoft.AspNet.Mvc.ModelBinding
|
||||||
public class AssociatedMetadataProviderTest
|
public class AssociatedMetadataProviderTest
|
||||||
{
|
{
|
||||||
// GetMetadataForProperties
|
// GetMetadataForProperties
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void GetMetadataForPropertiesCreatesMetadataForAllPropertiesOnModelWithPropertyValues()
|
public void GetMetadataForPropertiesCreatesMetadataForAllPropertiesOnModelWithPropertyValues()
|
||||||
{
|
{
|
||||||
|
|
@ -26,18 +27,21 @@ namespace Microsoft.AspNet.Mvc.ModelBinding
|
||||||
provider.GetMetadataForProperties(model, typeof(PropertyModel)).ToList();
|
provider.GetMetadataForProperties(model, typeof(PropertyModel)).ToList();
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
var local = provider.CreateMetadataPrototypeLog.Single(m => m.ContainerType == typeof(PropertyModel) &&
|
var local = Assert.Single(
|
||||||
m.PropertyName == "LocalAttributes");
|
provider.CreateMetadataPrototypeLog,
|
||||||
|
m => m.ContainerType == typeof(PropertyModel) && m.PropertyName == "LocalAttributes");
|
||||||
Assert.Equal(typeof(int), local.ModelType);
|
Assert.Equal(typeof(int), local.ModelType);
|
||||||
Assert.True(local.Attributes.Any(a => a is RequiredAttribute));
|
Assert.True(local.Attributes.Any(a => a is RequiredAttribute));
|
||||||
|
|
||||||
var metadata = provider.CreateMetadataPrototypeLog.Single(m => m.ContainerType == typeof(PropertyModel) &&
|
var metadata = Assert.Single(
|
||||||
m.PropertyName == "MetadataAttributes");
|
provider.CreateMetadataPrototypeLog,
|
||||||
|
m => m.ContainerType == typeof(PropertyModel) && m.PropertyName == "MetadataAttributes");
|
||||||
Assert.Equal(typeof(string), metadata.ModelType);
|
Assert.Equal(typeof(string), metadata.ModelType);
|
||||||
Assert.True(metadata.Attributes.Any(a => a is RangeAttribute));
|
Assert.True(metadata.Attributes.Any(a => a is RangeAttribute));
|
||||||
|
|
||||||
var mixed = provider.CreateMetadataPrototypeLog.Single(m => m.ContainerType == typeof(PropertyModel) &&
|
var mixed = Assert.Single(
|
||||||
m.PropertyName == "MixedAttributes");
|
provider.CreateMetadataPrototypeLog,
|
||||||
|
m => m.ContainerType == typeof(PropertyModel) && m.PropertyName == "MixedAttributes");
|
||||||
Assert.Equal(typeof(double), mixed.ModelType);
|
Assert.Equal(typeof(double), mixed.ModelType);
|
||||||
Assert.True(mixed.Attributes.Any(a => a is RequiredAttribute));
|
Assert.True(mixed.Attributes.Any(a => a is RequiredAttribute));
|
||||||
Assert.True(mixed.Attributes.Any(a => a is RangeAttribute));
|
Assert.True(mixed.Attributes.Any(a => a is RangeAttribute));
|
||||||
|
|
@ -60,17 +64,18 @@ namespace Microsoft.AspNet.Mvc.ModelBinding
|
||||||
Assert.Equal(value, provider.CreateMetadataFromPrototypeLog[0].Model);
|
Assert.Equal(value, provider.CreateMetadataFromPrototypeLog[0].Model);
|
||||||
Assert.Null(provider.CreateMetadataFromPrototypeLog[1].Model);
|
Assert.Null(provider.CreateMetadataFromPrototypeLog[1].Model);
|
||||||
|
|
||||||
var valueMetadata = provider.CreateMetadataPrototypeLog.Single(m => m.ContainerType == modelType &&
|
var valueMetadata = Assert.Single(
|
||||||
m.PropertyName == "Value");
|
provider.CreateMetadataPrototypeLog,
|
||||||
|
m => m.ContainerType == modelType && m.PropertyName == "Value");
|
||||||
Assert.Equal(typeof(string), valueMetadata.ModelType);
|
Assert.Equal(typeof(string), valueMetadata.ModelType);
|
||||||
Assert.Single(valueMetadata.Attributes.OfType<MinLengthAttribute>());
|
Assert.Single(valueMetadata.Attributes.OfType<MinLengthAttribute>());
|
||||||
|
|
||||||
var testPropertyMetadata = provider.CreateMetadataPrototypeLog.Single(m => m.ContainerType == modelType &&
|
var testPropertyMetadata = Assert.Single(
|
||||||
m.PropertyName == "TestProperty");
|
provider.CreateMetadataPrototypeLog,
|
||||||
|
m => m.ContainerType == modelType && m.PropertyName == "TestProperty");
|
||||||
Assert.Equal(typeof(string), testPropertyMetadata.ModelType);
|
Assert.Equal(typeof(string), testPropertyMetadata.ModelType);
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetMetadataForProperties
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void GetMetadataForPropertyWithNullContainerReturnsMetadataWithNullValuesForProperties()
|
public void GetMetadataForPropertyWithNullContainerReturnsMetadataWithNullValuesForProperties()
|
||||||
{
|
{
|
||||||
|
|
@ -81,7 +86,7 @@ namespace Microsoft.AspNet.Mvc.ModelBinding
|
||||||
provider.GetMetadataForProperties(null, typeof(PropertyModel)).ToList(); // Call ToList() to force the lazy evaluation to evaluate
|
provider.GetMetadataForProperties(null, typeof(PropertyModel)).ToList(); // Call ToList() to force the lazy evaluation to evaluate
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.True(provider.CreateMetadataFromPrototypeLog.Any());
|
Assert.NotEmpty(provider.CreateMetadataFromPrototypeLog);
|
||||||
foreach (var parms in provider.CreateMetadataFromPrototypeLog)
|
foreach (var parms in provider.CreateMetadataFromPrototypeLog)
|
||||||
{
|
{
|
||||||
Assert.Null(parms.Model);
|
Assert.Null(parms.Model);
|
||||||
|
|
@ -133,9 +138,10 @@ namespace Microsoft.AspNet.Mvc.ModelBinding
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Same(metadata, result);
|
Assert.Same(metadata, result);
|
||||||
Assert.True(provider.CreateMetadataPrototypeLog
|
var localAttributes = Assert.Single(
|
||||||
.Single(parameters => parameters.PropertyName == "LocalAttributes")
|
provider.CreateMetadataPrototypeLog,
|
||||||
.Attributes.Any(a => a is RequiredAttribute));
|
parameters => parameters.PropertyName == "LocalAttributes");
|
||||||
|
Assert.Single(localAttributes.Attributes, a => a is RequiredAttribute);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -151,8 +157,10 @@ namespace Microsoft.AspNet.Mvc.ModelBinding
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Same(metadata, result);
|
Assert.Same(metadata, result);
|
||||||
var parmaters = provider.CreateMetadataPrototypeLog.Single(p => p.PropertyName == "MetadataAttributes");
|
var parmaters = Assert.Single(
|
||||||
Assert.True(parmaters.Attributes.Any(a => a is RangeAttribute));
|
provider.CreateMetadataPrototypeLog,
|
||||||
|
p => p.PropertyName == "MetadataAttributes");
|
||||||
|
Assert.Single(parmaters.Attributes, a => a is RangeAttribute);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -168,9 +176,9 @@ namespace Microsoft.AspNet.Mvc.ModelBinding
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Same(metadata, result);
|
Assert.Same(metadata, result);
|
||||||
var parms = provider.CreateMetadataPrototypeLog.Single(p => p.PropertyName == "MixedAttributes");
|
var parms = Assert.Single(provider.CreateMetadataPrototypeLog, p => p.PropertyName == "MixedAttributes");
|
||||||
Assert.True(parms.Attributes.Any(a => a is RequiredAttribute));
|
Assert.Single(parms.Attributes, a => a is RequiredAttribute);
|
||||||
Assert.True(parms.Attributes.Any(a => a is RangeAttribute));
|
Assert.Single(parms.Attributes, a => a is RangeAttribute);
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetMetadataForType
|
// GetMetadataForType
|
||||||
|
|
@ -188,8 +196,8 @@ namespace Microsoft.AspNet.Mvc.ModelBinding
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Same(metadata, result);
|
Assert.Same(metadata, result);
|
||||||
var parms = provider.CreateMetadataPrototypeLog.Single(p => p.ModelType == typeof(TypeModel));
|
var parms = Assert.Single(provider.CreateMetadataPrototypeLog, p => p.ModelType == typeof(TypeModel));
|
||||||
Assert.True(parms.Attributes.Any(a => a is ReadOnlyAttribute));
|
Assert.Single(parms.Attributes, a => a is ReadOnlyAttribute);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -227,22 +235,6 @@ namespace Microsoft.AspNet.Mvc.ModelBinding
|
||||||
public string Value { get; set; }
|
public string Value { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
private sealed class RequiredAttribute : Attribute
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
private sealed class RangeAttribute : Attribute
|
|
||||||
{
|
|
||||||
public RangeAttribute(int min, int max)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private class ModelWithReadOnlyProperty
|
|
||||||
{
|
|
||||||
public int ReadOnlyProperty { get; private set; }
|
|
||||||
}
|
|
||||||
|
|
||||||
#if NET45 // No [ReadOnly] in K
|
#if NET45 // No [ReadOnly] in K
|
||||||
[ReadOnly(true)]
|
[ReadOnly(true)]
|
||||||
private class TypeModel
|
private class TypeModel
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue