PineGuard.Testing 0.1.0-alpha.7

This is a prerelease version of PineGuard.Testing.
dotnet add package PineGuard.Testing --version 0.1.0-alpha.7
                    
NuGet\Install-Package PineGuard.Testing -Version 0.1.0-alpha.7
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PineGuard.Testing" Version="0.1.0-alpha.7" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="PineGuard.Testing" Version="0.1.0-alpha.7" />
                    
Directory.Packages.props
<PackageReference Include="PineGuard.Testing" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add PineGuard.Testing --version 0.1.0-alpha.7
                    
#r "nuget: PineGuard.Testing, 0.1.0-alpha.7"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package PineGuard.Testing@0.1.0-alpha.7
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=PineGuard.Testing&version=0.1.0-alpha.7&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=PineGuard.Testing&version=0.1.0-alpha.7&prerelease
                    
Install as a Cake Tool

PineGuard.Testing

Test your validators the way PineGuard tests its own — 13,000+ cases strong.

PineGuard.Testing is the xUnit toolkit that powers PineGuard's internal test suite: base test classes, case records, expected-result types, and exhaustive fixture catalogs of valid/invalid inputs for every rule category. Install it in your test project and your validator tests read the same way — and reuse the same data — as PineGuard itself.

Use this package when you're writing tests for custom Must, Guard, Fluent, or DataAnnotation validators and want rigorous, consistent coverage without rebuilding fixture data from scratch.

Install

dotnet add package PineGuard.Testing

Targets net8.0, net10.0, and netstandard2.1. Depends on PineGuard.Core, xunit, and FluentValidation.

Example

using PineGuard.Testing.UnitTests.MustClauses;

// Test any of the canonical rules (Email, StrictEmail, OwaspSafe, HttpsUrl, …)
// with exhaustive fixture data that ships with the package.
public sealed class EmailMustTests : BaseMustUnitTest<string>
{
    [Theory]
    [MemberData(nameof(ValidCases))]
    public void Valid_emails_pass(MustCase<string> testCase) =>
        AssertMust(testCase, Must.Be.Email);

    public static TheoryData<MustCase<string>> ValidCases() =>
        new(EmailRulesFixtures.ValidEmails.Select(
            email => new MustCase<string>(email, new MustExpected(IsValid: true))));
}

What you get

  • Base unit test classes — BaseMustUnitTest, BaseGuardUnitTest, BaseFluentUnitTest, BaseDataAnnotationUnitTest, BaseRuleUnitTest
  • Case records — MustCase, GuardCase, FluentCase, DataAnnotationCase, RuleCase
  • Expected records — a uniform IsValid boolean across every layer
  • Fixtures — exhaustive valid/invalid data for emails, URIs, OWASP input, network/HTTP identifiers, GUIDs, dates, times, numbers, collections, and more

See the full documentation for the complete base-class hierarchy and fixture catalog.

License

MIT © Steve McCormack

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0-alpha.7 173 4/20/2026
0.1.0-alpha.6 66 4/20/2026
0.1.0-alpha.5 68 4/18/2026