Add unit tests for SBOM ingestion and transformation
Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled

- Implement `SbomIngestServiceCollectionExtensionsTests` to verify the SBOM ingestion pipeline exports snapshots correctly.
- Create `SbomIngestTransformerTests` to ensure the transformation produces expected nodes and edges, including deduplication of license nodes and normalization of timestamps.
- Add `SbomSnapshotExporterTests` to test the export functionality for manifest, adjacency, nodes, and edges.
- Introduce `VexOverlayTransformerTests` to validate the transformation of VEX nodes and edges.
- Set up project file for the test project with necessary dependencies and configurations.
- Include JSON fixture files for testing purposes.
This commit is contained in:
master
2025-11-04 07:49:39 +02:00
parent f72c5c513a
commit 2eb6852d34
491 changed files with 39445 additions and 3917 deletions

View File

@@ -506,19 +506,23 @@ public static class SemVerRangeRuleBuilder
}
var candidate = RemoveLeadingV(trimmed);
if (SemanticVersion.TryParse(candidate, out var semanticVersion))
{
normalized = FormatVersion(semanticVersion);
return true;
}
if (trimmed.IndexOfAny(new[] { '*', 'x', 'X' }) >= 0)
{
return false;
}
normalized = candidate;
return true;
if (!SemanticVersion.TryParse(candidate, out var semanticVersion))
{
var expanded = ExpandSemanticVersion(candidate);
if (!SemanticVersion.TryParse(expanded, out semanticVersion))
{
if (trimmed.IndexOfAny(new[] { '*', 'x', 'X' }) >= 0)
{
return false;
}
normalized = candidate;
return true;
}
}
normalized = FormatVersion(semanticVersion);
return true;
}
private static bool TryParseSemanticVersion(string value, [NotNullWhen(true)] out SemanticVersion version, out string normalized)