Fix build and code structure improvements. New but essential UI functionality. CI improvements. Documentation improvements. AI module improvements.

This commit is contained in:
StellaOps Bot
2025-12-26 21:54:17 +02:00
parent 335ff7da16
commit c2b9cd8d1f
3717 changed files with 264714 additions and 48202 deletions

View File

@@ -1,5 +1,6 @@
using System.Text;
using System.Text.Json;
using StellaOps.TestKit;
using Xunit;
namespace StellaOps.Evidence.Core.Tests;
@@ -19,7 +20,7 @@ public class EvidenceRecordTests
#region ComputeEvidenceId
[Trait("Category", TestCategories.Unit)]
[Fact]
[Fact]
public void ComputeEvidenceId_ValidInputs_ReturnsSha256Prefixed()
{
var subjectId = "sha256:abc123";
@@ -36,7 +37,7 @@ public class EvidenceRecordTests
}
[Trait("Category", TestCategories.Unit)]
[Fact]
[Fact]
public void ComputeEvidenceId_SameInputs_ReturnsSameId()
{
var subjectId = "sha256:abc123";
@@ -49,7 +50,7 @@ public class EvidenceRecordTests
}
[Trait("Category", TestCategories.Unit)]
[Fact]
[Fact]
public void ComputeEvidenceId_DifferentSubjects_ReturnsDifferentIds()
{
var payload = Encoding.UTF8.GetBytes("""{"vulnerability":"CVE-2021-44228"}""");
@@ -61,7 +62,7 @@ public class EvidenceRecordTests
}
[Trait("Category", TestCategories.Unit)]
[Fact]
[Fact]
public void ComputeEvidenceId_DifferentTypes_ReturnsDifferentIds()
{
var subjectId = "sha256:abc123";
@@ -74,7 +75,7 @@ public class EvidenceRecordTests
}
[Trait("Category", TestCategories.Unit)]
[Fact]
[Fact]
public void ComputeEvidenceId_DifferentPayloads_ReturnsDifferentIds()
{
var subjectId = "sha256:abc123";
@@ -88,7 +89,7 @@ public class EvidenceRecordTests
}
[Trait("Category", TestCategories.Unit)]
[Fact]
[Fact]
public void ComputeEvidenceId_DifferentProvenance_ReturnsDifferentIds()
{
var subjectId = "sha256:abc123";
@@ -115,7 +116,7 @@ public class EvidenceRecordTests
}
[Trait("Category", TestCategories.Unit)]
[Fact]
[Fact]
public void ComputeEvidenceId_NullSubject_ThrowsArgumentException()
{
var payload = Encoding.UTF8.GetBytes("""{"data":"test"}""");
@@ -124,7 +125,7 @@ public class EvidenceRecordTests
}
[Trait("Category", TestCategories.Unit)]
[Fact]
[Fact]
public void ComputeEvidenceId_EmptySubject_ThrowsArgumentException()
{
var payload = Encoding.UTF8.GetBytes("""{"data":"test"}""");
@@ -133,7 +134,7 @@ public class EvidenceRecordTests
}
[Trait("Category", TestCategories.Unit)]
[Fact]
[Fact]
public void ComputeEvidenceId_NullProvenance_ThrowsArgumentNullException()
{
var payload = Encoding.UTF8.GetBytes("""{"data":"test"}""");
@@ -146,7 +147,7 @@ public class EvidenceRecordTests
#region Create Factory Method
[Trait("Category", TestCategories.Unit)]
[Fact]
[Fact]
public void Create_ValidInputs_ReturnsRecordWithComputedId()
{
var subjectId = "sha256:abc123";
@@ -169,7 +170,7 @@ public class EvidenceRecordTests
}
[Trait("Category", TestCategories.Unit)]
[Fact]
[Fact]
public void Create_WithSignatures_IncludesSignatures()
{
var subjectId = "sha256:abc123";
@@ -196,7 +197,7 @@ public class EvidenceRecordTests
}
[Trait("Category", TestCategories.Unit)]
[Fact]
[Fact]
public void Create_WithExternalCid_IncludesCid()
{
var subjectId = "sha256:abc123";
@@ -210,7 +211,6 @@ public class EvidenceRecordTests
"reachability/v1",
externalPayloadCid: "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi");
using StellaOps.TestKit;
Assert.Equal("bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi", record.ExternalPayloadCid);
}
@@ -219,7 +219,7 @@ using StellaOps.TestKit;
#region VerifyIntegrity
[Trait("Category", TestCategories.Unit)]
[Fact]
[Fact]
public void VerifyIntegrity_ValidRecord_ReturnsTrue()
{
var record = EvidenceRecord.Create(
@@ -233,7 +233,7 @@ using StellaOps.TestKit;
}
[Trait("Category", TestCategories.Unit)]
[Fact]
[Fact]
public void VerifyIntegrity_TamperedPayload_ReturnsFalse()
{
var originalPayload = Encoding.UTF8.GetBytes("""{"vulnerability":"CVE-2021-44228"}""");
@@ -253,7 +253,7 @@ using StellaOps.TestKit;
}
[Trait("Category", TestCategories.Unit)]
[Fact]
[Fact]
public void VerifyIntegrity_TamperedSubject_ReturnsFalse()
{
var record = EvidenceRecord.Create(
@@ -273,7 +273,7 @@ using StellaOps.TestKit;
#region Determinism
[Trait("Category", TestCategories.Unit)]
[Fact]
[Fact]
public void Create_SameInputs_ProducesSameEvidenceId()
{
var subjectId = "sha256:abc123";
@@ -289,7 +289,7 @@ using StellaOps.TestKit;
}
[Trait("Category", TestCategories.Unit)]
[Fact]
[Fact]
public void ComputeEvidenceId_EmptyPayload_Works()
{
var id = EvidenceRecord.ComputeEvidenceId(

View File

@@ -9,21 +9,8 @@
<RootNamespace>StellaOps.Evidence.Core.Tests</RootNamespace>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageReference Include="xunit" Version="2.9.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.0.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="6.0.2">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\StellaOps.Evidence.Core\StellaOps.Evidence.Core.csproj" />
<ProjectReference Include="../StellaOps.TestKit/StellaOps.TestKit.csproj" />
</ItemGroup>
</Project>
</Project>