Decky/tests/Decky.Core.Tests/CardDtoSerializationTests.cs

39 lines
1.1 KiB
C#

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<CardDto>(
"""{"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<CardDto>(
"""{"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<CardDto>(
"""{"id":1,"stackId":2,"title":"Test","owner":{"primaryKey":"admin"}}""",
JsonOptions);
Assert.Equal("admin", card!.Owner);
}
}