using System.Text.Json; using Decky.Core.Api.Models; namespace Decky.Core.Tests; public sealed class CardDtoSerializationTests { private static readonly JsonSerializerOptions JsonOptions = new(JsonSerializerDefaults.Web); [Fact] public void Card_owner_accepts_documented_string_shape() { var card = JsonSerializer.Deserialize( """{"id":1,"stackId":2,"title":"Test","owner":"admin"}""", JsonOptions); Assert.Equal("admin", card!.Owner); } [Fact] public void Card_owner_accepts_embedded_user_object_shape() { var card = JsonSerializer.Deserialize( """{"id":1,"stackId":2,"title":"Test","owner":{"primaryKey":"admin","uid":"admin","displayname":"Elijah"}}""", JsonOptions); Assert.Equal("admin", card!.Owner); } [Fact] public void Card_owner_falls_back_to_primary_key() { var card = JsonSerializer.Deserialize( """{"id":1,"stackId":2,"title":"Test","owner":{"primaryKey":"admin"}}""", JsonOptions); Assert.Equal("admin", card!.Owner); } }