![Tests passed successfully](https://img.shields.io/badge/tests-803%20passed%2C%201%20skipped-success)
## ✔️ <a id="user-content-r0" href="#r0">fixtures/external/FluentValidation.Tests.trx</a>
**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|
### ✔️ <a id="user-content-r0s0" href="#r0s0">FluentValidation.Tests.AbstractValidatorTester</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s1" href="#r0s1">FluentValidation.Tests.AccessorCacheTests</a>
```
✖️ Benchmark
✔️ Equality_comparison_check
✔️ Gets_accessor
✔️ Gets_member_for_nested_property
✔️ Identifies_if_memberexp_acts_on_model_instance
```
### ✔️ <a id="user-content-r0s2" href="#r0s2">FluentValidation.Tests.AssemblyScannerTester</a>
```
✔️ Finds_validators_for_types
✔️ ForEach_iterates_over_types
```
### ✔️ <a id="user-content-r0s3" href="#r0s3">FluentValidation.Tests.CascadingFailuresTester</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s4" href="#r0s4">FluentValidation.Tests.ChainedValidationTester</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s5" href="#r0s5">FluentValidation.Tests.ChainingValidatorsTester</a>
```
✔️ Options_should_only_apply_to_current_validator
✔️ Should_create_multiple_validators
✔️ Should_execute_multiple_validators
```
### ✔️ <a id="user-content-r0s6" href="#r0s6">FluentValidation.Tests.ChildRulesTests</a>
```
✔️ Can_define_nested_rules_for_collection
✔️ ChildRules_works_with_RuleSet
```
### ✔️ <a id="user-content-r0s7" href="#r0s7">FluentValidation.Tests.CollectionValidatorWithParentTests</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s8" href="#r0s8">FluentValidation.Tests.ComplexValidationTester</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s9" href="#r0s9">FluentValidation.Tests.ConditionTests</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s10" href="#r0s10">FluentValidation.Tests.CreditCardValidatorTests</a>
```
✔️ IsValidTests
✔️ When_validation_fails_the_default_error_should_be_set
```
### ✔️ <a id="user-content-r0s11" href="#r0s11">FluentValidation.Tests.CustomFailureActionTester</a>
```
✔️ Does_not_invoke_action_if_validation_success
✔️ Invokes_custom_action_on_failure
✔️ Passes_object_being_validated_to_action
```
### ✔️ <a id="user-content-r0s12" href="#r0s12">FluentValidation.Tests.CustomMessageFormatTester</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s13" href="#r0s13">FluentValidation.Tests.CustomValidatorTester</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s14" href="#r0s14">FluentValidation.Tests.DefaultValidatorExtensionTester</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s15" href="#r0s15">FluentValidation.Tests.EmailValidatorTests</a>
```
✔️ 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)
```
### ✔️ <a id="user-content-r0s16" href="#r0s16">FluentValidation.Tests.EmptyTester</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s17" href="#r0s17">FluentValidation.Tests.EnumValidatorTests</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s18" href="#r0s18">FluentValidation.Tests.EqualValidatorTests</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s19" href="#r0s19">FluentValidation.Tests.ExactLengthValidatorTester</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s20" href="#r0s20">FluentValidation.Tests.ExclusiveBetweenValidatorTests</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s21" href="#r0s21">FluentValidation.Tests.ExtensionTester</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s22" href="#r0s22">FluentValidation.Tests.ForEachRuleTests</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s23" href="#r0s23">FluentValidation.Tests.GreaterThanOrEqualToValidatorTester</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s24" href="#r0s24">FluentValidation.Tests.GreaterThanValidatorTester</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s25" href="#r0s25">FluentValidation.Tests.InclusiveBetweenValidatorTests</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s26" href="#r0s26">FluentValidation.Tests.InheritanceValidatorTest</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s27" href="#r0s27">FluentValidation.Tests.InlineValidatorTester</a>
```
✔️ Uses_inline_validator_to_build_rules
```
### ✔️ <a id="user-content-r0s28" href="#r0s28">FluentValidation.Tests.LanguageManagerTests</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s29" href="#r0s29">FluentValidation.Tests.LengthValidatorTests</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s30" href="#r0s30">FluentValidation.Tests.LessThanOrEqualToValidatorTester</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s31" href="#r0s31">FluentValidation.Tests.LessThanValidatorTester</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s32" href="#r0s32">FluentValidation.Tests.LocalisedMessagesTester</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s33" href="#r0s33">FluentValidation.Tests.LocalisedNameTester</a>
```
✔️ Uses_localized_name
✔️ Uses_localized_name_expression
```
### ✔️ <a id="user-content-r0s34" href="#r0s34">FluentValidation.Tests.MemberAccessorTests</a>
```
✔️ ComplexPropertyGet
✔️ ComplexPropertySet
✔️ Equality
✔️ ImplicitCast
✔️ Name
✔️ SimpleFieldGet
✔️ SimpleFieldSet
✔️ SimplePropertyGet
✔️ SimplePropertySet
```
### ✔️ <a id="user-content-r0s35" href="#r0s35">FluentValidation.Tests.MessageFormatterTests</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s36" href="#r0s36">FluentValidation.Tests.ModelLevelValidatorTests</a>
```
✔️ Can_use_child_validator_at_model_level
✔️ Validates_at_model_level
```
### ✔️ <a id="user-content-r0s37" href="#r0s37">FluentValidation.Tests.NameResolutionPluggabilityTester</a>
```
✔️ Resolves_nested_properties
✔️ ShouldHaveValidationError_Should_support_custom_propertynameresolver
✔️ Uses_custom_property_name
```
### ✔️ <a id="user-content-r0s38" href="#r0s38">FluentValidation.Tests.NotEmptyTester</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s39" href="#r0s39">FluentValidation.Tests.NotEqualValidatorTests</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s40" href="#r0s40">FluentValidation.Tests.NotNullTester</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s41" href="#r0s41">FluentValidation.Tests.NullTester</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s42" href="#r0s42">FluentValidation.Tests.OnFailureTests</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s43" href="#r0s43">FluentValidation.Tests.PredicateValidatorTester</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s44" href="#r0s44">FluentValidation.Tests.PropertyChainTests</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s45" href="#r0s45">FluentValidation.Tests.RegularExpressionValidatorTests</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s46" href="#r0s46">FluentValidation.Tests.RuleBuilderTests</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s47" href="#r0s47">FluentValidation.Tests.RuleDependencyTests</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s48" href="#r0s48">FluentValidation.Tests.RulesetTests</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s49" href="#r0s49">FluentValidation.Tests.ScalePrecisionValidatorTests</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s50" href="#r0s50">FluentValidation.Tests.SharedConditionTests</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s51" href="#r0s51">FluentValidation.Tests.StandalonePropertyValidationTester</a>
```
✔️ Should_validate_property_value_without_instance
```
### ✔️ <a id="user-content-r0s52" href="#r0s52">FluentValidation.Tests.StringEnumValidatorTests</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s53" href="#r0s53">FluentValidation.Tests.TrackingCollectionTests</a>
```
✔️ Add_AddsItem
✔️ Should_not_raise_event_once_handler_detached
✔️ When_Item_Added_Raises_ItemAdded
```
### ✔️ <a id="user-content-r0s54" href="#r0s54">FluentValidation.Tests.TransformTests</a>
```
✔️ Transforms_collection_element
✔️ Transforms_collection_element_async
✔️ Transforms_property_value
✔️ Transforms_property_value_to_another_type
```
### ✔️ <a id="user-content-r0s55" href="#r0s55">FluentValidation.Tests.UserSeverityTester</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s56" href="#r0s56">FluentValidation.Tests.UserStateTester</a>
```
✔️ Can_Provide_state_for_item_in_collection
✔️ Correctly_provides_object_being_validated
✔️ Stores_user_state_against_validation_failure
✔️ Throws_when_provider_is_null
```
### ✔️ <a id="user-content-r0s57" href="#r0s57">FluentValidation.Tests.ValidateAndThrowTester</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s58" href="#r0s58">FluentValidation.Tests.ValidationResultTests</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s59" href="#r0s59">FluentValidation.Tests.ValidatorDescriptorTester</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s60" href="#r0s60">FluentValidation.Tests.ValidatorSelectorTests</a>
```
✔️ 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
```
### ✔️ <a id="user-content-r0s61" href="#r0s61">FluentValidation.Tests.ValidatorTesterTester</a>
```
✔️ 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
```