public void MarkupManipulator_Replace_Et_link()
        {
            string input = "borrowed from New Latin {it}allīterātiōn-, allīterātiō,{/it} from Latin {it}ad-{/it} {et_link|ad-|ad-} + {it}lītera{/it} \"letter\" + {it}-ātiōn-, -ātiō{/it} {et_link|-ation|-ation} {ma}{mat|letter:1|}{/ma}";

            // ACT
            var output = MarkupManipulator.ReplaceMarkupInString(input);

            output.ShouldContain("mw-et-link");
        }
        public void MarkupManipulator_Replace_Bc()
        {
            string input = "This is{bc} some text";

            // ACT
            var output = MarkupManipulator.ReplaceMarkupInString(input);

            // ASSERT
            output.ShouldBe("This is<b class=\"mw-bc\">:</b> some text");
        }
        public void MarkupManipulator_Replace_It()
        {
            string input = "This is {it}some{/it} text";

            // ACT
            var output = MarkupManipulator.ReplaceMarkupInString(input);

            // ASSERT
            output.ShouldBe("This is <i class=\"mw-it\">some</i> text");
        }
        public void MarkupManipulator_Replace_Sc()
        {
            string input    = "{sc}agree{/sc} {sc}concur{/sc} {sc}coincide{/sc} mean to come into or be in harmony regarding a matter of opinion.";
            string expected = "<span class=\"mw-sc\" style=\"font-variant: small-caps\">agree</span> <span class=\"mw-sc\" style=\"font-variant: small-caps\">concur</span> <span class=\"mw-sc\" style=\"font-variant: small-caps\">coincide</span> mean to come into or be in harmony regarding a matter of opinion.";

            var output = MarkupManipulator.ReplaceMarkupInString(input);

            // ASSERT
            output.ShouldBe(expected);
        }
        public void MarkupManipulator_Replace_Inf_Sup()
        {
            string input    = "an ion NH{inf}4{/inf}{sup}+{/sup} derived from {a_link|ammonia} by combination with a hydrogen ion and ...";
            string expected = "an ion NH<sub class=\"mw-inf\">4</sub><sup class=\"mw-sup\">+</sup> derived from <i class=\"mw-link mw-auto-link\">ammonia</i> by combination with a hydrogen ion and ...";

            var output = MarkupManipulator.ReplaceMarkupInString(input);

            // ASSERT
            output.ShouldBe(expected);
        }
        public void MarkupManipulator_Replace_Parahw()
        {
            string input    = "Using {parahw}above{/parahw} as an Adjective or Noun";
            string expected = "Using <i class=\"mw-parahw\">above</i> as an Adjective or Noun";

            var output = MarkupManipulator.ReplaceMarkupInString(input);

            // ASSERT
            output.ShouldBe(expected);
        }
        public void MarkupManipulator_Replace_Qword()
        {
            string input    = "Only five to six inches long and weighing less than two ounces, the elf owl is the smallest bird of prey in the world. Its bobbed tail, white \u0022eyebrows,\u0022 and {qword}absence{/qword} of ear tufts give this tiny mothlike predator its impish appearance.";
            string expected = "Only five to six inches long and weighing less than two ounces, the elf owl is the smallest bird of prey in the world. Its bobbed tail, white \u0022eyebrows,\u0022 and <i class=\"mw-qword\">absence</i> of ear tufts give this tiny mothlike predator its impish appearance.";

            var output = MarkupManipulator.ReplaceMarkupInString(input);

            // ASSERT
            output.ShouldBe(expected);
        }
        public void MarkupManipulator_Replace_Phrase()
        {
            string input    = "{phrase}In the absence of{/phrase} reform {gloss}= without reform{/gloss}, progress will be slow.";
            string expected = "<span class=\"mw-phrase\"><b><i>In the absence of</b></i></span> reform <span class=\"mw-gloss\">[= without reform]</span>, progress will be slow.";

            var output = MarkupManipulator.ReplaceMarkupInString(input);

            // ASSERT
            output.ShouldBe(expected);
        }
        public void MarkupManipulator_Replace_Gloss()
        {
            string input    = "an {wi}absence{/wi} {gloss}=lack{/gloss} of detail";
            string expected = "an <i class=\"mw-wi\">absence</i> <span class=\"mw-gloss\">[=lack]</span> of detail";

            var output = MarkupManipulator.ReplaceMarkupInString(input);

            // ASSERT
            output.ShouldBe(expected);
        }
        public void MarkupManipulator_Replace_B()
        {
            string input = "Some {b}bold{/b} text";

            // ACT
            var output = MarkupManipulator.ReplaceMarkupInString(input);

            // ASSERT
            output.ShouldBe("Some <b class=\"mw-b\">bold</b> text");
        }