Files
git.stella-ops.org/src/__Libraries/__Tests/StellaOps.Testing.Determinism.Tests/DeterminismManifestTests.Canonicalization.cs

36 lines
1.2 KiB
C#

using FluentAssertions;
using StellaOps.TestKit;
using StellaOps.Testing.Determinism;
using Xunit;
namespace StellaOps.Testing.Determinism.Tests;
public sealed partial class DeterminismManifestTests
{
[Trait("Category", TestCategories.Unit)]
[Fact]
public void ToCanonicalBytes_WithValidManifest_ProducesDeterministicOutput()
{
var manifest = CreateSampleManifest();
var bytes1 = DeterminismManifestWriter.ToCanonicalBytes(manifest);
var bytes2 = DeterminismManifestWriter.ToCanonicalBytes(manifest);
bytes1.Should().Equal(bytes2, "Same manifest should produce identical canonical bytes");
}
[Trait("Category", TestCategories.Unit)]
[Fact]
public void ToCanonicalString_WithValidManifest_ProducesDeterministicString()
{
var manifest = CreateSampleManifest();
var json1 = DeterminismManifestWriter.ToCanonicalString(manifest);
var json2 = DeterminismManifestWriter.ToCanonicalString(manifest);
json1.Should().Be(json2, "Same manifest should produce identical canonical JSON string");
json1.Should().NotContain("\n", "Canonical JSON should have no newlines");
json1.Should().NotContain(" ", "Canonical JSON should have no indentation");
}
}