public void GivenDataBlock_WhenSerialized_ShouldRoundTrip() { var block1 = new DataBlock <TextBlock>(DateTime.Now, "blockTypeV1", "blockIdV1", new TextBlock("name", "type", "author", "dataV1")); DataBlockModel <TextBlockModel> dataBlockModel = block1.ConvertTo <TextBlock, TextBlockModel>(); string json = JsonSerializer.Serialize(dataBlockModel); json.Should().NotBeNullOrWhiteSpace(); DataBlockModel <TextBlockModel> resultModel = JsonSerializer.Deserialize <DataBlockModel <TextBlockModel> >(json); resultModel.Should().NotBeNull(); DataBlock <TextBlock> result = resultModel.ConvertTo <TextBlockModel, TextBlock>(); result.Should().NotBeNull(); block1.TimeStamp.Should().Be(result.TimeStamp); block1.BlockType.Should().Be(result.BlockType); block1.BlockId.Should().Be(result.BlockId); (block1.Data == result.Data).Should().BeTrue(); }