Class JobStorageConformanceSuite
- Namespace
- Millrace.Storage.Verification
- Assembly
- Millrace.Storage.Verification.dll
The workflow-checkpoint clause of the atomicity contract (ARCHITECTURE.md §4.2, §6.2).
public abstract class JobStorageConformanceSuite
- Inheritance
-
JobStorageConformanceSuite
- Inherited Members
Remarks
The checkpoint is the unit of exactly-once progress, so what matters is not that it works but that it is indivisible from the transition carrying it. Every fact here is about a partial application that must be impossible: an instance advanced by a job that did not complete, a job completed without its instance advancing, or either surviving a rejection.
Fields
- Epoch
The instant every suite's fake clock starts at.
- Lease
The lease length the suite claims with unless a fact needs another.
Properties
- DummyInvocation
A placeholder invocation, since no conformance fact executes a job.
Methods
- ClaimOneAsync(IJobStorage, string, string, TimeSpan?)
Claims exactly one job, asserting that exactly one came back.
- CreateHarnessAsync(TimeProvider)
Creates a fresh, empty store bound to
time.
- EnqueueOneAsync(IJobStorage, JobRecord)
Enqueues one job and reads it back as the provider stored it.
- Job(TimeProvider, JobState, string, int, string?, string?, JobId?, DateTimeOffset?, Retry?)
Builds a job record with everything defaulted except what a fact is about.
- Transition(JobRecord, JobState, int?, DateTimeOffset?, string?, bool, bool, IReadOnlyList<JobRecord>?)
Builds a transition already fenced to
claimed.