Rig.TUnit.Storage
0.1.0-beta.2
dotnet add package Rig.TUnit.Storage --version 0.1.0-beta.2
NuGet\Install-Package Rig.TUnit.Storage -Version 0.1.0-beta.2
<PackageReference Include="Rig.TUnit.Storage" Version="0.1.0-beta.2" />
<PackageVersion Include="Rig.TUnit.Storage" Version="0.1.0-beta.2" />
<PackageReference Include="Rig.TUnit.Storage" />
paket add Rig.TUnit.Storage --version 0.1.0-beta.2
#r "nuget: Rig.TUnit.Storage, 0.1.0-beta.2"
#:package Rig.TUnit.Storage@0.1.0-beta.2
#addin nuget:?package=Rig.TUnit.Storage&version=0.1.0-beta.2&prerelease
#tool nuget:?package=Rig.TUnit.Storage&version=0.1.0-beta.2&prerelease
Rig.TUnit.Storage
Family-base package for object-storage test fixtures:
StorageFixture, path-sandbox helpers, and the cross-provider storage contract.
What this package is
The base package for the Storage family (Rig.TUnit.Storage.AzureBlob,
.FileSystem, .MinIO, .S3). It defines the abstract StorageFixture
contract — put / get / list / delete with URI-sandbox constraints — plus the
StorageContract suite that every leaf provider [InheritsTests] from to
prove parity.
Install this one directly only when you are writing a new storage provider or want the shared assertions without a specific backend.
When to use it
- Authoring a new storage backend (FTP, OCI Object Storage, NFS, …).
- Writing provider-agnostic test code that can be pointed at any backend.
- Not for: concrete storage testing — install one of the four leaf packages.
Prerequisites
- .NET 10 SDK
System.IO.Abstractionsfor theFileSystemprovider; other leaves bring their own SDKs.
Quick start
using Rig.TUnit.Storage.Builder;
using Rig.TUnit.Storage.Fixtures;
using Rig.TUnit.Core.Builder;
using Rig.TUnit.Core.Helpers;
var rig = new RigBuilder()
.WithIsolation(IsolationKey.FromExecutionContext())
.Build();
await using var _ = rig;
Options
| Property | Type | Default | Description |
|---|---|---|---|
RootPath |
string |
$"test-{IsolationKey}" |
Sandbox prefix for all keys written during the test. |
MaxObjectSizeBytes |
long |
10_000_000 |
Guard against accidental big-object uploads. |
EnableVersioning |
bool |
false |
Require the backend to support object versioning. |
Fixture + helper APIs
Rig.TUnit.Storage.Fixtures.StorageFixture— abstract contractRig.TUnit.Storage.Contracts.StorageContract— family-level TUnit suiteRig.TUnit.Storage.Assertions.StorageAssert— existence / size / content
Per-test isolation
RootPath defaults to $"test-{IsolationKey}" so every test writes under a
unique prefix; teardown deletes the prefix recursively. Concrete providers
(S3, AzureBlob) append the key verbatim to their bucket / container name
with sandbox enforcement via path-normalisation helpers.
Parallelism + performance
§9 — N/A: family-base contract; parallelism profile depends on the
concrete provider. See each leaf README.
Troubleshooting
StoragePathEscapedSandbox— a test tried to read a key outside the per-test root. The sandbox helper blocked it; fix the test.
Provider quirks + edge cases
- Path separators differ (
/cloud vs\Windows filesystem); the base uses/as the canonical separator andFileSystemFixturetranslates.
Benchmarks
§12 — N/A: family-base; concrete providers have individual
*Benchmarks.cs entries under tests/Rig.TUnit.Benchmarks/.
Related docs
License
MIT. See LICENSE.
| 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
- Bogus (>= 35.6.1)
- Microsoft.Extensions.Configuration (>= 10.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Options (>= 10.0.0)
- Rig.TUnit.Core (>= 0.1.0-beta.2)
- TUnit.Core (>= 1.34.5)
NuGet packages (5)
Showing the top 5 NuGet packages that depend on Rig.TUnit.Storage:
| Package | Downloads |
|---|---|
|
Rig.TUnit.Storage.S3
TUnit fixture for Amazon S3 via LocalStack. Per-test bucket isolation, multipart upload, and SSE/replication assertions. |
|
|
Rig.TUnit.Storage.MinIO
TUnit fixture for MinIO (S3-compatible) backed by Testcontainers. Per-test bucket isolation and lifecycle policy helpers. |
|
|
Rig.TUnit.All
Meta-package containing every Rig.TUnit.* package. DISCOURAGED — prefer per-feature or per-stack meta-packages (Rig.TUnit, Rig.TUnit.Microservices). |
|
|
Rig.TUnit.Storage.AzureBlob
TUnit fixture for Azure Blob Storage via Azurite. Per-test container isolation, multipart upload, and condition-header assertions. |
|
|
Rig.TUnit.Storage.FileSystem
TUnit fixture for the local file system - temp-folder-scoped, no container required. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-beta.2 | 51 | 4/27/2026 |
| 0.0.0-alpha.0.14 | 49 | 4/26/2026 |