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);
}
}