Newer
Older
eShopOnWeb-VerticalFeatureSlices / tests / UnitTests / ApplicationCore / Extensions / JsonExtensions.cs
@Derek Comartin Derek Comartin on 27 Jul 2021 1 KB Init
using Xunit;

namespace Microsoft.eShopWeb.UnitTests.ApplicationCore.Extensions
{
    public class JsonExtensions
    {
        [Fact]
        public void CorrectlySerializesAndDeserializesObject()
        {
            var testParent = new TestParent
            {
                Id = 7,
                Name = "Test name",
                Children = new[]
                {
                    new TestChild(),
                    new TestChild(),
                    new TestChild()
                }
            };

            var json = testParent.ToJson();
            var result = json.FromJson<TestParent>();
            Assert.Equal(testParent, result);
        }

        [
            Theory,
            InlineData("{ \"id\": 9, \"name\": \"Another test\" }", 9, "Another test"),
            InlineData("{ \"id\": 3124, \"name\": \"Test Value 1\" }", 3124, "Test Value 1"),
        ]
        public void CorrectlyDeserializesJson(string json, int expectedId, string expectedName) =>
            Assert.Equal(new TestParent { Id = expectedId, Name = expectedName }, json.FromJson<TestParent>());

    }
}