< 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: 14
Uncovered lines: 0
Coverable lines: 14
Total lines: 45
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
 1using System.Collections.ObjectModel;
 2
 3namespace AsiBackbone.Core.Emissions;
 4
 5/// <summary>
 6/// Provider-neutral no-op governance emitter for tests, samples, local validation, and outbox proof-of-composition flow
 7/// </summary>
 8/// <remarks>
 9/// This emitter does not send data to an external provider. It acknowledges the envelope as delivered so hosts can vali
 10/// </remarks>
 11public sealed class NoOpGovernanceEmitter : IAsiBackboneGovernanceEmitter
 12{
 13    /// <summary>
 14    /// Gets the provider name used by the no-op emitter.
 15    /// </summary>
 16    public const string ProviderName = "noop";
 17
 218    private static readonly IReadOnlyDictionary<string, string> DeliveredMetadata = new ReadOnlyDictionary<string, strin
 219        new Dictionary<string, string>(StringComparer.Ordinal)
 220        {
 221            ["emitter.kind"] = "noop",
 222            ["emitter.purpose"] = "outbox-drain-validation"
 223        });
 24
 25    /// <summary>
 26    /// Gets a reusable no-op governance emitter instance.
 27    /// </summary>
 1028    public static NoOpGovernanceEmitter Instance { get; } = new();
 29
 30    /// <inheritdoc />
 31    public ValueTask<GovernanceEmissionResult> EmitAsync(
 32        GovernanceEmissionEnvelope envelope,
 33        CancellationToken cancellationToken = default)
 34    {
 435        ArgumentNullException.ThrowIfNull(envelope);
 436        cancellationToken.ThrowIfCancellationRequested();
 37
 438        var result = GovernanceEmissionResult.DeliveredFromNormalizedMetadata(
 439            ProviderName,
 440            providerRecordId: envelope.EnvelopeId,
 441            DeliveredMetadata);
 42
 443        return ValueTask.FromResult(result);
 44    }
 45}