// // Copyright (c) PlaceholderCompany. All rights reserved. // namespace Jellyfin.Extensions.Tests.Json.Converters { using System; using System.Text.Json; using Jellyfin.Extensions.Json.Converters; using Xunit; public class JsonNullableGuidConverterTests { private readonly JsonSerializerOptions _options; public JsonNullableGuidConverterTests() { this._options = new JsonSerializerOptions(); this._options.Converters.Add(new JsonNullableGuidConverter()); } [Fact] public void Deserialize_Valid_Success() { Guid? value = JsonSerializer.Deserialize(@"""a852a27afe324084ae66db579ee3ee18""", this._options); Assert.Equal(new("a852a27afe324084ae66db579ee3ee18"), value); } [Fact] public void Deserialize_ValidDashed_Success() { Guid? value = JsonSerializer.Deserialize(@"""e9b2dcaa-529c-426e-9433-5e9981f27f2e""", this._options); Assert.Equal(new("e9b2dcaa-529c-426e-9433-5e9981f27f2e"), value); } [Fact] public void Roundtrip_Valid_Success() { Guid guid = new("a852a27afe324084ae66db579ee3ee18"); string value = JsonSerializer.Serialize(guid, this._options); Assert.Equal(guid, JsonSerializer.Deserialize(value, this._options)); } [Fact] public void Deserialize_Null_Null() { Assert.Null(JsonSerializer.Deserialize("null", this._options)); } [Fact] public void Deserialize_EmptyGuid_EmptyGuid() { Assert.Equal(Guid.Empty, JsonSerializer.Deserialize(@"""00000000-0000-0000-0000-000000000000""", this._options)); } [Fact] public void Serialize_EmptyGuid_Null() { Assert.Equal("null", JsonSerializer.Serialize((Guid?)Guid.Empty, this._options)); } [Fact] public void Serialize_Null_Null() { Assert.Equal("null", JsonSerializer.Serialize((Guid?)null, this._options)); } [Fact] public void Serialize_Valid_NoDash_Success() { Guid? guid = new("531797E9-9457-40E0-88BC-B1D6D38752FA"); string str = JsonSerializer.Serialize(guid, this._options); Assert.Equal($"\"{guid:N}\"", str); } [Fact] public void Serialize_Nullable_Success() { Guid? guid = new("531797E9-9457-40E0-88BC-B1D6D38752FA"); string str = JsonSerializer.Serialize(guid, this._options); Assert.Equal($"\"{guid:N}\"", str); } } }