using System;
using System.Text.Json;
using NUnit.Framework;
// ...
public class TestEntity
{
[JsonPropertyName("datetime")]
public DateTime MyDateTime { get; set; }
}
// ...
[TestFixture]
public class UnixEpochTimeToDateTimeJsonConverterTests
{
private const string Json = "{\"datetime\":1641974376}";
private JsonSerializerOptions _options;
[SetUp]
public void SetUp()
{
var sut = new UnixEpochTimeToDateTimeJsonConverter();
_options = new JsonSerializerOptions();
_options.Converters.Add(sut);
}
[Test]
public void WhenRead_ThenSetDateTime()
{
var result = JsonSerializer.Deserialize<TestEntity>(Json, _options);
Assert.That(result.MyDateTime, Is.EqualTo(new DateTime(2022, 1, 12, 7, 59, 36)));
Assert.That(result.MyDateTime.Kind, Is.EqualTo(DateTimeKind.Utc));
}
[Test]
public void WhenWrite_ThenWriteJsonUnixEpoch()
{
var entity = new TestEntity
{
MyDateTime = new DateTime(2022, 1, 12, 7, 59, 36, DateTimeKind.Utc)
};
var result = JsonSerializer.Serialize(entity, _options);
Assert.That(result, Is.EqualTo(Json));
}
}
Last active
August 29, 2021 01:32
Star
You must be signed in to star a gist
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment