stabilizaiton work - projects rework for maintenanceability and ui livening
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
using System.Text;
|
||||
using StellaOps.TestKit;
|
||||
using Xunit;
|
||||
|
||||
namespace StellaOps.Canonical.Json.Tests;
|
||||
|
||||
public partial class CanonVersionTests
|
||||
{
|
||||
[Trait("Category", TestCategories.Unit)]
|
||||
[Fact]
|
||||
public void CanonicalizeVersioned_IncludesVersionMarker()
|
||||
{
|
||||
var obj = new { foo = "bar" };
|
||||
var canonical = CanonJson.CanonicalizeVersioned(obj);
|
||||
var json = Encoding.UTF8.GetString(canonical);
|
||||
|
||||
Assert.StartsWith("{\"_canonVersion\":\"stella:canon:v1\"", json);
|
||||
Assert.Contains("\"foo\":\"bar\"", json);
|
||||
}
|
||||
|
||||
[Trait("Category", TestCategories.Unit)]
|
||||
[Fact]
|
||||
public void CanonicalizeVersioned_VersionMarkerIsFirst()
|
||||
{
|
||||
var obj = new { aaa = 1, zzz = 2 };
|
||||
var canonical = CanonJson.CanonicalizeVersioned(obj);
|
||||
var json = Encoding.UTF8.GetString(canonical);
|
||||
|
||||
var versionIndex = json.IndexOf("_canonVersion", StringComparison.Ordinal);
|
||||
var aaaIndex = json.IndexOf("aaa", StringComparison.Ordinal);
|
||||
Assert.True(versionIndex < aaaIndex);
|
||||
}
|
||||
|
||||
[Trait("Category", TestCategories.Unit)]
|
||||
[Fact]
|
||||
public void CanonicalizeVersioned_SortsOtherKeys()
|
||||
{
|
||||
var obj = new { z = 3, a = 1, m = 2 };
|
||||
var canonical = CanonJson.CanonicalizeVersioned(obj);
|
||||
var json = Encoding.UTF8.GetString(canonical);
|
||||
|
||||
Assert.Matches(@"\{""_canonVersion"":""[^""]+"",""a"":1,""m"":2,""z"":3\}", json);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user