Re-enable few tests on Mono
This commit is contained in:
parent
59334dcf17
commit
8e8de413f8
|
|
@ -2,18 +2,17 @@
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.Linq;
|
||||||
using Microsoft.AspNetCore.Mvc.DataAnnotations.Internal;
|
using Microsoft.AspNetCore.Mvc.DataAnnotations.Internal;
|
||||||
using Microsoft.AspNetCore.Mvc.ModelBinding;
|
using Microsoft.AspNetCore.Mvc.ModelBinding;
|
||||||
using Microsoft.AspNetCore.Mvc.ModelBinding.Validation;
|
using Microsoft.AspNetCore.Mvc.ModelBinding.Validation;
|
||||||
using Microsoft.AspNetCore.Testing.xunit;
|
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Mvc.Internal
|
namespace Microsoft.AspNetCore.Mvc.Internal
|
||||||
{
|
{
|
||||||
public class ClientValidatorCacheTest
|
public class ClientValidatorCacheTest
|
||||||
{
|
{
|
||||||
[ConditionalFact]
|
[Fact]
|
||||||
[FrameworkSkipCondition(RuntimeFrameworks.Mono)]
|
|
||||||
public void GetValidators_CachesAllValidators()
|
public void GetValidators_CachesAllValidators()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
|
|
@ -25,10 +24,10 @@ namespace Microsoft.AspNetCore.Mvc.Internal
|
||||||
var validators1 = cache.GetValidators(metadata, validatorProvider);
|
var validators1 = cache.GetValidators(metadata, validatorProvider);
|
||||||
|
|
||||||
// Assert - 1
|
// Assert - 1
|
||||||
Assert.Collection(
|
var attribute1 = Assert.Single(validators1.OfType<RequiredAttributeAdapter>()).Attribute;
|
||||||
validators1,
|
var attribute2 = Assert.Single(validators1.OfType<StringLengthAttributeAdapter>()).Attribute;
|
||||||
v => Assert.Same(metadata.ValidatorMetadata[0], Assert.IsType<RequiredAttributeAdapter>(v).Attribute), // Copied by provider
|
Assert.Contains(attribute1, metadata.ValidatorMetadata); // Copied by provider
|
||||||
v => Assert.Same(metadata.ValidatorMetadata[1], Assert.IsType<StringLengthAttributeAdapter>(v).Attribute)); // Copied by provider
|
Assert.Contains(attribute2, metadata.ValidatorMetadata); // Copied by provider
|
||||||
|
|
||||||
// Act - 2
|
// Act - 2
|
||||||
var validators2 = cache.GetValidators(metadata, validatorProvider);
|
var validators2 = cache.GetValidators(metadata, validatorProvider);
|
||||||
|
|
@ -36,14 +35,11 @@ namespace Microsoft.AspNetCore.Mvc.Internal
|
||||||
// Assert - 2
|
// Assert - 2
|
||||||
Assert.Same(validators1, validators2);
|
Assert.Same(validators1, validators2);
|
||||||
|
|
||||||
Assert.Collection(
|
Assert.Contains(validators1[0], validators2); // Cached
|
||||||
validators2,
|
Assert.Contains(validators1[1], validators2); // Cached
|
||||||
v => Assert.Same(validators1[0], v), // Cached
|
|
||||||
v => Assert.Same(validators1[1], v)); // Cached
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[ConditionalFact]
|
[Fact]
|
||||||
[FrameworkSkipCondition(RuntimeFrameworks.Mono)]
|
|
||||||
public void GetValidators_DoesNotCacheValidatorsWithIsReusableFalse()
|
public void GetValidators_DoesNotCacheValidatorsWithIsReusableFalse()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
|
|
@ -55,10 +51,10 @@ namespace Microsoft.AspNetCore.Mvc.Internal
|
||||||
var validators1 = cache.GetValidators(metadata, validatorProvider);
|
var validators1 = cache.GetValidators(metadata, validatorProvider);
|
||||||
|
|
||||||
// Assert - 1
|
// Assert - 1
|
||||||
Assert.Collection(
|
var validator1 = Assert.Single(validators1.OfType<RequiredAttributeAdapter>());
|
||||||
validators1,
|
var validator2 = Assert.Single(validators1.OfType<StringLengthAttributeAdapter>());
|
||||||
v => Assert.Same(metadata.ValidatorMetadata[0], Assert.IsType<RequiredAttributeAdapter>(v).Attribute), // Copied by provider
|
Assert.Contains(validator1.Attribute, metadata.ValidatorMetadata); // Copied by provider
|
||||||
v => Assert.Same(metadata.ValidatorMetadata[1], Assert.IsType<StringLengthAttributeAdapter>(v).Attribute)); // Copied by provider
|
Assert.Contains(validator2.Attribute, metadata.ValidatorMetadata); // Copied by provider
|
||||||
|
|
||||||
// Act - 2
|
// Act - 2
|
||||||
var validators2 = cache.GetValidators(metadata, validatorProvider);
|
var validators2 = cache.GetValidators(metadata, validatorProvider);
|
||||||
|
|
@ -66,10 +62,8 @@ namespace Microsoft.AspNetCore.Mvc.Internal
|
||||||
// Assert - 2
|
// Assert - 2
|
||||||
Assert.NotSame(validators1, validators2);
|
Assert.NotSame(validators1, validators2);
|
||||||
|
|
||||||
Assert.Collection(
|
Assert.Same(validator1, Assert.Single(validators2.OfType<RequiredAttributeAdapter>())); // cached
|
||||||
validators2,
|
Assert.NotSame(validator2, Assert.Single(validators2.OfType<StringLengthAttributeAdapter>())); // not cached
|
||||||
v => Assert.Same(validators1[0], v), // Cached
|
|
||||||
v => Assert.NotSame(validators1[1], v)); // Not cached
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private class TypeWithProperty
|
private class TypeWithProperty
|
||||||
|
|
|
||||||
|
|
@ -2,18 +2,17 @@
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.Linq;
|
||||||
using Microsoft.AspNetCore.Mvc.DataAnnotations.Internal;
|
using Microsoft.AspNetCore.Mvc.DataAnnotations.Internal;
|
||||||
using Microsoft.AspNetCore.Mvc.ModelBinding;
|
using Microsoft.AspNetCore.Mvc.ModelBinding;
|
||||||
using Microsoft.AspNetCore.Mvc.ModelBinding.Validation;
|
using Microsoft.AspNetCore.Mvc.ModelBinding.Validation;
|
||||||
using Microsoft.AspNetCore.Testing.xunit;
|
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Mvc.Internal
|
namespace Microsoft.AspNetCore.Mvc.Internal
|
||||||
{
|
{
|
||||||
public class ValidatorCacheTest
|
public class ValidatorCacheTest
|
||||||
{
|
{
|
||||||
[ConditionalFact]
|
[Fact]
|
||||||
[FrameworkSkipCondition(RuntimeFrameworks.Mono)]
|
|
||||||
public void GetValidators_CachesAllValidators()
|
public void GetValidators_CachesAllValidators()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
|
|
@ -25,10 +24,10 @@ namespace Microsoft.AspNetCore.Mvc.Internal
|
||||||
var validators1 = cache.GetValidators(metadata, validatorProvider);
|
var validators1 = cache.GetValidators(metadata, validatorProvider);
|
||||||
|
|
||||||
// Assert - 1
|
// Assert - 1
|
||||||
Assert.Collection(
|
var attribute1 = Assert.IsType<DataAnnotationsModelValidator>(validators1[0]).Attribute;
|
||||||
validators1,
|
var attribute2 = Assert.IsType<DataAnnotationsModelValidator>(validators1[1]).Attribute;
|
||||||
v => Assert.Same(metadata.ValidatorMetadata[0], Assert.IsType<DataAnnotationsModelValidator>(v).Attribute), // Copied by provider
|
Assert.Contains(attribute1, metadata.ValidatorMetadata); // Copied by provider
|
||||||
v => Assert.Same(metadata.ValidatorMetadata[1], Assert.IsType<DataAnnotationsModelValidator>(v).Attribute)); // Copied by provider
|
Assert.Contains(attribute2, metadata.ValidatorMetadata); // Copied by provider
|
||||||
|
|
||||||
// Act - 2
|
// Act - 2
|
||||||
var validators2 = cache.GetValidators(metadata, validatorProvider);
|
var validators2 = cache.GetValidators(metadata, validatorProvider);
|
||||||
|
|
@ -36,14 +35,11 @@ namespace Microsoft.AspNetCore.Mvc.Internal
|
||||||
// Assert - 2
|
// Assert - 2
|
||||||
Assert.Same(validators1, validators2);
|
Assert.Same(validators1, validators2);
|
||||||
|
|
||||||
Assert.Collection(
|
Assert.Contains(validators1[0], validators2); // Cached
|
||||||
validators2,
|
Assert.Contains(validators1[1], validators2); // Cached
|
||||||
v => Assert.Same(validators1[0], v), // Cached
|
|
||||||
v => Assert.Same(validators1[1], v)); // Cached
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[ConditionalFact]
|
[Fact]
|
||||||
[FrameworkSkipCondition(RuntimeFrameworks.Mono)]
|
|
||||||
public void GetValidators_DoesNotCacheValidatorsWithIsReusableFalse()
|
public void GetValidators_DoesNotCacheValidatorsWithIsReusableFalse()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
|
|
@ -55,10 +51,10 @@ namespace Microsoft.AspNetCore.Mvc.Internal
|
||||||
var validators1 = cache.GetValidators(metadata, validatorProvider);
|
var validators1 = cache.GetValidators(metadata, validatorProvider);
|
||||||
|
|
||||||
// Assert - 1
|
// Assert - 1
|
||||||
Assert.Collection(
|
var validator1 = Assert.IsType<DataAnnotationsModelValidator>(validators1[0]);
|
||||||
validators1,
|
var validator2 = Assert.IsType<DataAnnotationsModelValidator>(validators1[1]);
|
||||||
v => Assert.Same(metadata.ValidatorMetadata[0], Assert.IsType<DataAnnotationsModelValidator>(v).Attribute), // Copied by provider
|
Assert.Contains(validator1.Attribute, metadata.ValidatorMetadata); // Copied by provider
|
||||||
v => Assert.Same(metadata.ValidatorMetadata[1], Assert.IsType<DataAnnotationsModelValidator>(v).Attribute)); // Copied by provider
|
Assert.Contains(validator2.Attribute, metadata.ValidatorMetadata); // Copied by provider
|
||||||
|
|
||||||
// Act - 2
|
// Act - 2
|
||||||
var validators2 = cache.GetValidators(metadata, validatorProvider);
|
var validators2 = cache.GetValidators(metadata, validatorProvider);
|
||||||
|
|
@ -66,10 +62,10 @@ namespace Microsoft.AspNetCore.Mvc.Internal
|
||||||
// Assert - 2
|
// Assert - 2
|
||||||
Assert.NotSame(validators1, validators2);
|
Assert.NotSame(validators1, validators2);
|
||||||
|
|
||||||
Assert.Collection(
|
var requiredValidator = Assert.Single(validators2.Where(v => (v as DataAnnotationsModelValidator).Attribute is RequiredAttribute));
|
||||||
validators2,
|
Assert.Contains(requiredValidator, validators1); // cached
|
||||||
v => Assert.Same(validators1[0], v), // Cached
|
var stringLengthValidator = Assert.Single(validators2.Where(v => (v as DataAnnotationsModelValidator).Attribute is StringLengthAttribute));
|
||||||
v => Assert.NotSame(validators1[1], v)); // Not cached
|
Assert.DoesNotContain(stringLengthValidator, validators1); // not cached
|
||||||
}
|
}
|
||||||
|
|
||||||
private class TypeWithProperty
|
private class TypeWithProperty
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue