public void MultilineItems()
        {
            /* given */
            int listEnd;
            var markdown = new StringBuilder();
            markdown.Append("- item\n");
            markdown.Append("  something here for the next line of the item\n");
            markdown.Append("- item\n");
            markdown.Append("  this is item two\n");
            markdown.Append("- item\n");
            markdown.Append("should not the part of item 3\n");
            var listRange = new StringRange(markdown.ToString());

            var builder = new UnorderedListBuilder('-');

            /* when */

            var list = (List)builder.Build(0, listRange, out listEnd);

            /* then */
            list.Items.Should().HaveCount(3);

            var item1 = list.Items.ElementAt(0);
            item1.ToString().ShouldBeEquivalentTo("item\n  something here for the next line of the item");

            var item2 = list.Items.ElementAt(1);
            item2.ToString().ShouldBeEquivalentTo("item\n  this is item two");

            var item3 = list.Items.ElementAt(2);
            item3.ToString().ShouldBeEquivalentTo("item");
        }
        public void Build()
        {
            /* given */
            int listEnd;
            var markdown = new StringBuilder();
            markdown.Append("- item 1\n");
            markdown.Append("- item\n");
            markdown.Append("  this is item two 2\n");
            markdown.Append("- item 3\n");
            var listRange = new StringRange(markdown.ToString());

            var builder = new UnorderedListBuilder('-');

            /* when */

            var list = (List)builder.Build(0, listRange, out listEnd);

            /* then */
            list.Items.Should().HaveCount(3);

            var item1 = list.Items.ElementAt(0);
            item1.ToString().ShouldBeEquivalentTo("item 1");

            var item2 = list.Items.ElementAt(1);
            item2.ToString().ShouldBeEquivalentTo("item\n  this is item two 2");

            var item3 = list.Items.ElementAt(2);
            item3.ToString().ShouldBeEquivalentTo("item 3");
        }
        public void Is_Passed_An_Object_Of_Unordered_List_With_A_HyperLink_Then_Render_Returns_The_Html(UnorderedListControlRenderer renderer)
        {
            var list   = UnorderedListBuilder.New().AddItem("item 1 [find apprenticeship training](https://www.apprenticeships.gov.uk/employer/find-apprenticeship-training)").Build();
            var actual = renderer.Render(list);

            actual.Value.Should().NotBeNullOrWhiteSpace();
            actual.Value.Should().Be("<ul><li>item 1 <a href=\"https://www.apprenticeships.gov.uk/employer/find-apprenticeship-training\" title=\"\" rel=\"external\" target=\"_blank\">find apprenticeship training</a></li></ul>");
        }
        public void Is_Passed_An_Object_Of_Unordered_List_With_Multiple_Items_Then_Render_Returns_The_Html(UnorderedListControlRenderer renderer)
        {
            var list   = UnorderedListBuilder.New().AddItem("item 1").AddItem("item 2").Build();
            var actual = renderer.Render(list);

            actual.Value.Should().NotBeNullOrWhiteSpace();
            actual.Value.Should().Be("<ul><li>item 1</li><li>item 2</li></ul>");
        }