36 lines
1.2 KiB
C#
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");
|
|
}
|
|
}
|