AtomiCloud.Diene.Interfaces.TestHelper
1.0.0
dotnet add package AtomiCloud.Diene.Interfaces.TestHelper --version 1.0.0
NuGet\Install-Package AtomiCloud.Diene.Interfaces.TestHelper -Version 1.0.0
<PackageReference Include="AtomiCloud.Diene.Interfaces.TestHelper" Version="1.0.0" />
<PackageVersion Include="AtomiCloud.Diene.Interfaces.TestHelper" Version="1.0.0" />
<PackageReference Include="AtomiCloud.Diene.Interfaces.TestHelper" />
paket add AtomiCloud.Diene.Interfaces.TestHelper --version 1.0.0
#r "nuget: AtomiCloud.Diene.Interfaces.TestHelper, 1.0.0"
#:package AtomiCloud.Diene.Interfaces.TestHelper@1.0.0
#addin nuget:?package=AtomiCloud.Diene.Interfaces.TestHelper&version=1.0.0
#tool nuget:?package=AtomiCloud.Diene.Interfaces.TestHelper&version=1.0.0
AtomiCloud.Diene.Interfaces
Diene's reproducible development environment is managed by Nix. Run direnv allow once, then use pls tasks from the loaded shell.
This branch is the workspace baseline inherited by every downstream sample: split CI/CD, secrets, release configuration, validators, standards, and vendored agent-skill synchronization.
Commands
pls setup— synchronize installed diene package skills.pls lint— run every pre-commit gate.pls secret:scan— scan tracked content for secrets.pls skills:sync— rebuild.claude/skills/vendor/from installed packages.
Standards
- CI/CD workflows
- conventional commits
- Infisical and secrets
- linting and pre-commit
- Nix flakes and development shells
- release automation
- service-tree identity
- shell scripts
- Taskfile conventions
Shared standards
- Authorization
- Contributor documentation
- Date and time
- Domain-driven design
- Functional practices
- Software design philosophy
- SOLID principles
- Stateless OOP and dependency injection
- Testing
- Three-layer architecture
- Utility libraries
- Data validation
Domain-specific documentation belongs under docs/domain/.
The docs/standards/contracts/ location is reserved for the separately owned C0
contracts standard.
.NET 10 foundation
This branch adds the .NET 10 toolchain, the App/Lib/UnitTest/IntTest
sample, merged multi-project coverage, strict and LLM dead-code modes. See the .NET baseline.
Common commands:
pls build,pls dev,pls run, andpls previewpls test,pls test:unit,pls test:int, and the coverage variantspls deadcodefor the non-blocking review; CI owns strict dn-inspect
The shared seams and their C0 wire contract are documented in docs/domain/interfaces.md. Production observability is intentionally absent until the observability add-back.
Publishable library packages
This repository publishes AtomiCloud.Diene.Interfaces and the companion
AtomiCloud.Diene.Interfaces.TestHelper package at one committed version. It is
the .NET member of the S33 cross-family common-interfaces library: it OWNS the
shared seams for ISystem, IVfs, ITerminal, ILoggerSink, and
IMetricsCollector, and every fallible method returns
Result<T, SeamError> — it never throws and never captures. The otel package
IMPLEMENTS the telemetry seams; it does not own them.
dotnet add package AtomiCloud.Diene.Interfaces
dotnet add package AtomiCloud.Diene.Interfaces.TestHelper
using AtomiCloud.Diene.Interfaces;
using AtomiCloud.Diene.Interfaces.TestHelper;
using AtomiCloud.Diene.Results.TestHelper;
// Substitute the in-memory seam anywhere an IVfs is required.
var vfs = new InMemoryVfs();
(await vfs.WriteText("/etc/app.yaml", "key: value", new VfsWriteOptions(true))).Should().BeOk();
(await vfs.ReadText("/etc/app.yaml")).Should().BeOk("key: value");
(await vfs.ReadText("/absent")).Should().BeSeamErr(SeamKind.Vfs, "not_found");
// Prove YOUR implementation satisfies the same behavioural contract.
(await SeamContracts.Vfs(new MyVfs(), "/tmp/scratch")).Should().BeConformant();
The shipped SeamContracts suites are the contract-parity vehicle: run one suite
against your real adapter and against the in-memory mock, and a conformant pair is
substitutable. Values that cross the wire obey the C0 contract (R14) — RFC 3339
UTC instants, ISO 8601 durations, IANA timezone ids, and one stable lowercase wire
name per enumeration, shared with the bun, dart, and go members of this family.
Run nix develop .#ci -c ./scripts/ci/pkg-validate.sh to pack both packages,
validate metadata and symbols, and restore them into a scratch consumer. See
the library baseline for release and
promotion guidance.
| 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
- AtomiCloud.Diene.Interfaces (>= 1.0.0)
- AtomiCloud.Diene.Result.TestHelper (>= 1.0.0)
- FluentAssertions (>= 7.2.2)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on AtomiCloud.Diene.Interfaces.TestHelper:
| Package | Downloads |
|---|---|
|
AtomiCloud.Diene.E2e.TestHelper
Diene family TestHelper bundle plus black-box response assertions. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 264 | 7/25/2026 |