This is a simple library that helps you to use Microsoft.Toolkit.Diagnostics.Guard extensions with more fluency.
The idea is not new, I tried to copy some code and personalize some code from the project FluentAssertions.
So thank you FluentAssertions' guys ❤️❤️❤️
Let's say we have a service SomeService
that defince the following method:
public void DoSomeCall(string name, object length)
{
// do something
}
Here you will sure need to make some checks for your parameters name
and length
.
Let's say :
- the
name
shouldn't be null and should have at least 10 chars. - the
length
should be assignable to the typeint
In this case your check can look like this,
public void DoSomeCall(string name, object length)
{
//guard
name.Should()
.NotBeNullOrWhiteSpace()
.And
.HaveLengthGreaterThan(10);
length.Should().BeAssignableTo(typeof(int));
// do something
}
In this example there are three exceptions that can be thrown:
System.ArgumentNullException
: Thrown ifname
is null.System.ArgumentException
: Thrown ifname
is empty or whitespace.System.ArgumentException
: Thrown iflength
is not assignable to the typeint
.