コード例 #1
0
        public void GivenCustomSerializers_AndCustomObjectsArePresent()
        {
            var json   = File.ReadAllText("../../../data/customobjects.json");
            var result = BlockContentToHtml.Render(json, new PortableTextSerializers
            {
                TypeSerializers = new Dictionary <string, TypeSerializer>
                {
                    {
                        "youtubeEmbed", new TypeSerializer
                        {
                            Type      = typeof(YoutubeEmbed),
                            Serialize = (block, serializers) =>
                            {
                                var typedBlock = block as YoutubeEmbed;
                                if (typedBlock == null)
                                {
                                    return(string.Empty);
                                }

                                return($@"<iframe title=""{typedBlock.Title}"" href=""{typedBlock.Url}""></iframe>");
                            }
                        }
                    }
                }
            });

            result.Should().Be(@"<iframe title=""Top 10 goals Jon Dahl Tomasson"" href=""https://youtu.be/8d9vXiGrYck""></iframe>");
        }
コード例 #2
0
        public void GivenNoCustomSerializers_AndCustomObjectsArePresent_ShouldNotCrash()
        {
            var json   = File.ReadAllText("../../../data/customobjects.json");
            var result = BlockContentToHtml.Render(json);

            result.Should().Be(null);
        }
コード例 #3
0
        public void HandlesLinks()
        {
            var json   = File.ReadAllText("../../../data/links.json");
            var result = BlockContentToHtml.Render(json);

            result.Should().Be(@"<p><strong>Spotify -> </strong><strong><a href=""https://open.spotify.com/episode/2ON1aZSJvYieU8Pewz7yUH?si=KARaXtuaQDaOkeyxs0f7OQ"">Lytt her!</a></strong></p>");
        }
コード例 #4
0
        public void HandlesSimpleJson()
        {
            var json   = File.ReadAllText("../../../data/simple.json");
            var result = BlockContentToHtml.Render(json);

            result.Should().Be("<p>Jeg er <strong>kul</strong>!</p>");
        }
コード例 #5
0
        public void GivenOneSimpleArrayElementOfTypeBlock()
        {
            var result = BlockContentToHtml.Render(@"
[
    {
        ""_type"": ""block"",
        ""children"": [
            {
                ""_type"": ""span"",
                ""text"": ""test""
            }
        ],
        ""style"": ""normal""
    }
]
");

            result.Should().Be("<p>test</p>");
        }
コード例 #6
0
        public void ConvertsSlashNToBr()
        {
            var result = BlockContentToHtml.Render(@"
[
    {
        ""_type"": ""block"",
        ""children"": [
            {
                ""_type"": ""span"",
                ""text"": ""test\ntest2""
            }
        ],
        ""style"": ""normal""
    }
]
");

            result.Should().Be("<p>test<br>test2</p>");
        }
コード例 #7
0
 public string HugeJson() => BlockContentToHtml.Render(json);
コード例 #8
0
        public void HandlesJsonArrayWithEmptyObject()
        {
            var result = BlockContentToHtml.Render("[{}]");

            result.Should().Be(null);
        }
コード例 #9
0
        public void HandlesEmptyJsonArray()
        {
            var result = BlockContentToHtml.Render("[]");

            result.Should().Be(null);
        }
コード例 #10
0
        public void AcceptsEmptyJson()
        {
            var result = BlockContentToHtml.Render(string.Empty);

            result.Should().BeNull();
        }
コード例 #11
0
        public void HandlesNull()
        {
            var result = BlockContentToHtml.Render(null);

            result.Should().BeNull();
        }
コード例 #12
0
        public void MassiveTest()
        {
            var result = BlockContentToHtml.Render(File.ReadAllText("../../../data/bigcontent.json"));

            Snapshot.Match(result);
        }