using System.Text.Json; using FrameProcessor.Domain; namespace FrameProcessor.Tests; public class OrientationTests { [Theory] [InlineData("\"landscape\"", Orientation.Landscape)] [InlineData("\"portrait\"", Orientation.Portrait)] public void JsonDeserialize_KebabCaseLowercase(string json, Orientation expected) { var value = JsonSerializer.Deserialize(json); Assert.Equal(expected, value); } [Theory] [InlineData(Orientation.Landscape, "\"landscape\"")] [InlineData(Orientation.Portrait, "\"portrait\"")] public void JsonSerialize_KebabCaseLowercase(Orientation value, string expected) { var json = JsonSerializer.Serialize(value); Assert.Equal(expected, json); } [Theory] [InlineData("\"Landscape\"")] [InlineData("\"PORTRAIT\"")] [InlineData("\"diagonal\"")] [InlineData("\"\"")] public void JsonDeserialize_RejectsInvalid(string json) { Assert.Throws(() => JsonSerializer.Deserialize(json)); } [Fact] public void JsonRoundTrip_PreservesValue() { foreach (var value in new[] { Orientation.Landscape, Orientation.Portrait }) { var json = JsonSerializer.Serialize(value); var roundTripped = JsonSerializer.Deserialize(json); Assert.Equal(value, roundTripped); } } }