Files
git.stella-ops.org/src/Graph/__Tests/StellaOps.Graph.Api.Tests/LineageServiceTests.cs

34 lines
1.2 KiB
C#

using System.Threading;
using System.Threading.Tasks;
using StellaOps.Graph.Api.Contracts;
using StellaOps.Graph.Api.Services;
using Xunit;
using StellaOps.TestKit;
namespace StellaOps.Graph.Api.Tests;
public sealed class LineageServiceTests
{
[Trait("Category", TestCategories.Unit)]
[Fact]
public async Task GetLineageAsync_ReturnsSbomAndArtifactChain()
{
var repository = new InMemoryGraphRepository();
var service = new InMemoryGraphLineageService(repository);
var request = new GraphLineageRequest
{
SbomDigest = "sha256:sbom-b",
MaxDepth = 3
};
var response = await service.GetLineageAsync("acme", request, CancellationToken.None);
Assert.Contains(response.Nodes, node => node.Id == "gn:acme:sbom:sha256:sbom-b");
Assert.Contains(response.Nodes, node => node.Id == "gn:acme:sbom:sha256:sbom-a");
Assert.Contains(response.Nodes, node => node.Id == "gn:acme:artifact:sha256:abc");
Assert.Contains(response.Edges, edge => edge.Kind == "SBOM_LINEAGE_PARENT");
Assert.Contains(response.Edges, edge => edge.Kind == "SBOM_VERSION_OF");
}
}