ProtoTest.Data
1.0.1
dotnet add package ProtoTest.Data --version 1.0.1
NuGet\Install-Package ProtoTest.Data -Version 1.0.1
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="ProtoTest.Data" Version="1.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ProtoTest.Data" Version="1.0.1" />
<PackageReference Include="ProtoTest.Data" />
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 ProtoTest.Data --version 1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: ProtoTest.Data, 1.0.1"
#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 ProtoTest.Data@1.0.1
#: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=ProtoTest.Data&version=1.0.1
#tool nuget:?package=ProtoTest.Data&version=1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
ProtoTest.Data
Deterministic test data with member defaults, provisioners and an identity map — without ever guessing a semantic value.
dotnet add package ProtoTest.Data
builder.AddData(data => data.AddDefaultsFromAssembly(typeof(NorthstarDataDefaults).Assembly));
Quick start
// Explicit values win over defaults, which win over providers and safe built-ins.
var invoice = Proto.Context.Data().For<Invoice>()
.With(x => x.Total, 125m)
.With(x => x.Status, InvoiceStatus.Overdue)
.Build();
// A provisioner creates through the application; the result enters the identity map.
builder
.AddData()
.AddDataProvisioner<Invoice, InvoiceProvisioner>();
var created = await Proto.Context.Data().For<Invoice>()
.With(x => x.Total, Money.EUR(125m))
.CreateAsync();
var again = Proto.Context.Data().Ref<Invoice>(created.Number);
What it adds
- Construction —
Proto.Context.Data()exposesFor<T>()(aProtoDataObjectBuilder<T>) andRef<T>(identity?); build withWith,Build,CreateAsync,BuildManyorCreateManyAsync. - Precedence per member — explicit
With, member default, exact type provider, registeredIProtoDataValueResolvers, safe built-ins, then the constructor default; anything unresolved throws aProtoDataExceptionnaming the member. - Configuration —
AddData(data => …):Values.Use<T>(...),For<T>().Default(...),ConstructUsing(...),Redact(...),RedactValueType<T>(),AddDefaults<TModule>()andAddDefaultsFromAssembly(assembly). - Provisioners —
AddDataProvisioner<T, TProvisioner>()(or the input/result overload); an optionalCleanupis released in reverse creation order during teardown. - Identity map — per-test
Ref<T>(identity)matchesCreateAsyncresults case-sensitively;data.provisionrecords the identity and avalue:{type}:{identity}tracked item. - Tracing —
data.build/data.explain/data.create/data.build_many/data.create_many,data.provision,data.cleanupand per-memberdata.value.resolveevents with their source.
Values are never invented, Build() results never enter the identity map, and redaction protects only the ProtoTrace graph.
Learn more
| Product | Versions 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 is compatible. 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.
-
net10.0
- ProtoTest.Core (>= 1.0.1)
-
net8.0
- ProtoTest.Core (>= 1.0.1)
-
net9.0
- ProtoTest.Core (>= 1.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.