< Summary - Heimdall API

Information
Class: ArturRios.Heimdall.Query.Output.SecuritySignal
Assembly: ArturRios.Heimdall.Query
File(s): /home/runner/work/heimdall-api/heimdall-api/src/Application/ArturRios.Heimdall.Query/Output/SecuritySignalsOutput.cs
Line coverage
100%
Covered lines: 4
Uncovered lines: 0
Coverable lines: 4
Total lines: 38
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage
100%
Covered methods: 4
Fully covered methods: 4
Total methods: 4
Method coverage: 100%
Full method coverage: 100%

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Kind()100%11100%
get_Description()100%11100%
get_Count()100%11100%
get_ActorId()100%11100%

File(s)

/home/runner/work/heimdall-api/heimdall-api/src/Application/ArturRios.Heimdall.Query/Output/SecuritySignalsOutput.cs

#LineLine coverage
 1using ArturRios.Mediator.Query;
 2
 3namespace ArturRios.Heimdall.Query.Output;
 4
 5/// <summary>What the last detection run found (NFR-26).</summary>
 6public class SecuritySignalsOutput : QueryOutput
 7{
 8    /// <summary>When the run happened.</summary>
 9    public DateTime DetectedAt { get; set; }
 10
 11    /// <summary>How far back it looked.</summary>
 12    public TimeSpan Window { get; set; }
 13
 14    /// <summary>The signals worth telling somebody about. Empty on most runs.</summary>
 15    public IEnumerable<SecuritySignal> Signals { get; set; } = [];
 16}
 17
 18/// <summary>One thing worth telling somebody about.</summary>
 19public class SecuritySignal
 20{
 21    /// <summary>
 22    ///     A stable identifier for the kind of signal, so an alerting rule can match on it without
 23    ///     parsing prose.
 24    /// </summary>
 1225    public string Kind { get; set; } = string.Empty;
 26
 27    /// <summary>What was observed, in words.</summary>
 828    public string Description { get; set; } = string.Empty;
 29
 30    /// <summary>How many occurrences were counted.</summary>
 631    public int Count { get; set; }
 32
 33    /// <summary>
 34    ///     The identity involved, where the signal is about one; <c>null</c> where it is about a
 35    ///     population.
 36    /// </summary>
 437    public Guid? ActorId { get; set; }
 38}