![Tests passed successfully](https://img.shields.io/badge/tests-803%20passed%2C%201%20skipped-success) ## 🟒 fixtures/external/FluentValidation.Tests.trx **804** tests were completed in **4s** with **803** passed, **0** failed and **1** skipped. |Test suite|Passed|Failed|Skipped|Time| |:---|---:|---:|---:|---:| |🟒 [FluentValidation.Tests.AbstractValidatorTester](#r0s0)|35|||12ms| |🟒 [FluentValidation.Tests.AccessorCacheTests](#r0s1)|4||1|4ms| |🟒 [FluentValidation.Tests.AssemblyScannerTester](#r0s2)|2|||2ms| |🟒 [FluentValidation.Tests.CascadingFailuresTester](#r0s3)|38|||23ms| |🟒 [FluentValidation.Tests.ChainedValidationTester](#r0s4)|13|||6ms| |🟒 [FluentValidation.Tests.ChainingValidatorsTester](#r0s5)|3|||1ms| |🟒 [FluentValidation.Tests.ChildRulesTests](#r0s6)|2|||7ms| |🟒 [FluentValidation.Tests.CollectionValidatorWithParentTests](#r0s7)|16|||13ms| |🟒 [FluentValidation.Tests.ComplexValidationTester](#r0s8)|17|||26ms| |🟒 [FluentValidation.Tests.ConditionTests](#r0s9)|18|||9ms| |🟒 [FluentValidation.Tests.CreditCardValidatorTests](#r0s10)|2|||2ms| |🟒 [FluentValidation.Tests.CustomFailureActionTester](#r0s11)|3|||1ms| |🟒 [FluentValidation.Tests.CustomMessageFormatTester](#r0s12)|6|||3ms| |🟒 [FluentValidation.Tests.CustomValidatorTester](#r0s13)|10|||6ms| |🟒 [FluentValidation.Tests.DefaultValidatorExtensionTester](#r0s14)|30|||38ms| |🟒 [FluentValidation.Tests.EmailValidatorTests](#r0s15)|36|||18ms| |🟒 [FluentValidation.Tests.EmptyTester](#r0s16)|9|||5ms| |🟒 [FluentValidation.Tests.EnumValidatorTests](#r0s17)|12|||24ms| |🟒 [FluentValidation.Tests.EqualValidatorTests](#r0s18)|10|||3ms| |🟒 [FluentValidation.Tests.ExactLengthValidatorTester](#r0s19)|6|||2ms| |🟒 [FluentValidation.Tests.ExclusiveBetweenValidatorTests](#r0s20)|19|||6ms| |🟒 [FluentValidation.Tests.ExtensionTester](#r0s21)|4|||1ms| |🟒 [FluentValidation.Tests.ForEachRuleTests](#r0s22)|34|||47ms| |🟒 [FluentValidation.Tests.GreaterThanOrEqualToValidatorTester](#r0s23)|14|||5ms| |🟒 [FluentValidation.Tests.GreaterThanValidatorTester](#r0s24)|13|||4ms| |🟒 [FluentValidation.Tests.InclusiveBetweenValidatorTests](#r0s25)|18|||4ms| |🟒 [FluentValidation.Tests.InheritanceValidatorTest](#r0s26)|11|||18ms| |🟒 [FluentValidation.Tests.InlineValidatorTester](#r0s27)|1|||2ms| |🟒 [FluentValidation.Tests.LanguageManagerTests](#r0s28)|21|||28ms| |🟒 [FluentValidation.Tests.LengthValidatorTests](#r0s29)|16|||17ms| |🟒 [FluentValidation.Tests.LessThanOrEqualToValidatorTester](#r0s30)|13|||4ms| |🟒 [FluentValidation.Tests.LessThanValidatorTester](#r0s31)|16|||6ms| |🟒 [FluentValidation.Tests.LocalisedMessagesTester](#r0s32)|6|||3ms| |🟒 [FluentValidation.Tests.LocalisedNameTester](#r0s33)|2|||1ms| |🟒 [FluentValidation.Tests.MemberAccessorTests](#r0s34)|9|||5ms| |🟒 [FluentValidation.Tests.MessageFormatterTests](#r0s35)|10|||2ms| |🟒 [FluentValidation.Tests.ModelLevelValidatorTests](#r0s36)|2|||1ms| |🟒 [FluentValidation.Tests.NameResolutionPluggabilityTester](#r0s37)|3|||2ms| |🟒 [FluentValidation.Tests.NotEmptyTester](#r0s38)|10|||7ms| |🟒 [FluentValidation.Tests.NotEqualValidatorTests](#r0s39)|11|||7ms| |🟒 [FluentValidation.Tests.NotNullTester](#r0s40)|5|||1ms| |🟒 [FluentValidation.Tests.NullTester](#r0s41)|5|||2ms| |🟒 [FluentValidation.Tests.OnFailureTests](#r0s42)|10|||8ms| |🟒 [FluentValidation.Tests.PredicateValidatorTester](#r0s43)|5|||2ms| |🟒 [FluentValidation.Tests.PropertyChainTests](#r0s44)|7|||1ms| |🟒 [FluentValidation.Tests.RegularExpressionValidatorTests](#r0s45)|15|||6ms| |🟒 [FluentValidation.Tests.RuleBuilderTests](#r0s46)|29|||96ms| |🟒 [FluentValidation.Tests.RuleDependencyTests](#r0s47)|14|||3s| |🟒 [FluentValidation.Tests.RulesetTests](#r0s48)|21|||14ms| |🟒 [FluentValidation.Tests.ScalePrecisionValidatorTests](#r0s49)|6|||4ms| |🟒 [FluentValidation.Tests.SharedConditionTests](#r0s50)|42|||42ms| |🟒 [FluentValidation.Tests.StandalonePropertyValidationTester](#r0s51)|1|||0ms| |🟒 [FluentValidation.Tests.StringEnumValidatorTests](#r0s52)|10|||5ms| |🟒 [FluentValidation.Tests.TrackingCollectionTests](#r0s53)|3|||2ms| |🟒 [FluentValidation.Tests.TransformTests](#r0s54)|4|||3ms| |🟒 [FluentValidation.Tests.UserSeverityTester](#r0s55)|7|||3ms| |🟒 [FluentValidation.Tests.UserStateTester](#r0s56)|4|||3ms| |🟒 [FluentValidation.Tests.ValidateAndThrowTester](#r0s57)|14|||25ms| |🟒 [FluentValidation.Tests.ValidationResultTests](#r0s58)|8|||8ms| |🟒 [FluentValidation.Tests.ValidatorDescriptorTester](#r0s59)|5|||1ms| |🟒 [FluentValidation.Tests.ValidatorSelectorTests](#r0s60)|10|||9ms| |🟒 [FluentValidation.Tests.ValidatorTesterTester](#r0s61)|73|||74ms| ### 🟒 FluentValidation.Tests.AbstractValidatorTester ``` 🟒 Can_replace_default_errorcode_resolver 🟒 CanValidateInstancesOfType_returns_false_when_comparing_against_some_other_type 🟒 CanValidateInstancesOfType_returns_true_when_comparing_against_same_type 🟒 CanValidateInstancesOfType_returns_true_when_comparing_against_subclass 🟒 Default_error_code_should_be_class_name 🟒 OverridePropertyName_should_override_property_name 🟒 OverridePropertyName_with_lambda_should_override_property_name 🟒 PreValidate_bypasses_nullcheck_on_instance 🟒 RuleForeach_with_null_instances 🟒 Should_be_valid_when_there_are_no_failures_for_single_property 🟒 Should_not_main_state 🟒 Should_throw_for_non_member_expression_when_validating_single_property 🟒 Should_throw_when_rule_is_null 🟒 Should_validate_public_Field 🟒 Should_validate_single_Field 🟒 Should_validate_single_property 🟒 Should_validate_single_property_where_invalid_property_as_string 🟒 Should_validate_single_property_where_property_as_string 🟒 Uses_named_parameters_to_validate_ruleset 🟒 Validates_single_property_by_path 🟒 Validates_type_when_using_non_generic_validate_overload 🟒 When_the_validators_fail_then_the_errors_Should_be_accessible_via_the_errors_property 🟒 When_the_validators_fail_then_validatorrunner_should_return_false 🟒 When_the_Validators_pass_then_the_validatorRunner_should_return_true 🟒 WhenPreValidationReturnsFalse_ResultReturnToUserImmediatly_Validate(preValidationResult: ) 🟒 WhenPreValidationReturnsFalse_ResultReturnToUserImmediatly_Validate(preValidationResult: AnotherInt Test Message) 🟒 WhenPreValidationReturnsFalse_ResultReturnToUserImmediatly_ValidateAsync(preValidationResult: ) 🟒 WhenPreValidationReturnsFalse_ResultReturnToUserImmediatly_ValidateAsync(preValidationResult: AnotherInt Test Message) 🟒 WhenPreValidationReturnsTrue_ValidatorsGetHit_Validate 🟒 WhenPreValidationReturnsTrue_ValidatorsGetHit_ValidateAsync 🟒 WithErrorCode_should_override_error_code 🟒 WithMessage_and_WithErrorCode_should_override_error_message_and_error_code 🟒 WithMessage_should_override_error_message 🟒 WithName_should_override_field_name 🟒 WithName_should_override_field_name_with_value_from_other_property ``` ### 🟒 FluentValidation.Tests.AccessorCacheTests ``` βšͺ Benchmark 🟒 Equality_comparison_check 🟒 Gets_accessor 🟒 Gets_member_for_nested_property 🟒 Identifies_if_memberexp_acts_on_model_instance ``` ### 🟒 FluentValidation.Tests.AssemblyScannerTester ``` 🟒 Finds_validators_for_types 🟒 ForEach_iterates_over_types ``` ### 🟒 FluentValidation.Tests.CascadingFailuresTester ``` 🟒 Cascade_mode_can_be_set_after_validator_instantiated 🟒 Cascade_mode_can_be_set_after_validator_instantiated_async 🟒 Cascade_mode_can_be_set_after_validator_instantiated_async_legacy 🟒 Cascade_mode_can_be_set_after_validator_instantiated_legacy 🟒 Validation_continues_on_failure 🟒 Validation_continues_on_failure_async 🟒 Validation_continues_on_failure_when_set_to_Stop_globally_and_overriden_at_rule_level 🟒 Validation_continues_on_failure_when_set_to_Stop_globally_and_overriden_at_rule_level_async 🟒 Validation_continues_on_failure_when_set_to_Stop_globally_and_overriden_at_rule_level_async_legacy 🟒 Validation_continues_on_failure_when_set_to_Stop_globally_and_overriden_at_rule_level_legacy 🟒 Validation_continues_on_failure_when_set_to_StopOnFirstFailure_at_validator_level_and_overriden_at_rule_level 🟒 Validation_continues_on_failure_when_set_to_StopOnFirstFailure_at_validator_level_and_overriden_at_rule_level_async 🟒 Validation_continues_on_failure_when_set_to_StopOnFirstFailure_at_validator_level_and_overriden_at_rule_level_async_legacy 🟒 Validation_continues_on_failure_when_set_to_StopOnFirstFailure_at_validator_level_and_overriden_at_rule_level_legacy 🟒 Validation_continues_to_second_validator_when_first_validator_succeeds_and_cascade_set_to_stop 🟒 Validation_continues_to_second_validator_when_first_validator_succeeds_and_cascade_set_to_stop_async 🟒 Validation_continues_to_second_validator_when_first_validator_succeeds_and_cascade_set_to_stop_async_legacy 🟒 Validation_continues_to_second_validator_when_first_validator_succeeds_and_cascade_set_to_stop_legacy 🟒 Validation_continues_when_set_to_Continue_at_validator_level 🟒 Validation_continues_when_set_to_Continue_at_validator_level_async 🟒 Validation_stops_on_failure_when_set_to_Continue_and_overriden_at_rule_level 🟒 Validation_stops_on_failure_when_set_to_Continue_and_overriden_at_rule_level_async 🟒 Validation_stops_on_failure_when_set_to_Continue_and_overriden_at_rule_level_async_legacy 🟒 Validation_stops_on_failure_when_set_to_Continue_and_overriden_at_rule_level_legacy 🟒 Validation_stops_on_first_failure 🟒 Validation_stops_on_first_failure_async 🟒 Validation_stops_on_first_failure_async_legacy 🟒 Validation_stops_on_first_failure_legacy 🟒 Validation_stops_on_first_Failure_when_set_to_Continue_globally_and_overriden_at_rule_level 🟒 Validation_stops_on_first_Failure_when_set_to_Continue_globally_and_overriden_at_rule_level_and_async_validator_is_invoked_synchronously 🟒 Validation_stops_on_first_Failure_when_set_to_Continue_globally_and_overriden_at_rule_level_and_async_validator_is_invoked_synchronously_legacy 🟒 Validation_stops_on_first_Failure_when_set_to_Continue_globally_and_overriden_at_rule_level_async 🟒 Validation_stops_on_first_Failure_when_set_to_Continue_globally_and_overriden_at_rule_level_async_legacy 🟒 Validation_stops_on_first_Failure_when_set_to_Continue_globally_and_overriden_at_rule_level_legacy 🟒 Validation_stops_on_first_failure_when_set_to_StopOnFirstFailure_at_validator_level 🟒 Validation_stops_on_first_failure_when_set_to_StopOnFirstFailure_at_validator_level_async 🟒 Validation_stops_on_first_failure_when_set_to_StopOnFirstFailure_at_validator_level_async_legacy 🟒 Validation_stops_on_first_failure_when_set_to_StopOnFirstFailure_at_validator_level_legacy ``` ### 🟒 FluentValidation.Tests.ChainedValidationTester ``` 🟒 Can_validate_using_validator_for_base_type 🟒 Chained_property_should_be_excluded 🟒 Chained_validator_descriptor 🟒 Chained_validator_should_not_be_invoked_on_null_property 🟒 Condition_should_work_with_chained_property 🟒 Explicitly_included_properties_should_be_propagated_to_nested_validators 🟒 Explicitly_included_properties_should_be_propagated_to_nested_validators_using_strings 🟒 Separate_validation_on_chained_property 🟒 Separate_validation_on_chained_property_conditional 🟒 Separate_validation_on_chained_property_valid 🟒 Should_allow_normal_rules_and_chained_property_on_same_property 🟒 Uses_explicit_ruleset 🟒 Validates_chained_property ``` ### 🟒 FluentValidation.Tests.ChainingValidatorsTester ``` 🟒 Options_should_only_apply_to_current_validator 🟒 Should_create_multiple_validators 🟒 Should_execute_multiple_validators ``` ### 🟒 FluentValidation.Tests.ChildRulesTests ``` 🟒 Can_define_nested_rules_for_collection 🟒 ChildRules_works_with_RuleSet ``` ### 🟒 FluentValidation.Tests.CollectionValidatorWithParentTests ``` 🟒 Async_condition_should_work_with_child_collection 🟒 Can_specify_condition_for_individual_collection_elements 🟒 Can_validate_collection_using_validator_for_base_type 🟒 Collection_should_be_excluded 🟒 Collection_should_be_explicitly_included_with_expression 🟒 Collection_should_be_explicitly_included_with_string 🟒 Condition_should_work_with_child_collection 🟒 Creates_validator_using_context_from_property_value 🟒 Should_override_property_name 🟒 Should_work_with_top_level_collection_validator 🟒 Should_work_with_top_level_collection_validator_and_overriden_name 🟒 Skips_null_items 🟒 Validates_collection 🟒 Validates_collection_asynchronously 🟒 Validates_collection_several_levels_deep 🟒 Validates_collection_several_levels_deep_async ``` ### 🟒 FluentValidation.Tests.ComplexValidationTester ``` 🟒 Async_condition_should_work_with_complex_property 🟒 Async_condition_should_work_with_complex_property_when_validator_invoked_synchronously 🟒 Can_directly_validate_multiple_fields_of_same_type 🟒 Can_validate_using_validator_for_base_type 🟒 Complex_property_should_be_excluded 🟒 Complex_validator_should_not_be_invoked_on_null_property 🟒 Condition_should_work_with_complex_property 🟒 Condition_should_work_with_complex_property_when_invoked_async 🟒 Explicitly_included_properties_should_be_propagated_to_nested_validators 🟒 Explicitly_included_properties_should_be_propagated_to_nested_validators_using_strings 🟒 Multiple_rules_in_chain_with_childvalidator_shouldnt_reuse_accessor 🟒 Multiple_rules_in_chain_with_childvalidator_shouldnt_reuse_accessor_async 🟒 Should_allow_normal_rules_and_complex_property_on_same_property 🟒 Should_override_propertyName 🟒 Validates_child_validator_asynchronously 🟒 Validates_child_validator_synchronously 🟒 Validates_complex_property ``` ### 🟒 FluentValidation.Tests.ConditionTests ``` 🟒 Async_condition_executed_synchronosuly_with_asynchronous_collection_rule 🟒 Async_condition_executed_synchronosuly_with_asynchronous_rule 🟒 Async_condition_executed_synchronosuly_with_synchronous_collection_role 🟒 Async_condition_executed_synchronosuly_with_synchronous_role 🟒 Async_condition_is_applied_to_all_validators_in_the_chain 🟒 Async_condition_is_applied_to_all_validators_in_the_chain_when_executed_synchronously 🟒 Async_condition_is_applied_to_single_validator_in_the_chain_when_ApplyConditionTo_set_to_CurrentValidator 🟒 Condition_is_applied_to_all_validators_in_the_chain 🟒 Condition_is_applied_to_single_validator_in_the_chain_when_ApplyConditionTo_set_to_CurrentValidator 🟒 Sync_condition_is_applied_to_async_validators 🟒 Validation_should_fail_when_async_condition_does_not_match 🟒 Validation_should_fail_when_async_condition_matches 🟒 Validation_should_fail_when_condition_does_not_match 🟒 Validation_should_fail_when_condition_matches 🟒 Validation_should_succeed_when_async_condition_does_not_match 🟒 Validation_should_succeed_when_async_condition_matches 🟒 Validation_should_succeed_when_condition_does_not_match 🟒 Validation_should_succeed_when_condition_matches ``` ### 🟒 FluentValidation.Tests.CreditCardValidatorTests ``` 🟒 IsValidTests 🟒 When_validation_fails_the_default_error_should_be_set ``` ### 🟒 FluentValidation.Tests.CustomFailureActionTester ``` 🟒 Does_not_invoke_action_if_validation_success 🟒 Invokes_custom_action_on_failure 🟒 Passes_object_being_validated_to_action ``` ### 🟒 FluentValidation.Tests.CustomMessageFormatTester ``` 🟒 Replaces_propertyvalue_placeholder 🟒 Replaces_propertyvalue_with_empty_string_when_null 🟒 Should_format_custom_message 🟒 Uses_custom_delegate_for_building_message 🟒 Uses_custom_delegate_for_building_message_only_for_specific_validator 🟒 Uses_property_value_in_message ``` ### 🟒 FluentValidation.Tests.CustomValidatorTester ``` 🟒 New_Custom_Returns_single_failure 🟒 New_Custom_Returns_single_failure_async 🟒 New_custom_uses_empty_property_name_for_model_level_rule 🟒 New_Custom_When_property_name_omitted_infers_property_name 🟒 New_Custom_When_property_name_omitted_infers_property_name_nested 🟒 New_Custom_within_ruleset 🟒 New_CustomAsync_within_ruleset 🟒 Perserves_property_chain_using_custom 🟒 Runs_async_rule_synchronously_when_validator_invoked_synchronously 🟒 Runs_sync_rule_asynchronously_when_validator_invoked_asynchronously ``` ### 🟒 FluentValidation.Tests.DefaultValidatorExtensionTester ``` 🟒 Empty_should_create_EmptyValidator 🟒 Equal_should_create_EqualValidator_with_explicit_value 🟒 Equal_should_create_EqualValidator_with_lambda 🟒 GreaterThan_should_create_GreaterThanValidator_with_explicit_value 🟒 GreaterThan_should_create_GreaterThanValidator_with_lambda 🟒 GreaterThanOrEqual_should_create_GreaterThanOrEqualValidator_with_explicit_value 🟒 GreaterThanOrEqual_should_create_GreaterThanOrEqualValidator_with_lambda 🟒 GreaterThanOrEqual_should_create_GreaterThanOrEqualValidator_with_lambda_with_other_Nullable 🟒 Length_should_create_ExactLengthValidator 🟒 Length_should_create_LengthValidator 🟒 Length_should_create_MaximumLengthValidator 🟒 Length_should_create_MinimumLengthValidator 🟒 LessThan_should_create_LessThanValidator_with_explicit_value 🟒 LessThan_should_create_LessThanValidator_with_lambda 🟒 LessThanOrEqual_should_create_LessThanOrEqualValidator_with_explicit_value 🟒 LessThanOrEqual_should_create_LessThanOrEqualValidator_with_lambda 🟒 LessThanOrEqual_should_create_LessThanOrEqualValidator_with_lambda_with_other_Nullable 🟒 Must_should_create_PredicateValidator_with_context 🟒 Must_should_create_PredicateValidator_with_PropertyValidatorContext 🟒 Must_should_create_PredicteValidator 🟒 MustAsync_should_create_AsyncPredicateValidator_with_context 🟒 MustAsync_should_create_AsyncPredicateValidator_with_PropertyValidatorContext 🟒 MustAsync_should_create_AsyncPredicteValidator 🟒 MustAsync_should_not_throw_InvalidCastException 🟒 NotEmpty_should_create_NotEmptyValidator 🟒 NotEqual_should_create_NotEqualValidator_with_explicit_value 🟒 NotEqual_should_create_NotEqualValidator_with_lambda 🟒 NotNull_should_create_NotNullValidator 🟒 ScalePrecision_should_create_ScalePrecisionValidator 🟒 ScalePrecision_should_create_ScalePrecisionValidator_with_ignore_trailing_zeros ``` ### 🟒 FluentValidation.Tests.EmailValidatorTests ``` 🟒 Fails_email_validation_aspnetcore_compatible(email: " \r \t \n") 🟒 Fails_email_validation_aspnetcore_compatible(email: "") 🟒 Fails_email_validation_aspnetcore_compatible(email: "@someDomain.com") 🟒 Fails_email_validation_aspnetcore_compatible(email: "@someDomain@abc.com") 🟒 Fails_email_validation_aspnetcore_compatible(email: "0") 🟒 Fails_email_validation_aspnetcore_compatible(email: "someName") 🟒 Fails_email_validation_aspnetcore_compatible(email: "someName@") 🟒 Fails_email_validation_aspnetcore_compatible(email: "someName@a@b.com") 🟒 Invalid_email_addressex_regex(email: "") 🟒 Invalid_email_addressex_regex(email: "first.last@test..co.uk") 🟒 Invalid_email_addressex_regex(email: "testperso") 🟒 Invalid_email_addressex_regex(email: "thisisaverylongstringcodeplex.com") 🟒 Valid_email_addresses_aspnetcore_compatible(email: "Β @someDomain.com") 🟒 Valid_email_addresses_aspnetcore_compatible(email: "!#$%&'*+-/=?^_`|~@someDomain.com") 🟒 Valid_email_addresses_aspnetcore_compatible(email: "\"firstName.lastName\"@someDomain.com") 🟒 Valid_email_addresses_aspnetcore_compatible(email: "1234@someDomain.com") 🟒 Valid_email_addresses_aspnetcore_compatible(email: "firstName.lastName@someDomain.com") 🟒 Valid_email_addresses_aspnetcore_compatible(email: "someName@1234.com") 🟒 Valid_email_addresses_aspnetcore_compatible(email: "someName@some_domain.com") 🟒 Valid_email_addresses_aspnetcore_compatible(email: "someName@some~domain.com") 🟒 Valid_email_addresses_aspnetcore_compatible(email: "someName@someDomain.com") 🟒 Valid_email_addresses_aspnetcore_compatible(email: "someName@someDomainοΏ―.com") 🟒 Valid_email_addresses_aspnetcore_compatible(email: null) 🟒 Valid_email_addresses_regex(email: "__somename@example.com") 🟒 Valid_email_addresses_regex(email: "!def!xyz%abc@example.com") 🟒 Valid_email_addresses_regex(email: "\"Abc@def\"@example.com") 🟒 Valid_email_addresses_regex(email: "\"Abc\\@def\"@example.com") 🟒 Valid_email_addresses_regex(email: "\"Fred Bloggs\"@example.com") 🟒 Valid_email_addresses_regex(email: "\"Joe\\Blow\"@example.com") 🟒 Valid_email_addresses_regex(email: "$A12345@example.com") 🟒 Valid_email_addresses_regex(email: "customer/department=shipping@example.com") 🟒 Valid_email_addresses_regex(email: "first.last@test.co.uk") 🟒 Valid_email_addresses_regex(email: "testperson@gmail.com") 🟒 Valid_email_addresses_regex(email: "TestPerson@gmail.com") 🟒 Valid_email_addresses_regex(email: "testperson+label@gmail.com") 🟒 Valid_email_addresses_regex(email: null) ``` ### 🟒 FluentValidation.Tests.EmptyTester ``` 🟒 Passes_for_ienumerable_that_doesnt_implement_ICollection 🟒 Passes_when_collection_empty 🟒 When_there_is_a_value_then_the_validator_should_fail 🟒 When_validation_fails_error_should_be_set 🟒 When_value_is_Default_for_type_validator_should_pass_datetime 🟒 When_value_is_Default_for_type_validator_should_pass_int 🟒 When_value_is_empty_string_validator_should_pass 🟒 When_value_is_null_validator_should_pass 🟒 When_value_is_whitespace_validation_should_pass ``` ### 🟒 FluentValidation.Tests.EnumValidatorTests ``` 🟒 Flags_enum_invalid_when_using_outofrange_negative_value 🟒 Flags_enum_invalid_when_using_outofrange_positive_value 🟒 Flags_enum_valid_when_using_bitwise_value 🟒 Flags_enum_validates_correctly_when_using_zero_value 🟒 Flags_enum_with_overlapping_flags_valid_when_using_bitwise_value 🟒 IsValidTests 🟒 Nullable_enum_invalid_when_bad_value_specified 🟒 Nullable_enum_valid_when_property_value_is_null 🟒 Nullable_enum_valid_when_value_specified 🟒 When_the_enum_is_initialized_with_invalid_value_then_the_validator_should_fail 🟒 When_the_enum_is_not_initialized_with_valid_value_then_the_validator_should_fail 🟒 When_validation_fails_the_default_error_should_be_set ``` ### 🟒 FluentValidation.Tests.EqualValidatorTests ``` 🟒 Comparison_property_uses_custom_resolver 🟒 Should_store_comparison_type 🟒 Should_store_property_to_compare 🟒 Should_succeed_on_case_insensitive_comparison 🟒 Should_succeed_on_case_insensitive_comparison_using_expression 🟒 Should_use_ordinal_comparison_by_default 🟒 Validates_against_property 🟒 When_the_objects_are_equal_validation_should_succeed 🟒 When_the_objects_are_not_equal_validation_should_fail 🟒 When_validation_fails_the_error_should_be_set ``` ### 🟒 FluentValidation.Tests.ExactLengthValidatorTester ``` 🟒 Min_and_max_properties_should_be_set 🟒 When_exact_length_rule_failes_error_should_have_exact_length_error_errorcode 🟒 When_the_text_is_an_exact_length_the_validator_should_pass 🟒 When_the_text_length_is_larger_the_validator_should_fail 🟒 When_the_text_length_is_smaller_the_validator_should_fail 🟒 When_the_validator_fails_the_error_message_should_be_set ``` ### 🟒 FluentValidation.Tests.ExclusiveBetweenValidatorTests ``` 🟒 To_and_from_properties_should_be_set 🟒 To_and_from_properties_should_be_set_for_dates 🟒 To_and_from_properties_should_be_set_for_strings 🟒 Validates_with_nullable_when_property_is_null 🟒 Validates_with_nullable_when_property_not_null 🟒 When_the_text_is_larger_than_the_range_then_the_validator_should_fail 🟒 When_the_text_is_larger_than_the_range_then_the_validator_should_fail_for_strings 🟒 When_the_to_is_smaller_than_the_from_then_the_validator_should_throw 🟒 When_the_to_is_smaller_than_the_from_then_the_validator_should_throw_for_strings 🟒 When_the_validator_fails_the_error_message_should_be_set 🟒 When_the_validator_fails_the_error_message_should_be_set_for_strings 🟒 When_the_value_is_between_the_range_specified_then_the_validator_should_pass 🟒 When_the_value_is_between_the_range_specified_then_the_validator_should_pass_for_strings 🟒 When_the_value_is_exactly_the_size_of_the_lower_bound_then_the_validator_should_fail 🟒 When_the_value_is_exactly_the_size_of_the_lower_bound_then_the_validator_should_fail_for_strings 🟒 When_the_value_is_exactly_the_size_of_the_upper_bound_then_the_validator_should_fail 🟒 When_the_value_is_exactly_the_size_of_the_upper_bound_then_the_validator_should_fail_for_strings 🟒 When_the_value_is_smaller_than_the_range_then_the_validator_should_fail 🟒 When_the_value_is_smaller_than_the_range_then_the_validator_should_fail_for_strings ``` ### 🟒 FluentValidation.Tests.ExtensionTester ``` 🟒 Should_extract_member_from_member_expression 🟒 Should_return_null_for_non_member_expressions 🟒 Should_split_pascal_cased_member_name 🟒 SplitPascalCase_should_return_null_when_input_is_null ``` ### 🟒 FluentValidation.Tests.ForEachRuleTests ``` 🟒 Async_condition_should_work_with_child_collection 🟒 Can_access_colletion_index 🟒 Can_access_colletion_index_async 🟒 Can_access_parent_index 🟒 Can_access_parent_index_async 🟒 Can_specify_condition_for_individual_collection_elements 🟒 Can_use_cascade_with_RuleForEach 🟒 Can_validate_collection_using_validator_for_base_type 🟒 Collection_should_be_excluded 🟒 Collection_should_be_explicitly_included_with_expression 🟒 Collection_should_be_explicitly_included_with_string 🟒 Condition_should_work_with_child_collection 🟒 Correctly_gets_collection_indices 🟒 Correctly_gets_collection_indices_async 🟒 Executes_rule_for_each_item_in_collection 🟒 Executes_rule_for_each_item_in_collection_async 🟒 Nested_collection_for_null_property_should_not_throw_null_reference 🟒 Nested_conditions_Rule_For 🟒 Nested_conditions_Rule_For_Each 🟒 Overrides_indexer 🟒 Overrides_indexer_async 🟒 Regular_rules_can_drop_into_RuleForEach 🟒 RuleForEach_async_RunsTasksSynchronously 🟒 Should_not_scramble_property_name_when_using_collection_validators_several_levels_deep 🟒 Should_not_scramble_property_name_when_using_collection_validators_several_levels_deep_with_ValidateAsync 🟒 Should_override_property_name 🟒 Skips_null_items 🟒 Top_level_collection 🟒 Uses_useful_error_message_when_used_on_non_property 🟒 Validates_child_validator_asynchronously 🟒 Validates_child_validator_synchronously 🟒 Validates_collection 🟒 When_runs_outside_RuleForEach_loop 🟒 When_runs_outside_RuleForEach_loop_async ``` ### 🟒 FluentValidation.Tests.GreaterThanOrEqualToValidatorTester ``` 🟒 Comparison_property_uses_custom_resolver 🟒 Comparison_type 🟒 Should_fail_when_less_than_input 🟒 Should_localize_value 🟒 Should_set_default_error_when_validation_fails 🟒 Should_succeed_when_equal_to_input 🟒 Should_succeed_when_greater_than_input 🟒 Validates_nullable_with_nullable_property 🟒 Validates_with_nullable_property 🟒 Validates_with_nullable_when_property_is_null 🟒 Validates_with_nullable_when_property_is_null_cross_property 🟒 Validates_with_nullable_when_property_not_null 🟒 Validates_with_nullable_when_property_not_null_cross_property 🟒 Validates_with_property ``` ### 🟒 FluentValidation.Tests.GreaterThanValidatorTester ``` 🟒 Comparison_property_uses_custom_resolver 🟒 Comparison_Type 🟒 Should_fail_when_equal_to_input 🟒 Should_fail_when_less_than_input 🟒 Should_set_default_error_when_validation_fails 🟒 Should_succeed_when_greater_than_input 🟒 Validates_nullable_with_nullable_property 🟒 Validates_with_nullable_property 🟒 Validates_with_nullable_when_property_is_null 🟒 Validates_with_nullable_when_property_is_null_cross_property 🟒 Validates_with_nullable_when_property_not_null 🟒 Validates_with_nullable_when_property_not_null_cross_property 🟒 Validates_with_property ``` ### 🟒 FluentValidation.Tests.InclusiveBetweenValidatorTests ``` 🟒 To_and_from_properties_should_be_set 🟒 To_and_from_properties_should_be_set_for_strings 🟒 Validates_with_nullable_when_property_is_null 🟒 Validates_with_nullable_when_property_not_null 🟒 When_the_text_is_larger_than_the_range_then_the_validator_should_fail 🟒 When_the_text_is_larger_than_the_range_then_the_validator_should_fail_for_strings 🟒 When_the_to_is_smaller_than_the_from_then_the_validator_should_throw 🟒 When_the_to_is_smaller_than_the_from_then_the_validator_should_throw_for_strings 🟒 When_the_validator_fails_the_error_message_should_be_set 🟒 When_the_validator_fails_the_error_message_should_be_set_for_strings 🟒 When_the_value_is_between_the_range_specified_then_the_validator_should_pass 🟒 When_the_value_is_between_the_range_specified_then_the_validator_should_pass_for_strings 🟒 When_the_value_is_exactly_the_size_of_the_lower_bound_then_the_validator_should_pass 🟒 When_the_value_is_exactly_the_size_of_the_lower_bound_then_the_validator_should_pass_for_strings 🟒 When_the_value_is_exactly_the_size_of_the_upper_bound_then_the_validator_should_pass 🟒 When_the_value_is_exactly_the_size_of_the_upper_bound_then_the_validator_should_pass_for_strings 🟒 When_the_value_is_smaller_than_the_range_then_the_validator_should_fail 🟒 When_the_value_is_smaller_than_the_range_then_the_validator_should_fail_for_strings ``` ### 🟒 FluentValidation.Tests.InheritanceValidatorTest ``` 🟒 Can_use_custom_subclass_with_nongeneric_overload 🟒 Validates_collection 🟒 Validates_collection_async 🟒 Validates_inheritance_async 🟒 Validates_inheritance_hierarchy 🟒 Validates_ruleset 🟒 Validates_ruleset_async 🟒 Validates_with_callback 🟒 Validates_with_callback_accepting_derived 🟒 Validates_with_callback_accepting_derived_async 🟒 Validates_with_callback_async ``` ### 🟒 FluentValidation.Tests.InlineValidatorTester ``` 🟒 Uses_inline_validator_to_build_rules ``` ### 🟒 FluentValidation.Tests.LanguageManagerTests ``` 🟒 All_languages_should_be_loaded 🟒 All_localizations_have_same_parameters_as_English 🟒 Always_use_specific_language 🟒 Always_use_specific_language_with_string_source 🟒 Can_replace_message 🟒 Can_replace_message_without_overriding_all_languages 🟒 Disables_localization 🟒 Falls_back_to_default_localization_key_when_error_code_key_not_found 🟒 Falls_back_to_english_when_culture_not_registered 🟒 Falls_back_to_english_when_translation_missing 🟒 Falls_back_to_parent_culture 🟒 Gets_translation_for_bosnian_latin_culture(cultureName: "bs-Latn-BA") 🟒 Gets_translation_for_bosnian_latin_culture(cultureName: "bs-Latn") 🟒 Gets_translation_for_bosnian_latin_culture(cultureName: "bs") 🟒 Gets_translation_for_croatian_culture 🟒 Gets_translation_for_culture 🟒 Gets_translation_for_serbian_culture(cultureName: "sr-Latn-RS") 🟒 Gets_translation_for_serbian_culture(cultureName: "sr-Latn") 🟒 Gets_translation_for_serbian_culture(cultureName: "sr") 🟒 Gets_translation_for_specific_culture 🟒 Uses_error_code_as_localization_key ``` ### 🟒 FluentValidation.Tests.LengthValidatorTests ``` 🟒 Min_and_max_properties_should_be_set 🟒 When_input_is_null_then_the_validator_should_pass 🟒 When_the_max_is_smaller_than_the_min_then_the_validator_should_throw 🟒 When_the_maxlength_validator_fails_the_error_message_should_be_set 🟒 When_the_minlength_validator_fails_the_error_message_should_be_set 🟒 When_the_text_is_between_the_lambda_range_specified_then_the_validator_should_pass 🟒 When_the_text_is_between_the_range_specified_then_the_validator_should_pass 🟒 When_the_text_is_exactly_the_size_of_the_lambda_lower_bound_then_the_validator_should_pass 🟒 When_the_text_is_exactly_the_size_of_the_lambda_upper_bound_then_the_validator_should_pass 🟒 When_the_text_is_exactly_the_size_of_the_lower_bound_then_the_validator_should_pass 🟒 When_the_text_is_exactly_the_size_of_the_upper_bound_then_the_validator_should_pass 🟒 When_the_text_is_larger_than_the_lambda_range_then_the_validator_should_fail 🟒 When_the_text_is_larger_than_the_range_then_the_validator_should_fail 🟒 When_the_text_is_smaller_than_the_lambda_range_then_the_validator_should_fail 🟒 When_the_text_is_smaller_than_the_range_then_the_validator_should_fail 🟒 When_the_validator_fails_the_error_message_should_be_set ``` ### 🟒 FluentValidation.Tests.LessThanOrEqualToValidatorTester ``` 🟒 Comparison_property_uses_custom_resolver 🟒 Comparison_type 🟒 Should_fail_when_greater_than_input 🟒 Should_set_default_error_when_validation_fails 🟒 Should_succeed_when_equal_to_input 🟒 Should_succeed_when_less_than_input 🟒 Validates_nullable_with_nullable_property 🟒 Validates_with_nullable_property 🟒 Validates_with_nullable_when_property_is_null 🟒 Validates_with_nullable_when_property_is_null_cross_property 🟒 Validates_with_nullable_when_property_not_null 🟒 Validates_with_nullable_when_property_not_null_cross_property 🟒 Validates_with_property ``` ### 🟒 FluentValidation.Tests.LessThanValidatorTester ``` 🟒 Comparison_property_uses_custom_resolver 🟒 Comparison_type 🟒 Extracts_property_from_constant_using_expression 🟒 Extracts_property_from_expression 🟒 Should_fail_when_equal_to_input 🟒 Should_fail_when_greater_than_input 🟒 Should_set_default_validation_message_when_validation_fails 🟒 Should_succeed_when_less_than_input 🟒 Should_throw_when_value_to_compare_is_null 🟒 Validates_against_property 🟒 Validates_nullable_with_nullable_property 🟒 Validates_with_nullable_property 🟒 Validates_with_nullable_when_property_is_null 🟒 Validates_with_nullable_when_property_not_null 🟒 Validates_with_nullable_when_property_not_null_cross_property 🟒 Validates_with_nullable_when_property_null_cross_property ``` ### 🟒 FluentValidation.Tests.LocalisedMessagesTester ``` 🟒 Correctly_assigns_default_localized_error_message 🟒 Does_not_throw_InvalidCastException_when_using_RuleForEach 🟒 Formats_string_with_placeholders 🟒 Formats_string_with_placeholders_when_you_cant_edit_the_string 🟒 Uses_func_to_get_message 🟒 Uses_string_format_with_property_value ``` ### 🟒 FluentValidation.Tests.LocalisedNameTester ``` 🟒 Uses_localized_name 🟒 Uses_localized_name_expression ``` ### 🟒 FluentValidation.Tests.MemberAccessorTests ``` 🟒 ComplexPropertyGet 🟒 ComplexPropertySet 🟒 Equality 🟒 ImplicitCast 🟒 Name 🟒 SimpleFieldGet 🟒 SimpleFieldSet 🟒 SimplePropertyGet 🟒 SimplePropertySet ``` ### 🟒 FluentValidation.Tests.MessageFormatterTests ``` 🟒 Adds_argument_and_custom_arguments 🟒 Adds_formatted_argument_and_custom_arguments 🟒 Adds_formatted_argument_and_formatted_custom_arguments 🟒 Adds_PropertyName_to_message 🟒 Adds_value_to_message 🟒 Format_property_value 🟒 Should_ignore_unknown_numbered_parameters 🟒 Should_ignore_unknown_parameters 🟒 Understands_date_formats 🟒 Understands_numeric_formats ``` ### 🟒 FluentValidation.Tests.ModelLevelValidatorTests ``` 🟒 Can_use_child_validator_at_model_level 🟒 Validates_at_model_level ``` ### 🟒 FluentValidation.Tests.NameResolutionPluggabilityTester ``` 🟒 Resolves_nested_properties 🟒 ShouldHaveValidationError_Should_support_custom_propertynameresolver 🟒 Uses_custom_property_name ``` ### 🟒 FluentValidation.Tests.NotEmptyTester ``` 🟒 Fails_for_array 🟒 Fails_for_ienumerable_that_doesnt_implement_ICollection 🟒 Fails_when_collection_empty 🟒 When_there_is_a_value_then_the_validator_should_pass 🟒 When_validation_fails_error_should_be_set 🟒 When_value_is_Default_for_type_validator_should_fail_datetime 🟒 When_value_is_Default_for_type_validator_should_fail_int 🟒 When_value_is_empty_string_validator_should_fail 🟒 When_value_is_null_validator_should_fail 🟒 When_value_is_whitespace_validation_should_fail ``` ### 🟒 FluentValidation.Tests.NotEqualValidatorTests ``` 🟒 Comparison_property_uses_custom_resolver 🟒 Should_handle_custom_value_types_correctly 🟒 Should_not_be_valid_for_case_insensitve_comparison 🟒 Should_not_be_valid_for_case_insensitve_comparison_with_expression 🟒 Should_store_comparison_type 🟒 Should_store_property_to_compare 🟒 Should_use_ordinal_comparison_by_default 🟒 Validates_across_properties 🟒 When_the_objects_are_equal_then_the_validator_should_fail 🟒 When_the_objects_are_not_equal_then_the_validator_should_pass 🟒 When_the_validator_fails_the_error_message_should_be_set ``` ### 🟒 FluentValidation.Tests.NotNullTester ``` 🟒 Fails_when_nullable_value_type_is_null 🟒 Not_null_validator_should_not_crash_with_non_nullable_value_type 🟒 NotNullValidator_should_fail_if_value_is_null 🟒 NotNullValidator_should_pass_if_value_has_value 🟒 When_the_validator_fails_the_error_message_should_be_set ``` ### 🟒 FluentValidation.Tests.NullTester ``` 🟒 Not_null_validator_should_not_crash_with_non_nullable_value_type 🟒 NullValidator_should_fail_if_value_has_value 🟒 NullValidator_should_pass_if_value_is_null 🟒 Passes_when_nullable_value_type_is_null 🟒 When_the_validator_passes_the_error_message_should_be_set ``` ### 🟒 FluentValidation.Tests.OnFailureTests ``` 🟒 OnFailure_called_for_each_failed_rule 🟒 OnFailure_called_for_each_failed_rule_asyncAsync 🟒 Should_be_able_to_access_error_message_in_OnFailure 🟒 ShouldHaveChildValidator_should_be_true 🟒 ShouldHaveChildValidator_works_with_Include 🟒 WhenAsyncWithOnFailure_should_invoke_condition_on_async_inner_validator 🟒 WhenAsyncWithOnFailure_should_invoke_condition_on_inner_validator 🟒 WhenAsyncWithOnFailure_should_invoke_condition_on_inner_validator_invoked_synchronously 🟒 WhenWithOnFailure_should_invoke_condition_on_async_inner_validator 🟒 WhenWithOnFailure_should_invoke_condition_on_inner_validator ``` ### 🟒 FluentValidation.Tests.PredicateValidatorTester ``` 🟒 Should_fail_when_predicate_returns_false 🟒 Should_succeed_when_predicate_returns_true 🟒 Should_throw_when_predicate_is_null 🟒 When_validation_fails_metadata_should_be_set_on_failure 🟒 When_validation_fails_the_default_error_should_be_set ``` ### 🟒 FluentValidation.Tests.PropertyChainTests ``` 🟒 AddIndexer_throws_when_nothing_added 🟒 Calling_ToString_should_construct_string_representation_of_chain 🟒 Calling_ToString_should_construct_string_representation_of_chain_with_indexers 🟒 Creates_from_expression 🟒 Should_be_subchain 🟒 Should_ignore_blanks 🟒 Should_not_be_subchain ``` ### 🟒 FluentValidation.Tests.RegularExpressionValidatorTests ``` 🟒 Can_access_expression_in_message 🟒 Can_access_expression_in_message_lambda 🟒 Can_access_expression_in_message_lambda_regex 🟒 Uses_lazily_loaded_expression 🟒 Uses_lazily_loaded_expression_with_options 🟒 Uses_regex_object 🟒 When_the_text_does_not_match_the_lambda_regex_regular_expression_then_the_validator_should_fail 🟒 When_the_text_does_not_match_the_lambda_regular_expression_then_the_validator_should_fail 🟒 When_the_text_does_not_match_the_regular_expression_then_the_validator_should_fail 🟒 When_the_text_is_empty_then_the_validator_should_fail 🟒 When_the_text_is_null_then_the_validator_should_pass 🟒 When_the_text_matches_the_lambda_regex_regular_expression_then_the_validator_should_pass 🟒 When_the_text_matches_the_lambda_regular_expression_then_the_validator_should_pass 🟒 When_the_text_matches_the_regular_expression_then_the_validator_should_pass 🟒 When_validation_fails_the_default_error_should_be_set ``` ### 🟒 FluentValidation.Tests.RuleBuilderTests ``` 🟒 Adding_a_validator_should_return_builder 🟒 Adding_a_validator_should_store_validator 🟒 Calling_validate_should_delegate_to_underlying_validator 🟒 Calling_ValidateAsync_should_delegate_to_underlying_async_validator 🟒 Calling_ValidateAsync_should_delegate_to_underlying_sync_validator 🟒 Conditional_child_validator_should_register_with_validator_type_not_property 🟒 Nullable_object_with_async_condition_should_not_throw 🟒 Nullable_object_with_condition_should_not_throw 🟒 Property_should_return_null_when_it_is_not_a_property_being_validated 🟒 Property_should_return_property_being_validated 🟒 PropertyDescription_should_return_custom_property_name 🟒 PropertyDescription_should_return_property_name_split 🟒 Result_should_use_custom_property_name_when_no_property_name_can_be_determined 🟒 Rule_for_a_non_memberexpression_should_not_generate_property_name 🟒 Should_build_property_name 🟒 Should_compile_expression 🟒 Should_set_custom_error 🟒 Should_set_custom_property_name 🟒 Should_throw_if_message_is_null 🟒 Should_throw_if_overriding_validator_is_null 🟒 Should_throw_if_overriding_validator_provider_is_null 🟒 Should_throw_if_property_name_is_null 🟒 Should_throw_if_validator_is_null 🟒 Should_throw_when_async_inverse_predicate_is_null 🟒 Should_throw_when_async_predicate_is_null 🟒 Should_throw_when_context_predicate_is_null 🟒 Should_throw_when_inverse_context_predicate_is_null 🟒 Should_throw_when_inverse_predicate_is_null 🟒 Should_throw_when_predicate_is_null ``` ### 🟒 FluentValidation.Tests.RuleDependencyTests ``` 🟒 Async_inside_dependent_rules 🟒 Async_inside_dependent_rules_when_parent_rule_not_async 🟒 Dependent_rules_inside_ruleset 🟒 Dependent_rules_inside_when 🟒 Does_not_invoke_dependent_rule_if_parent_rule_does_not_pass 🟒 Invokes_dependent_rule_if_parent_rule_passes 🟒 Nested_dependent_rules 🟒 Nested_dependent_rules_inside_ruleset 🟒 Nested_dependent_rules_inside_ruleset_inside_method 🟒 Nested_dependent_rules_inside_ruleset_no_result_when_second_level_fails 🟒 Nested_dependent_rules_inside_ruleset_no_result_when_top_level_fails 🟒 TestAsyncWithDependentRules_AsyncEntry 🟒 TestAsyncWithDependentRules_SyncEntry 🟒 Treats_root_level_RuleFor_call_as_dependent_rule_if_user_forgets_to_use_DependentRulesBuilder ``` ### 🟒 FluentValidation.Tests.RulesetTests ``` 🟒 Applies_multiple_rulesets_to_rule 🟒 Combines_rulesets_and_explicit_properties 🟒 Combines_rulesets_and_explicit_properties_async 🟒 Executes_all_rules 🟒 Executes_in_rule_in_default_and_none 🟒 Executes_in_rule_in_ruleset_and_default 🟒 Executes_multiple_rulesets 🟒 Executes_rules_in_default_ruleset_and_specific_ruleset 🟒 Executes_rules_in_specified_ruleset 🟒 Executes_rules_not_specified_in_ruleset 🟒 Includes_all_rulesets 🟒 Includes_all_rulesets_async 🟒 Includes_combination_of_rulesets 🟒 Includes_combination_of_rulesets_async 🟒 Ruleset_cascades_to_child_collection_validator 🟒 Ruleset_cascades_to_child_validator 🟒 Ruleset_selection_should_cascade_downwards_with_when_setting_child_validator_using_include_statement 🟒 Ruleset_selection_should_cascade_downwards_with_when_setting_child_validator_using_include_statement_with_lambda 🟒 Ruleset_selection_should_not_cascade_downwards_when_set_on_property 🟒 Trims_spaces 🟒 WithMessage_works_inside_rulesets ``` ### 🟒 FluentValidation.Tests.ScalePrecisionValidatorTests ``` 🟒 Scale_precision_should_be_valid 🟒 Scale_precision_should_be_valid_when_ignoring_trailing_zeroes 🟒 Scale_precision_should_be_valid_when_they_are_equal 🟒 Scale_precision_should_not_be_valid 🟒 Scale_precision_should_not_be_valid_when_ignoring_trailing_zeroes 🟒 Scale_precision_should_not_be_valid_when_they_are_equal ``` ### 🟒 FluentValidation.Tests.SharedConditionTests ``` 🟒 Async_condition_can_be_used_inside_ruleset 🟒 Condition_can_be_used_inside_ruleset 🟒 Does_not_execute_custom_Rule_when_async_condition_false 🟒 Does_not_execute_custom_Rule_when_condition_false 🟒 Does_not_execute_customasync_Rule_when_async_condition_false 🟒 Does_not_execute_customasync_Rule_when_condition_false 🟒 Doesnt_throw_NullReferenceException_when_instance_not_null 🟒 Doesnt_throw_NullReferenceException_when_instance_not_null_async 🟒 Executes_custom_rule_when_async_condition_true 🟒 Executes_custom_rule_when_condition_true 🟒 Executes_customasync_rule_when_async_condition_true 🟒 Executes_customasync_rule_when_condition_true 🟒 Nested_async_conditions_with_Custom_rule 🟒 Nested_async_conditions_with_CustomAsync_rule 🟒 Nested_conditions_with_Custom_rule 🟒 Nested_conditions_with_CustomAsync_rule 🟒 Outer_async_Unless_clause_will_trump_an_inner_Unless_clause_when_inner_fails_but_the_outer_is_satisfied 🟒 Outer_Unless_clause_will_trump_an_inner_Unless_clause_when_inner_fails_but_the_outer_is_satisfied 🟒 Rules_invoke_when_inverse_shared_async_condition_matches 🟒 Rules_invoke_when_inverse_shared_condition_matches 🟒 Rules_not_invoked_when_inverse_shared_async_condition_does_not_match 🟒 Rules_not_invoked_when_inverse_shared_condition_does_not_match 🟒 RuleSet_can_be_used_inside_async_condition 🟒 RuleSet_can_be_used_inside_condition 🟒 Runs_otherwise_conditions_for_UnlessAsync 🟒 Runs_otherwise_conditions_for_When 🟒 Runs_otherwise_conditions_for_WhenAsync 🟒 Runs_otherwise_conditons_for_Unless 🟒 Shared_async_When_is_applied_to_groupd_rules_when_initial_predicate_is_true_and_all_individual_rules_are_satisfied 🟒 Shared_async_When_is_applied_to_grouped_rules_when_initial_predicate_is_true 🟒 Shared_async_When_is_not_applied_to_grouped_rules_when_initial_predicate_is_false 🟒 Shared_async_When_respects_the_smaller_scope_of_a_inner_Unless_when_the_inner_Unless_predicate_fails 🟒 Shared_async_When_respects_the_smaller_scope_of_an_inner_Unless_when_the_inner_Unless_predicate_is_satisfied 🟒 Shared_When_is_applied_to_groupd_rules_when_initial_predicate_is_true_and_all_individual_rules_are_satisfied 🟒 Shared_When_is_applied_to_grouped_rules_when_initial_predicate_is_true 🟒 Shared_When_is_not_applied_to_grouped_rules_when_initial_predicate_is_false 🟒 Shared_When_respects_the_smaller_scope_of_a_inner_Unless_when_the_inner_Unless_predicate_fails 🟒 Shared_When_respects_the_smaller_scope_of_an_inner_Unless_when_the_inner_Unless_predicate_is_satisfied 🟒 When_async_condition_executed_for_each_instance_of_RuleForEach_condition_should_not_be_cached 🟒 When_condition_executed_for_each_instance_of_RuleForEach_condition_should_not_be_cached 🟒 When_condition_only_executed_once 🟒 WhenAsync_condition_only_executed_once ``` ### 🟒 FluentValidation.Tests.StandalonePropertyValidationTester ``` 🟒 Should_validate_property_value_without_instance ``` ### 🟒 FluentValidation.Tests.StringEnumValidatorTests ``` 🟒 IsValidTests_CaseInsensitive_CaseCorrect 🟒 IsValidTests_CaseInsensitive_CaseIncorrect 🟒 IsValidTests_CaseSensitive_CaseCorrect 🟒 IsValidTests_CaseSensitive_CaseIncorrect 🟒 When_enumType_is_not_an_enum_it_should_throw 🟒 When_enumType_is_null_it_should_throw 🟒 When_the_property_is_initialized_with_empty_string_then_the_validator_should_fail 🟒 When_the_property_is_initialized_with_invalid_string_then_the_validator_should_fail 🟒 When_the_property_is_initialized_with_null_then_the_validator_should_be_valid 🟒 When_validation_fails_the_default_error_should_be_set ``` ### 🟒 FluentValidation.Tests.TrackingCollectionTests ``` 🟒 Add_AddsItem 🟒 Should_not_raise_event_once_handler_detached 🟒 When_Item_Added_Raises_ItemAdded ``` ### 🟒 FluentValidation.Tests.TransformTests ``` 🟒 Transforms_collection_element 🟒 Transforms_collection_element_async 🟒 Transforms_property_value 🟒 Transforms_property_value_to_another_type ``` ### 🟒 FluentValidation.Tests.UserSeverityTester ``` 🟒 Can_Provide_conditional_severity 🟒 Can_Provide_severity_for_item_in_collection 🟒 Correctly_provides_object_being_validated 🟒 Defaults_user_severity_to_error 🟒 Should_use_last_supplied_severity 🟒 Stores_user_severity_against_validation_failure 🟒 Throws_when_provider_is_null ``` ### 🟒 FluentValidation.Tests.UserStateTester ``` 🟒 Can_Provide_state_for_item_in_collection 🟒 Correctly_provides_object_being_validated 🟒 Stores_user_state_against_validation_failure 🟒 Throws_when_provider_is_null ``` ### 🟒 FluentValidation.Tests.ValidateAndThrowTester ``` 🟒 Does_not_throw_when_valid 🟒 Does_not_throw_when_valid_and_a_ruleset 🟒 Does_not_throw_when_valid_and_a_ruleset_async 🟒 Does_not_throw_when_valid_async 🟒 Only_root_validator_throws 🟒 Populates_errors 🟒 Serializes_exception 🟒 Throws_exception 🟒 Throws_exception_async 🟒 Throws_exception_with_a_ruleset 🟒 Throws_exception_with_a_ruleset_async 🟒 ToString_provides_error_details 🟒 ValidationException_provides_correct_message_when_appendDefaultMessage_false 🟒 ValidationException_provides_correct_message_when_appendDefaultMessage_true ``` ### 🟒 FluentValidation.Tests.ValidationResultTests ``` 🟒 Can_serialize_failure 🟒 Can_serialize_result 🟒 Should_add_errors 🟒 Should_be_valid_when_there_are_no_errors 🟒 Should_not_be_valid_when_there_are_errors 🟒 ToString_return_empty_string_when_there_is_no_error 🟒 ToString_return_error_messages_with_given_separator 🟒 ToString_return_error_messages_with_newline_as_separator ``` ### 🟒 FluentValidation.Tests.ValidatorDescriptorTester ``` 🟒 Does_not_throw_when_rule_declared_without_property 🟒 Gets_validators_for_property 🟒 GetValidatorsForMember_and_GetRulesForMember_can_both_retrieve_for_model_level_rule 🟒 Returns_empty_collection_for_property_with_no_validators 🟒 Should_retrieve_name_given_to_it_pass_property_as_string ``` ### 🟒 FluentValidation.Tests.ValidatorSelectorTests ``` 🟒 Can_use_property_with_include 🟒 Does_not_validate_other_property 🟒 Does_not_validate_other_property_using_expression 🟒 Executes_correct_rule_when_using_property_with_include 🟒 Executes_correct_rule_when_using_property_with_include_async 🟒 Includes_nested_property 🟒 Includes_nested_property_using_expression 🟒 MemberNameValidatorSelector_returns_true_when_property_name_matches 🟒 Validates_nullable_property_with_overriden_name_when_selected 🟒 Validates_property_using_expression ``` ### 🟒 FluentValidation.Tests.ValidatorTesterTester ``` 🟒 Allows_only_one_failure_to_match 🟒 Can_use_indexer_in_string_message 🟒 Can_use_indexer_in_string_message_inverse 🟒 Expected_error_code_check 🟒 Expected_message_argument_check 🟒 Expected_message_check 🟒 Expected_severity_check 🟒 Expected_state_check 🟒 Matches_any_failure 🟒 Matches_model_level_rule 🟒 Model_level_check_fails_if_no_model_level_failures 🟒 ShouldHaveChildValidator_should_not_throw_when_property_Does_have_child_validator 🟒 ShouldHaveChildValidator_should_not_throw_when_property_Does_have_child_validator_and_expecting_a_basetype 🟒 ShouldHaveChildValidator_should_not_throw_when_property_has_collection_validators 🟒 ShouldHaveChildValidator_should_throw_when_property_has_a_different_child_validator 🟒 ShouldHaveChildValidator_should_work_with_DependentRules 🟒 ShouldHaveChildvalidator_throws_when_collection_property_Does_not_have_child_validator 🟒 ShouldHaveChildValidator_throws_when_property_does_not_have_child_validator 🟒 ShouldHaveChildValidator_works_on_model_level_rules 🟒 ShouldHaveValidationError_async 🟒 ShouldHaveValidationError_async_throws 🟒 ShouldHaveValidationError_model_async 🟒 ShouldHaveValidationError_model_async_throws 🟒 ShouldHaveValidationError_preconstructed_object_does_not_throw_for_unwritable_property 🟒 ShouldHaveValidationError_should_not_throw_when_there_are_errors_with_preconstructed_object 🟒 ShouldHaveValidationError_should_not_throw_when_there_are_validation_errors 🟒 ShouldHaveValidationError_should_not_throw_when_there_are_validation_errors__WhenAsyn_is_used(age: 42, cardNumber: "") 🟒 ShouldHaveValidationError_should_not_throw_when_there_are_validation_errors__WhenAsyn_is_used(age: 42, cardNumber: null) 🟒 ShouldHaveValidationError_should_not_throw_when_there_are_validation_errors_ruleforeach 🟒 ShouldHaveValidationError_Should_support_nested_properties 🟒 ShouldHaveValidationError_Should_throw_when_there_are_no_validation_errors 🟒 ShouldHaveValidationError_should_throw_when_there_are_no_validation_errors_with_preconstructed_object 🟒 ShouldHaveValidationError_should_throw_when_there_are_not_validation_errors__WhenAsyn_Is_Used(age: 17, cardNumber: "") 🟒 ShouldHaveValidationError_should_throw_when_there_are_not_validation_errors__WhenAsyn_Is_Used(age: 17, cardNumber: "cardNumber") 🟒 ShouldHaveValidationError_should_throw_when_there_are_not_validation_errors__WhenAsyn_Is_Used(age: 17, cardNumber: null) 🟒 ShouldHaveValidationError_should_throw_when_there_are_not_validation_errors__WhenAsyn_Is_Used(age: 42, cardNumber: "cardNumber") 🟒 ShouldHaveValidationError_should_throw_when_there_are_not_validation_errors_ruleforeach 🟒 ShouldHaveValidationError_with_an_unmatched_rule_and_a_single_error_should_throw_an_exception 🟒 ShouldHaveValidationError_with_an_unmatched_rule_and_multiple_errors_should_throw_an_exception 🟒 ShouldHaveValidationErrorFor_takes_account_of_rulesets 🟒 ShouldHaveValidationErrorFor_takes_account_of_rulesets_fluent_approach 🟒 ShouldNotHaveValidationError_async 🟒 ShouldNotHaveValidationError_async_model_throws 🟒 ShouldNotHaveValidationError_async_throws 🟒 ShouldNotHaveValidationError_model_async 🟒 ShouldNotHaveValidationError_should_correctly_handle_explicitly_providing_object_to_validate 🟒 ShouldNotHaveValidationError_should_correctly_handle_explicitly_providing_object_to_validate_and_other_property_fails_validation 🟒 ShouldNotHaveValidationError_should_have_validation_error_details_when_thrown_ruleforeach 🟒 ShouldNotHaveValidationError_should_not_throw_when_there_are_no_errors 🟒 ShouldNotHAveValidationError_should_not_throw_When_there_are_no_errors_with_preconstructed_object 🟒 ShouldNotHaveValidationError_should_not_throw_when_there_are_not_validation_errors_ruleforeach 🟒 ShouldNotHaveValidationError_Should_support_nested_properties 🟒 ShouldNotHaveValidationError_should_throw_when_there_are_errors 🟒 ShouldNotHaveValidationError_should_throw_when_there_are_errors_with_preconstructed_object 🟒 ShouldNotHaveValidationError_should_throw_when_there_are_not_validation_errors__WhenAsyn_is_used(age: 17, cardNumber: "") 🟒 ShouldNotHaveValidationError_should_throw_when_there_are_not_validation_errors__WhenAsyn_is_used(age: 17, cardNumber: "cardNumber") 🟒 ShouldNotHaveValidationError_should_throw_when_there_are_not_validation_errors__WhenAsyn_is_used(age: 17, cardNumber: null) 🟒 ShouldNotHaveValidationError_should_throw_when_there_are_not_validation_errors__WhenAsyn_is_used(age: 42, cardNumber: "cardNumber") 🟒 ShouldNotHaveValidationError_should_throw_when_there_are_validation_errors__WhenAsyn_is_used(age: 42, cardNumber: "") 🟒 ShouldNotHaveValidationError_should_throw_when_there_are_validation_errors__WhenAsyn_is_used(age: 42, cardNumber: null) 🟒 ShouldNotHaveValidationError_should_throw_when_there_are_validation_errors_ruleforeach 🟒 Tests_nested_property 🟒 Tests_nested_property_reverse 🟒 Tests_nested_property_using_obsolete_method 🟒 TestValidate_runs_async 🟒 TestValidate_runs_async_throws 🟒 Unexpected_error_code_check 🟒 Unexpected_message_check(withoutErrMsg: "bar", errMessages: ["bar"]) 🟒 Unexpected_message_check(withoutErrMsg: "bar", errMessages: ["foo", "bar"]) 🟒 Unexpected_message_check(withoutErrMsg: "bar", errMessages: ["foo"]) 🟒 Unexpected_message_check(withoutErrMsg: "bar", errMessages: []) 🟒 Unexpected_severity_check 🟒 Unexpected_state_check ```