Skip to content

Commit

Permalink
Remove deprecated DI extensions and deprecated cascade mode options
Browse files Browse the repository at this point in the history
  • Loading branch information
JeremySkinner committed Sep 14, 2022
1 parent cb6de7d commit c644257
Show file tree
Hide file tree
Showing 11 changed files with 18 additions and 884 deletions.

This file was deleted.

Expand Up @@ -18,7 +18,7 @@
</PropertyGroup>
<ItemGroup>
<Compile Include="..\CommonAssemblyInfo.cs" Link="CommonAssemblyInfo.cs" />
<None Include="README.md" Pack="true" PackagePath="\"/>
<None Include="README.md" Pack="true" PackagePath="\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Dependencyinjection.Abstractions" Version="2.1.0" />
Expand Down
187 changes: 0 additions & 187 deletions src/FluentValidation.Tests/CascadeModePropertiesTesterLegacy.cs

This file was deleted.

51 changes: 8 additions & 43 deletions src/FluentValidation.Tests/CascadingFailuresTester.cs
Expand Up @@ -117,14 +117,6 @@ public class CascadingFailuresTester : IDisposable {
results.Errors.Count.ShouldEqual(1);
}

[Fact]
public void Validation_stops_on_first_failure_when_globaldefault_both_Continue_and_ruleleveloverride_Stop_legacy() {
SetBothGlobalCascadeModes(CascadeMode.Continue);
_validator.RuleFor(x => x.Surname).Cascade(CascadeMode.StopOnFirstFailure).NotNull().Equal("Foo");
var results = _validator.Validate(new Person());
results.Errors.Count.ShouldEqual(1);
}

[Fact]
public void Validation_continues_to_second_validator_when_first_validator_succeeds_and_globaldefault_both_Stop() {
SetBothGlobalCascadeModes(CascadeMode.Stop);
Expand Down Expand Up @@ -216,15 +208,6 @@ public class CascadingFailuresTester : IDisposable {
results.Errors.Count.ShouldEqual(1);
}

[Fact]
public void Validation_stops_on_failure_when_classlevel_Continue_and_ruleleveldefault_Continue_and_ruleleveloverride_Stop_legacy() {
SetBothValidatorCascadeModes(CascadeMode.Continue);

_validator.RuleFor(x => x.Surname).Cascade(CascadeMode.StopOnFirstFailure).NotNull().Equal("Foo");
var results = _validator.Validate(new Person());
results.Errors.Count.ShouldEqual(1);
}

[Fact]
public void Cascade_mode_can_be_set_after_validator_instantiated() {
_validator.RuleFor(x => x.Surname).NotNull().Equal("Foo");
Expand Down Expand Up @@ -321,15 +304,6 @@ public class CascadingFailuresTester : IDisposable {
results.Errors.Count.ShouldEqual(1);
}

[Fact]
public async Task Validation_stops_on_first_Failure_when_globaldefault_both_Continue_and_ruleleveloverride_Stop_async_legacy() {
SetBothGlobalCascadeModes(CascadeMode.Continue);
_validator.RuleFor(x => x.Surname).Cascade(CascadeMode.StopOnFirstFailure).MustAsync(async (x, c) => x != null).MustAsync(async (x, c) => x == "foo");
var results = await _validator.ValidateAsync(new Person());
results.Errors.Count.ShouldEqual(1);
}


[Fact]
public async Task Validation_stops_on_first_Failure_when_globaldefault_both_Continue_and_ruleleveloverride_Stop_async_and_async_validator_is_invoked_synchronously() {
SetBothGlobalCascadeModes(CascadeMode.Continue);
Expand All @@ -338,14 +312,6 @@ public class CascadingFailuresTester : IDisposable {
results.Errors.Count.ShouldEqual(1);
}

[Fact]
public async Task Validation_stops_on_first_Failure_when_globaldefault_both_Continue_and_ruleleveloverride_Stop_async_and_async_validator_is_invoked_synchronously_legacy() {
SetBothGlobalCascadeModes(CascadeMode.Continue);
_validator.RuleFor(x => x.Surname).Cascade(CascadeMode.StopOnFirstFailure).NotNull().Equal("Foo");
var results = await _validator.ValidateAsync(new Person());
results.Errors.Count.ShouldEqual(1);
}

[Fact]
public async Task Validation_continues_to_second_validator_when_first_validator_succeeds_and_globaldefault_both_Stop_async() {
SetBothGlobalCascadeModes(CascadeMode.Stop);
Expand Down Expand Up @@ -465,15 +431,6 @@ public class CascadingFailuresTester : IDisposable {
results.Errors.Count.ShouldEqual(1);
}

[Fact]
public async Task Validation_stops_on_failure_when_classlevel_Continue_and_ruleleveldefault_Continue_and_ruleleveloverride_Stop_async_legacy() {
SetBothValidatorCascadeModes(CascadeMode.Continue);

_validator.RuleFor(x => x.Surname).Cascade(CascadeMode.StopOnFirstFailure).MustAsync(async (x, c) => x != null).MustAsync(async (x, c) => x == "foo");
var results = await _validator.ValidateAsync(new Person());
results.Errors.Count.ShouldEqual(1);
}

[Fact]
public async Task Cascade_mode_can_be_set_after_validator_instantiated_async() {
_validator.RuleFor(x => x.Surname).MustAsync(async (x, c) => x != null).MustAsync(async (x, c) => x == "foo");
Expand All @@ -490,6 +447,14 @@ public class CascadingFailuresTester : IDisposable {
results.Errors.Count.ShouldEqual(1);
}

[Fact]
public void CascadeMode_values_should_correspond_to_correct_integers() {
// 12.0 removed the "StopOnFirstFailure" option which was value 1.
// For compatibility, "Stop" should still equate to 2, rather than being renumbered to 1.
Assert.Equal(0, (int)CascadeMode.Continue);
Assert.Equal(2, (int)CascadeMode.Stop);
}

private void SetBothValidatorCascadeModes(CascadeMode cascadeMode) {
_validator.ClassLevelCascadeMode = cascadeMode;
_validator.RuleLevelCascadeMode = cascadeMode;
Expand Down

0 comments on commit c644257

Please sign in to comment.