kasthack.NotEmpty.Core
1.3.0
See the version list below for details.
dotnet add package kasthack.NotEmpty.Core --version 1.3.0
NuGet\Install-Package kasthack.NotEmpty.Core -Version 1.3.0
<PackageReference Include="kasthack.NotEmpty.Core" Version="1.3.0" />
paket add kasthack.NotEmpty.Core --version 1.3.0
#r "nuget: kasthack.NotEmpty.Core, 1.3.0"
// Install kasthack.NotEmpty.Core as a Cake Addin #addin nuget:?package=kasthack.NotEmpty.Core&version=1.3.0 // Install kasthack.NotEmpty.Core as a Cake Tool #tool nuget:?package=kasthack.NotEmpty.Core&version=1.3.0
kasthack.NotEmpty
What?
kasthack.Empty is a library for recursively checking objects for emptinness(being null, default value, an empty collection or a string). It saves you from writing boilerplate in tests for deserializers / parsers / API clients.
Why does this exist?
Manually checking properties for emptinness leaves an opportunity to miss something and makes the developer to write boilerplate.
Usage
- Install the appropriate package
- Check your objects / their properties for emptinness. Look at the <a href="src/kasthack.NotEmpty.Tests/NotEmptyTestBase.cs">tests</a> for more details.
using kasthack.NotEmpty.Xunit; // replace the namespace to match your test framework
public class MyAmazingTest
{
[Fact]
public void MyThingWorks()
{
var targetObject = MyClass.GetResult();
targetObject.NotEmpty();
//<actual asserts>
}
[Fact]
public void TestOptions()
{
// won't throw
new {
PropertyThanLegitimatelyCanBeAnEmptyStringButNotNull = "",
}.NotEmpty(new AssertOptions {
AllowEmptyStrings = true,
});
//won't throw
new {
PropertyThanLegitimatelyCanBeAnEmptyCollectionButNotNull = new int[]{},
}.NotEmpty(new AssertOptions {
AllowEmptyCollections = true,
});
// won't throw
new {
FileContentThatObviouslyContainsSomeNullBytes = new byte[]{ 0 }
}.NotEmpty(new AssertOptions {
AllowZerosInNumberArrays = true
});
// won't throw BUT will stop at 200 iterations
// default MaxDepth is 100
new {
DeeplyNestedObject = new InfiniteNestedStruct()
}.NotEmpty(new AssertOptions {
MaxDepth = 200
});
}
public struct InfiniteNestedStruct
{
public int Value { get; set; } = 1;
public InfiniteNestedStruct Child => new InfiniteNestedStruct { Value = this.Value + 1 };
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net6.0
- No dependencies.
-
net7.0
- No dependencies.
NuGet packages (4)
Showing the top 4 NuGet packages that depend on kasthack.NotEmpty.Core:
Package | Downloads |
---|---|
kasthack.NotEmpty.Xunit
.NotEmpty<T>() test extension |
|
kasthack.NotEmpty.MsTest
.NotEmpty<T>() test extension |
|
kasthack.NotEmpty.Raw
.NotEmpty<T>() test extension |
|
kasthack.NotEmpty.Nunit
.NotEmpty<T>() test extension |
GitHub repositories
This package is not used by any popular GitHub repositories.