Refactor code structure for improved readability and maintainability; optimize performance in key functions.

This commit is contained in:
master
2025-12-22 19:06:31 +02:00
parent dfaa2079aa
commit 4602ccc3a3
1444 changed files with 109919 additions and 8058 deletions

View File

@@ -0,0 +1,77 @@
namespace StellaOps.AuditPack.Tests;
using StellaOps.AuditPack.Models;
using StellaOps.AuditPack.Services;
[Trait("Category", "Unit")]
public class AuditPackBuilderTests
{
[Fact]
public async Task Build_FromScanResult_CreatesCompletePack()
{
// Arrange
var scanResult = new ScanResult("scan-123");
var builder = new AuditPackBuilder();
var options = new AuditPackOptions { Name = "test-pack" };
// Act
var pack = await builder.BuildAsync(scanResult, options);
// Assert
pack.Should().NotBeNull();
pack.PackId.Should().NotBeNullOrEmpty();
pack.Name.Should().Be("test-pack");
pack.RunManifest.Should().NotBeNull();
pack.Verdict.Should().NotBeNull();
pack.EvidenceIndex.Should().NotBeNull();
pack.PackDigest.Should().NotBeNullOrEmpty();
}
[Fact]
public async Task Export_CreatesValidArchive()
{
// Arrange
var scanResult = new ScanResult("scan-123");
var builder = new AuditPackBuilder();
var pack = await builder.BuildAsync(scanResult, new AuditPackOptions());
var outputPath = Path.Combine(Path.GetTempPath(), $"test-pack-{Guid.NewGuid():N}.tar.gz");
var exportOptions = new ExportOptions { Sign = false };
try
{
// Act
await builder.ExportAsync(pack, outputPath, exportOptions);
// Assert
File.Exists(outputPath).Should().BeTrue();
var fileInfo = new FileInfo(outputPath);
fileInfo.Length.Should().BeGreaterThan(0);
}
finally
{
if (File.Exists(outputPath))
File.Delete(outputPath);
}
}
[Fact]
public void PackDigest_IsComputedCorrectly()
{
// Arrange
var pack = new AuditPack
{
PackId = "test-pack",
Name = "Test Pack",
CreatedAt = new DateTimeOffset(2025, 1, 1, 0, 0, 0, TimeSpan.Zero),
RunManifest = new RunManifest("scan-1", DateTimeOffset.UtcNow),
EvidenceIndex = new EvidenceIndex([]),
Verdict = new Verdict("verdict-1", "pass"),
OfflineBundle = new BundleManifest("bundle-1", "1.0"),
Contents = new PackContents()
};
// Act - digest should be set during build
pack.PackDigest.Should().NotBeNull();
}
}