Ensure.That is a simple guard clause argument validation lib, that helps you with validation of your arguments.
Developed for: .NET4.6.2, .NET5.0, .NET Standard 2.0 and 2.1 available via NuGet.
Ensure.That(myString).IsNotNullOrWhiteSpace();
Ensure.That(myString, nameof(myString)).IsNotNullOrWhiteSpace();
Ensure.That(myString, nameof(myString), (in EnsureOptions opts) => opts.WithMessage("Foo")).IsNotNullOrWhiteSpace();
Chainable:
Ensure
.That(myString)
.IsNotNullOrWhiteSpace()
.IsGuid();
Easily extendable:
public static class StringArgExtensions
{
public static StringParam IsNotFishy(this StringParam param)
=> param.Value != "fishy"
? param
: throw Ensure.ExceptionFactory.ArgumentException("Something is fishy!", param.Name);
}
Ensure.That(myString, nameof(myString)).IsNotFishy();
NOTE: If you are worried that the constructed public readonly struct Param<T> {}
created for the argument being validated will hurt your performance you can use any of the other constructs e.g. contextual Ensure.String
or EnsureArg
(see below for samples).
Introduced in the v7.0.0
release.
Ensure.String.IsNotNullOrWhiteSpace(myString);
Ensure.String.IsNotNullOrWhiteSpace(myString, nameof(myArg));
Ensure.String.IsNotNullOrWhiteSpace(myString, nameof(myArg), (in EnsureOptions opts) => opts.WithMessage("Foo"));
Easily extendable:
public static class StringArgExtensions
{
public static string IsNotFishy(this StringArg _, string value, string paramName = null)
=> value != "fishy"
? value
: throw Ensure.ExceptionFactory.ArgumentException("Something is fishy!", paramName);
}
Ensure.String.IsNotFishy(myString, nameof(myString));
Introduced in the v5.0.0
release.
EnsureArg.IsNotNullOrWhiteSpace(myString);
EnsureArg.IsNotNullOrWhiteSpace(myString, nameof(myArg));
EnsureArg.IsNotNullOrWhiteSpace(myString, nameof(myArg), (in EnsureOptions opts) => opts.WithMessage("Foo"));
Easily extendable:
public static partial class EnsureArg
{
public static string IsNotFishy(string value, string paramName = null)
=> value != "fishy"
? value
: throw Ensure.ExceptionFactory.ArgumentException("Something is fishy!", paramName);
}
EnsureArg.IsNotFishy(myString, nameof(myString));
The Samples above just uses string
validation, but there are more. E.g.:
- Strings
- Numerics
- Collections (arrays, lists, collections, dictionaries)
- Booleans
- Guids
The main solution is maintained using Visual Studio 2017.
Unit-tests are written using xUnit
and there are no integration tests, hence you should just be able to:
Pull
Compile
Run the tests
Easiest done using:
git clone ...
and
dotnet test src/Ensure.That.sln