39 lines
1.1 KiB
C#
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);
|
|
}
|
|
}
|