Files
Just.Railway/Raliway.Tests/EnsureExtensions/Satisfy.cs
T
just e8ae93799e
.NET Test / .NET tests (push) Failing after 2m5s
error tests expansion
2026-07-12 18:06:53 +04:00

60 lines
1.7 KiB
C#

namespace Raliway.Tests.EnsureExtensions;
public class Satisfy
{
[Fact]
public void WhenRequirementWasSatisfied_ShouldBeSuccessful()
{
var result = Ensure.That(69)
.Satisfies(i => i < 100)
.LessThan(100)
.Result();
result.IsSuccess.ShouldBeTrue();
result.Value.ShouldBe(69);
}
[Fact]
public void WhenRequirementWasNotSatisfied_ShouldBeFailureWithDefaultError()
{
var error = Error.New(Ensure.DefaultErrorType, "Value {69} does not satisfy the requirement.");
var result = Ensure.That(69)
.Satisfies(i => i > 100)
.GreaterThan(100)
.Result();
result.IsFailure.ShouldBeTrue();
result.Error.ShouldBe(error);
}
[Fact]
public void WhenAllRequirementsWasSatisfied_ShouldBeSuccessful()
{
var result = Ensure.That<string?>("69")
.NotNull()
.NotEmpty()
.NotWhitespace()
.Satisfies(s => s == "69")
.EqualTo("69")
.Result();
result.IsSuccess.ShouldBeTrue();
result.Value.ShouldBe("69");
}
[Fact]
public void WhenAnyRequirementWasNotSatisfied_ShouldBeFailureWithFirstError()
{
var error = Error.New(Ensure.DefaultErrorType, "Value {(string?)\" \"} is empty or consists exclusively of white-space characters.");
var result = Ensure.That((string?)" ")
.NotNull()
.NotEmpty()
.NotWhitespace()
.Satisfies(s => s == "69")
.EqualTo("69")
.Result();
result.IsFailure.ShouldBeTrue();
result.Error.ShouldBe(error);
}
}