using System.Text.Json; using OpenNest.Data; namespace OpenNest.Tests.Data; /// /// Library settings carry priority (higher first) as nestPriority and keep the /// lower-first legacy value under priority, which older clients read and send. /// public class DrawingNestingSettingsPriorityTests { private static readonly JsonSerializerOptions Web = new(JsonSerializerDefaults.Web); [Fact] public void WritesTheLegacyValueBeforeTheNewOne() { var json = JsonSerializer.Serialize(new DrawingNestingSettings { Priority = 4 }, Web); Assert.Contains("\"priority\":-4,\"nestPriority\":4", json); } [Fact] public void ReadsAnOlderClientsLegacyValue() { var settings = JsonSerializer.Deserialize("""{"cutFirst":true,"priority":2}""", Web)!; Assert.Equal(-2, settings.Priority); } [Fact] public void RoundTripsAndStaysEqual() { var settings = new DrawingNestingSettings { Priority = 7, CutFirst = true }; var back = JsonSerializer.Deserialize(JsonSerializer.Serialize(settings, Web), Web); Assert.Equal(settings, back); } }