Add unit tests for PhpFrameworkSurface and PhpPharScanner
Some checks failed
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled
Scanner Analyzers / Discover Analyzers (push) Has been cancelled
Scanner Analyzers / Build Analyzers (push) Has been cancelled
Scanner Analyzers / Test Language Analyzers (push) Has been cancelled
Scanner Analyzers / Validate Test Fixtures (push) Has been cancelled
Scanner Analyzers / Verify Deterministic Output (push) Has been cancelled
Findings Ledger CI / build-test (push) Has been cancelled
Findings Ledger CI / migration-validation (push) Has been cancelled
Manifest Integrity / Validate Schema Integrity (push) Has been cancelled
Manifest Integrity / Validate Contract Documents (push) Has been cancelled
Manifest Integrity / Validate Pack Fixtures (push) Has been cancelled
Manifest Integrity / Audit SHA256SUMS Files (push) Has been cancelled
Manifest Integrity / Verify Merkle Roots (push) Has been cancelled
Findings Ledger CI / generate-manifest (push) Has been cancelled
Some checks failed
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled
Scanner Analyzers / Discover Analyzers (push) Has been cancelled
Scanner Analyzers / Build Analyzers (push) Has been cancelled
Scanner Analyzers / Test Language Analyzers (push) Has been cancelled
Scanner Analyzers / Validate Test Fixtures (push) Has been cancelled
Scanner Analyzers / Verify Deterministic Output (push) Has been cancelled
Findings Ledger CI / build-test (push) Has been cancelled
Findings Ledger CI / migration-validation (push) Has been cancelled
Manifest Integrity / Validate Schema Integrity (push) Has been cancelled
Manifest Integrity / Validate Contract Documents (push) Has been cancelled
Manifest Integrity / Validate Pack Fixtures (push) Has been cancelled
Manifest Integrity / Audit SHA256SUMS Files (push) Has been cancelled
Manifest Integrity / Verify Merkle Roots (push) Has been cancelled
Findings Ledger CI / generate-manifest (push) Has been cancelled
- Implement comprehensive tests for PhpFrameworkSurface, covering scenarios such as empty surfaces, presence of routes, controllers, middlewares, CLI commands, cron jobs, and event listeners. - Validate metadata creation for route counts, HTTP methods, protected and public routes, and route patterns. - Introduce tests for PhpPharScanner, including handling of non-existent files, null or empty paths, invalid PHAR files, and minimal PHAR structures. - Ensure correct computation of SHA256 for valid PHAR files and validate the properties of PhpPharArchive, PhpPharEntry, and PhpPharScanResult.
This commit is contained in:
@@ -17,6 +17,12 @@ internal static class LedgerTimeline
|
||||
private static readonly EventId AirgapImport = new(6401, "ledger.airgap.imported");
|
||||
private static readonly EventId EvidenceSnapshotLinkedEvent = new(6501, "ledger.evidence.snapshot_linked");
|
||||
private static readonly EventId AirgapTimelineImpactEvent = new(6601, "ledger.airgap.timeline_impact");
|
||||
private static readonly EventId AttestationPointerLinkedEvent = new(6701, "ledger.attestation.pointer_linked");
|
||||
private static readonly EventId SnapshotCreatedEvent = new(6801, "ledger.snapshot.created");
|
||||
private static readonly EventId SnapshotDeletedEvent = new(6802, "ledger.snapshot.deleted");
|
||||
private static readonly EventId TimeTravelQueryEvent = new(6803, "ledger.timetravel.query");
|
||||
private static readonly EventId ReplayCompletedEvent = new(6804, "ledger.replay.completed");
|
||||
private static readonly EventId DiffComputedEvent = new(6805, "ledger.diff.computed");
|
||||
|
||||
public static void EmitLedgerAppended(ILogger logger, LedgerEventRecord record, string? evidenceBundleRef = null)
|
||||
{
|
||||
@@ -144,4 +150,134 @@ internal static class LedgerTimeline
|
||||
timeAnchor.ToString("O"),
|
||||
sealedMode);
|
||||
}
|
||||
|
||||
public static void EmitAttestationPointerLinked(
|
||||
ILogger logger,
|
||||
string tenantId,
|
||||
string findingId,
|
||||
Guid pointerId,
|
||||
string attestationType,
|
||||
string digest)
|
||||
{
|
||||
if (logger is null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
logger.LogInformation(
|
||||
AttestationPointerLinkedEvent,
|
||||
"timeline ledger.attestation.pointer_linked tenant={Tenant} finding={FindingId} pointer={PointerId} attestation_type={AttestationType} digest={Digest}",
|
||||
tenantId,
|
||||
findingId,
|
||||
pointerId,
|
||||
attestationType,
|
||||
digest);
|
||||
}
|
||||
|
||||
public static void EmitSnapshotCreated(
|
||||
ILogger logger,
|
||||
string tenantId,
|
||||
Guid snapshotId,
|
||||
long sequenceNumber,
|
||||
long findingsCount)
|
||||
{
|
||||
if (logger is null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
logger.LogInformation(
|
||||
SnapshotCreatedEvent,
|
||||
"timeline ledger.snapshot.created tenant={Tenant} snapshot={SnapshotId} sequence={SequenceNumber} findings_count={FindingsCount}",
|
||||
tenantId,
|
||||
snapshotId,
|
||||
sequenceNumber,
|
||||
findingsCount);
|
||||
}
|
||||
|
||||
public static void EmitSnapshotDeleted(
|
||||
ILogger logger,
|
||||
string tenantId,
|
||||
Guid snapshotId)
|
||||
{
|
||||
if (logger is null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
logger.LogInformation(
|
||||
SnapshotDeletedEvent,
|
||||
"timeline ledger.snapshot.deleted tenant={Tenant} snapshot={SnapshotId}",
|
||||
tenantId,
|
||||
snapshotId);
|
||||
}
|
||||
|
||||
public static void EmitTimeTravelQuery(
|
||||
ILogger logger,
|
||||
string tenantId,
|
||||
string entityType,
|
||||
long atSequence,
|
||||
int resultCount)
|
||||
{
|
||||
if (logger is null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
logger.LogInformation(
|
||||
TimeTravelQueryEvent,
|
||||
"timeline ledger.timetravel.query tenant={Tenant} entity_type={EntityType} at_sequence={AtSequence} result_count={ResultCount}",
|
||||
tenantId,
|
||||
entityType,
|
||||
atSequence,
|
||||
resultCount);
|
||||
}
|
||||
|
||||
public static void EmitReplayCompleted(
|
||||
ILogger logger,
|
||||
string tenantId,
|
||||
long fromSequence,
|
||||
long toSequence,
|
||||
int eventsCount,
|
||||
long durationMs)
|
||||
{
|
||||
if (logger is null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
logger.LogInformation(
|
||||
ReplayCompletedEvent,
|
||||
"timeline ledger.replay.completed tenant={Tenant} from_sequence={FromSequence} to_sequence={ToSequence} events_count={EventsCount} duration_ms={DurationMs}",
|
||||
tenantId,
|
||||
fromSequence,
|
||||
toSequence,
|
||||
eventsCount,
|
||||
durationMs);
|
||||
}
|
||||
|
||||
public static void EmitDiffComputed(
|
||||
ILogger logger,
|
||||
string tenantId,
|
||||
long fromSequence,
|
||||
long toSequence,
|
||||
int added,
|
||||
int modified,
|
||||
int removed)
|
||||
{
|
||||
if (logger is null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
logger.LogInformation(
|
||||
DiffComputedEvent,
|
||||
"timeline ledger.diff.computed tenant={Tenant} from_sequence={FromSequence} to_sequence={ToSequence} added={Added} modified={Modified} removed={Removed}",
|
||||
tenantId,
|
||||
fromSequence,
|
||||
toSequence,
|
||||
added,
|
||||
modified,
|
||||
removed);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user