< Summary

Information
Class: AsiBackbone.Core.Emissions.NoOpGovernanceEmitter
Assembly: AsiBackbone.Core
File(s): /home/runner/work/AsiBackbone/AsiBackbone/src/AsiBackbone.Core/Emissions/NoOpGovernanceEmitter.cs
Line coverage
100%
Covered lines: 13
Uncovered lines: 0
Coverable lines: 13
Total lines: 42
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.cctor()100%11100%
get_Instance()100%11100%
EmitAsync(...)100%11100%

File(s)

/home/runner/work/AsiBackbone/AsiBackbone/src/AsiBackbone.Core/Emissions/NoOpGovernanceEmitter.cs

#LineLine coverage
 1namespace AsiBackbone.Core.Emissions;
 2
 3/// <summary>
 4/// Provider-neutral no-op governance emitter for tests, samples, local validation, and outbox proof-of-composition flow
 5/// </summary>
 6/// <remarks>
 7/// This emitter does not send data to an external provider. It acknowledges the envelope as delivered so hosts can vali
 8/// </remarks>
 9public sealed class NoOpGovernanceEmitter : IAsiBackboneGovernanceEmitter
 10{
 11    /// <summary>
 12    /// Gets the provider name used by the no-op emitter.
 13    /// </summary>
 14    public const string ProviderName = "noop";
 15
 116    private static readonly IReadOnlyDictionary<string, string> DeliveredMetadata = new Dictionary<string, string>(Strin
 117    {
 118        ["emitter.kind"] = "noop",
 119        ["emitter.purpose"] = "outbox-drain-validation"
 120    };
 21
 22    /// <summary>
 23    /// Gets a reusable no-op governance emitter instance.
 24    /// </summary>
 325    public static NoOpGovernanceEmitter Instance { get; } = new();
 26
 27    /// <inheritdoc />
 28    public ValueTask<GovernanceEmissionResult> EmitAsync(
 29        GovernanceEmissionEnvelope envelope,
 30        CancellationToken cancellationToken = default)
 31    {
 232        ArgumentNullException.ThrowIfNull(envelope);
 233        cancellationToken.ThrowIfCancellationRequested();
 34
 235        var result = GovernanceEmissionResult.Delivered(
 236            ProviderName,
 237            providerRecordId: envelope.EnvelopeId,
 238            DeliveredMetadata);
 39
 240        return ValueTask.FromResult(result);
 41    }
 42}