kasthack.NotEmpty.Core
1.0.7
See the version list below for details.
dotnet add package kasthack.NotEmpty.Core --version 1.0.7
NuGet\Install-Package kasthack.NotEmpty.Core -Version 1.0.7
<PackageReference Include="kasthack.NotEmpty.Core" Version="1.0.7" />
paket add kasthack.NotEmpty.Core --version 1.0.7
#r "nuget: kasthack.NotEmpty.Core, 1.0.7"
// Install kasthack.NotEmpty.Core as a Cake Addin #addin nuget:?package=kasthack.NotEmpty.Core&version=1.0.7 // Install kasthack.NotEmpty.Core as a Cake Tool #tool nuget:?package=kasthack.NotEmpty.Core&version=1.0.7
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 | net5.0 was computed. net5.0-windows was computed. 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 was computed. 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. |
.NET Core | netcoreapp2.0 is compatible. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Framework | net461 is compatible. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
-
.NETCoreApp 2.0
- No dependencies.
-
.NETFramework 4.6.1
- No dependencies.
-
net6.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.