public void EscapeHtml_IsCorrect(string input, string expected, string uid)
        {
            var parser = BBCodeTestUtil.GetCustomParser();

            var(bbCode, _, _) = parser.TransformForBackwardsCompatibility(input, uid);
            Assert.Equal(expected, bbCode);
        }
        public void WhenComplexFormatting_URL_IsCorrect()
        {
            var text   = "[url=https://google.com]simple formatting[/url]";
            var parser = BBCodeTestUtil.GetCustomParser();

            var(bbCode, uid, _) = parser.TransformForBackwardsCompatibility(text);
            Assert.Equal($"[url=https://google.com:{uid}]simple formatting[/url:{uid}]", bbCode);
        }
        public void CarriageReturns_AreRemoved()
        {
            var parser = BBCodeTestUtil.GetCustomParser();

            var(bbCode, uid, _) = parser.TransformForBackwardsCompatibility("[url=\"https://google.com\"]\r\n[b]a link[/b]\r\n[/url]");
            Assert.Equal($"[url="https://google.com":{uid}]\n[b:{uid}]a link[/b:{uid}]\n[/url:{uid}]", bbCode);
            Assert.NotNull(uid);
            Assert.NotEmpty(uid);
        }
        public void InlineAttachment_IsCorrect()
        {
            var parser = BBCodeTestUtil.GetCustomParser();

            var(bbCode, uid, _) = parser.TransformForBackwardsCompatibility("[attachment=7]01.PNG[/attachment]");
            Assert.Equal($"[attachment=7:{uid}]<!-- ia7 -->01.PNG<!-- ia7 -->[/attachment:{uid}]", bbCode);
            Assert.NotNull(uid);
            Assert.NotEmpty(uid);
        }
        public void WhenWrongFormatting_Typo_IsCorrect(string text)
        {
            var parser = BBCodeTestUtil.GetCustomParser();

            var(bbCode, uid, _) = parser.TransformForBackwardsCompatibility(text);
            Assert.Equal(text, bbCode);
            Assert.NotNull(uid);
            Assert.Empty(uid);
        }
        public void WhenWrongFormatting_Nesting_IsCorrect()
        {
            var text   = "[b]simple [i]formatting[/b][/i]";
            var parser = BBCodeTestUtil.GetCustomParser();

            var(bbCode, uid, _) = parser.TransformForBackwardsCompatibility(text);
            Assert.Equal(text, bbCode);
            Assert.NotNull(uid);
            Assert.Empty(uid);
        }
        public void WhenComplexFormatting_OL_IsCorrect()
        {
            var text =
                @"[list=1]
    [*]item1
    [*]item2
[/list]";
            var parser = BBCodeTestUtil.GetCustomParser();

            var(bbCode, uid, _) = parser.TransformForBackwardsCompatibility(text);
            Assert.Equal(
                $@"[list=1:{uid}]
    [*:{uid}]item1[/*:m:{uid}]
    [*:{uid}]item2[/*:m:{uid}]
[/list:o:{uid}]".Replace("\r", "")
                , bbCode);
        }
        public void WhenComplexFormatting_UL_Test2_IsCorrect()
        {
            var text =
                @"[url=https://google.com]some url right here[/url][list]
    [*][b]item1[/b]
    [*]item2
    [*]item3
    [*][b][i]item3[/i] is not[/b] over yet
    [*]item4
[/list]";
            var parser = BBCodeTestUtil.GetCustomParser();

            var(bbCode, uid, _) = parser.TransformForBackwardsCompatibility(text);
            Assert.Equal(
                $@"[url=https://google.com:{uid}]some url right here[/url:{uid}][list:{uid}]
    [*:{uid}][b:{uid}]item1[/b:{uid}][/*:m:{uid}]
    [*:{uid}]item2[/*:m:{uid}]
    [*:{uid}]item3[/*:m:{uid}]
    [*:{uid}][b:{uid}][i:{uid}]item3[/i:{uid}] is not[/b:{uid}] over yet[/*:m:{uid}]
    [*:{uid}]item4[/*:m:{uid}]
[/list:u:{uid}]".Replace("\r", "")
                , bbCode);
        }