26 lines
705 B
C#
26 lines
705 B
C#
using Newtonsoft.Json;
|
|
using Shogi.Contracts.Api;
|
|
using Shogi.Contracts.Types;
|
|
using System;
|
|
|
|
namespace UnitTests.ServiceModels;
|
|
|
|
public class ServiceModelsShouldSerialize
|
|
{
|
|
[Fact]
|
|
public void ServiceModelsSerializeAndDeserialize()
|
|
{
|
|
using var scope = new AssertionScope();
|
|
AssertTypeDeserializes(new CreateGuestTokenResponse("MyId", "MyDisplayName", Guid.NewGuid()));
|
|
AssertTypeDeserializes(new SessionMetadata { Name = "MyName", PlayerCount = 5 });
|
|
}
|
|
|
|
private static void AssertTypeDeserializes<T>(T t) where T : class
|
|
{
|
|
var serialized = JsonConvert.SerializeObject(t);
|
|
var deserialized = JsonConvert.DeserializeObject<T>(serialized);
|
|
|
|
deserialized.Should().BeEquivalentTo(t);
|
|
}
|
|
}
|