Csag.Blueprint.Testing
0.1.0
dotnet add package Csag.Blueprint.Testing --version 0.1.0
NuGet\Install-Package Csag.Blueprint.Testing -Version 0.1.0
<PackageReference Include="Csag.Blueprint.Testing" Version="0.1.0" />
<PackageVersion Include="Csag.Blueprint.Testing" Version="0.1.0" />
<PackageReference Include="Csag.Blueprint.Testing" />
paket add Csag.Blueprint.Testing --version 0.1.0
#r "nuget: Csag.Blueprint.Testing, 0.1.0"
#:package Csag.Blueprint.Testing@0.1.0
#addin nuget:?package=Csag.Blueprint.Testing&version=0.1.0
#tool nuget:?package=Csag.Blueprint.Testing&version=0.1.0
Csag.Blueprint.Testing
Overview
This package provides shared test infrastructure for CSAG Blueprint-based applications: Testcontainer orchestrators for SQL Server and WireMock, a base class for integration tests with per-test database reset, and unit test helpers.
Integration Testing
MsSqlTestContainerOrchestrator
Manages the full lifecycle of a SQL Server Testcontainer (default image: mcr.microsoft.com/mssql/server:2022-latest). After seeding, it creates a database snapshot that is restored before each test for fast, isolated runs.
Typical usage in a fixture:
// PreSetupAsync
await sqlOrchestrator.StartAsync();
// After migrations and seeding
await sqlOrchestrator.CreateSnapshotAsync(connectionString);
// Before each test (called by IntegrationTestBase)
await sqlOrchestrator.ResetDatabaseAsync();
// TearDownAsync
await sqlOrchestrator.DropSnapshotAsync();
await sqlOrchestrator.DisposeAsync();
WireMockTestContainerOrchestrator
Manages a WireMock Testcontainer for stubbing external HTTP dependencies. Provides GetPublicUri() to override service base URIs in configuration and CreateFreshAdminClientAsync() to reset all stubs at the start of each test.
IntegrationTestBase<TFixture>
Abstract base class for integration tests. Calls TFixture.ResetDatabaseAsync() in SetupAsync() so every test starts from the post-seeding snapshot. The fixture must implement IResettableFixture.
IResettableFixture
Interface marking a test fixture as supporting per-test database reset. Implementations should delegate to MsSqlTestContainerOrchestrator.ResetDatabaseAsync().
Unit Testing
AutoDomainDataAttribute
An [AutoData] attribute configured for domain entities. Replaces AutoFixture's default ThrowingRecursionBehavior with OmitOnRecursionBehavior so entity graphs with circular navigation properties can be auto-generated.
TestDbContextScope<TDbContext>
Disposable wrapper around a DbContext instance that ensures proper cleanup when disposed. Useful for scoping a test-local context.
Assertion Extensions
HttpResponseMessageExtensions
Shouldly-style assertion for HTTP responses:
await response.ShouldHaveStatusCodeAsync(HttpStatusCode.OK);
On failure, the assertion message includes the full response body for easier debugging.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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. |
-
net10.0
- Audit.EntityFramework.Core (>= 32.2.0)
- Audit.NET (>= 32.2.0)
- Audit.NET.SqlServer (>= 32.2.0)
- AutoFixture.Xunit3 (>= 5.0.0-preview0012)
- ClosedXML (>= 0.105.0)
- Csag.Blueprint.Web (>= 0.1.0)
- FastEndpoints (>= 8.2.0)
- FastEndpoints.Swagger (>= 8.2.0)
- FastEndpoints.Testing (>= 8.2.0)
- FluentValidation (>= 12.1.1)
- Microsoft.ApplicationInsights.AspNetCore (>= 2.23.0)
- Microsoft.ApplicationInsights.NLogTarget (>= 2.23.0)
- Microsoft.AspNetCore.Authentication.Google (>= 10.0.9)
- Microsoft.AspNetCore.DataProtection.EntityFrameworkCore (>= 10.0.9)
- Microsoft.AspNetCore.Identity.EntityFrameworkCore (>= 10.0.9)
- Microsoft.Data.SqlClient (>= 7.0.1)
- Microsoft.EntityFrameworkCore (>= 10.0.9)
- Microsoft.EntityFrameworkCore.SqlServer (>= 10.0.9)
- Microsoft.Extensions.Caching.SqlServer (>= 10.0.9)
- Microsoft.Extensions.Caching.StackExchangeRedis (>= 10.0.9)
- Neolution.Extensions.Caching.Distributed (>= 3.0.0-vnext0017)
- Neolution.Extensions.Configuration.GoogleSecrets (>= 1.6.0)
- NLog.Web.AspNetCore (>= 6.1.3)
- Shouldly (>= 4.3.0)
- Testcontainers.MsSql (>= 4.12.0)
- WireMock.Net.Testcontainers (>= 2.11.0)
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 | 0 | 7/3/2026 |