Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
- Created project for StellaOps.Scanner.Analyzers.Native.Tests with necessary dependencies. - Documented roles and guidelines in AGENTS.md for Scheduler module. - Implemented IResolverJobService interface and InMemoryResolverJobService for handling resolver jobs. - Added ResolverBacklogNotifier and ResolverBacklogService for monitoring job metrics. - Developed API endpoints for managing resolver jobs and retrieving metrics. - Defined models for resolver job requests and responses. - Integrated dependency injection for resolver job services. - Implemented ImpactIndexSnapshot for persisting impact index data. - Introduced SignalsScoringOptions for configurable scoring weights in reachability scoring. - Added unit tests for ReachabilityScoringService and RuntimeFactsIngestionService. - Created dotnet-filter.sh script to handle command-line arguments for dotnet. - Established nuget-prime project for managing package downloads.
55 lines
1.8 KiB
C#
55 lines
1.8 KiB
C#
using System.Text.Json.Nodes;
|
|
using FluentAssertions;
|
|
using StellaOps.Findings.Ledger.Domain;
|
|
using StellaOps.Findings.Ledger.Infrastructure.InMemory;
|
|
using Xunit;
|
|
|
|
namespace StellaOps.Findings.Ledger.Tests.Infrastructure;
|
|
|
|
public class InMemoryLedgerEventRepositoryTests
|
|
{
|
|
[Fact]
|
|
public async Task GetEvidenceReferencesAsync_returns_only_events_with_refs()
|
|
{
|
|
var repo = new InMemoryLedgerEventRepository();
|
|
var tenant = "tenant-1";
|
|
var findingId = "finding-123";
|
|
|
|
var withEvidence = CreateRecord(tenant, findingId, sequence: 1, evidenceRef: "bundle-1");
|
|
var withoutEvidence = CreateRecord(tenant, findingId, sequence: 2, evidenceRef: null);
|
|
await repo.AppendAsync(withEvidence, CancellationToken.None);
|
|
await repo.AppendAsync(withoutEvidence, CancellationToken.None);
|
|
|
|
var results = await repo.GetEvidenceReferencesAsync(tenant, findingId, CancellationToken.None);
|
|
|
|
results.Should().HaveCount(1);
|
|
results[0].EvidenceBundleRef.Should().Be("bundle-1");
|
|
results[0].EventId.Should().Be(withEvidence.EventId);
|
|
}
|
|
|
|
private static LedgerEventRecord CreateRecord(string tenant, string findingId, long sequence, string? evidenceRef)
|
|
{
|
|
var body = new JsonObject { ["status"] = "affected" };
|
|
return new LedgerEventRecord(
|
|
tenant,
|
|
Guid.NewGuid(),
|
|
sequence,
|
|
Guid.NewGuid(),
|
|
"finding.status.changed",
|
|
"policy-v1",
|
|
findingId,
|
|
"artifact-1",
|
|
null,
|
|
"actor-1",
|
|
"operator",
|
|
DateTimeOffset.UtcNow,
|
|
DateTimeOffset.UtcNow,
|
|
body,
|
|
"hash-event",
|
|
"hash-prev",
|
|
"hash-leaf",
|
|
"canon",
|
|
evidenceRef);
|
|
}
|
|
}
|