public void DotNetCommentList_FromXml_NumberType_WhitespaceInItem()
        {
            //arrange
            XElement element = XElement.Parse(@"
<list type='number'>
<listheader>
	<term>Header Term</term>
	<description>Header Description</description>
</listheader>
<item>
	<term>Term A</term>
	<description>Description A</description>
</item>
<item>
	<term>Term B</term>
	<description>Description B</description>
</item>
<item>
	<term>Term C</term>
	<description>Description C</description>
</item>
</list>
", LoadOptions.PreserveWhitespace);
            //act
            DotNetComment result = DotNetCommentList.FromVisualStudioXml(element);

            //assert
            Assert.IsTrue(result is DotNetCommentList);
            DotNetCommentList list = result as DotNetCommentList;

            Assert.AreEqual(true, list.IsNumbered);
            Assert.AreEqual(4, list.Length);
            Assert.AreEqual("Term A", list[1].Term[0].ToString());
            Assert.AreEqual("Description A", list[1].Description[0].ToString());
        }
        internal static MarkdownList ToMDList(DotNetCommentList commentList, DotNetMember parent = null)
        {
            MarkdownList markdownList = new MarkdownList(isNumbered: commentList.IsNumbered);

            foreach (DotNetCommentListItem commentItem in commentList.Items)
            {
                MarkdownLine text = new MarkdownLine();
                if (commentItem.Term == null && commentItem.Description == null)
                {
                    markdownList.Add(text);
                    continue;
                }

                if (commentItem.Term == null)
                {
                    text = DotNetCommentGroupToMarkdownLine(commentItem.Description, parent);
                }
                else if (commentItem.Description == null)
                {
                    text = DotNetCommentGroupToMarkdownLine(commentItem.Term, parent);
                }
                else
                {
                    text = DotNetCommentGroupToMarkdownLine(commentItem.Term, parent);
                    text.Add(": ");
                    text.Concat(DotNetCommentGroupToMarkdownLine(commentItem.Description, parent));
                }
                markdownList.Add(text);
            }

            return(markdownList);
        }
        public void DotNetCommentList_FromXml_TableType_Empty()
        {
            //arrange
            XElement element = XElement.Parse("<list type='table'/>", LoadOptions.PreserveWhitespace);
            //act
            DotNetComment result = DotNetCommentList.FromVisualStudioXml(element);

            //assert
            Assert.IsTrue(result is DotNetCommentTable);
        }
        public void DotNetCommentList_FromXml_NumberType_Empty()
        {
            //arrange
            XElement element = XElement.Parse("<list type='number'/>", LoadOptions.PreserveWhitespace);
            //act
            DotNetComment result = DotNetCommentList.FromVisualStudioXml(element);

            //assert
            Assert.IsTrue(result is DotNetCommentList);
            DotNetCommentList list = result as DotNetCommentList;

            Assert.AreEqual(true, list.IsNumbered);
            Assert.AreEqual(0, list.Length);
        }
        public void DotNetCommentList_FromXml_NumberType_Full()
        {
            //arrange
            string   items   = "<listheader>H1</listheader><item>I1</item><item>I2</item><item>I3</item>";
            XElement element = XElement.Parse("<list type='number'>" + items + "</list>", LoadOptions.PreserveWhitespace);
            //act
            DotNetComment result = DotNetCommentList.FromVisualStudioXml(element);

            //assert
            Assert.IsTrue(result is DotNetCommentList);
            DotNetCommentList list = result as DotNetCommentList;

            Assert.AreEqual(true, list.IsNumbered);
            Assert.AreEqual(4, list.Length);
        }
        public void DotNetCommentList_FromXml_NestedListInItem_Ignore()
        {
            //arrange
            string   items   = "<listheader>H1</listheader><item>I1</item><item><list type='number'><item>Nested 1</item><item>Nested 2</item></list></item><item>I3</item>";
            XElement element = XElement.Parse("<list type='bullet'>" + items + "</list>", LoadOptions.PreserveWhitespace);
            //act
            DotNetComment result = DotNetCommentList.FromVisualStudioXml(element);

            //assert
            Assert.IsTrue(result is DotNetCommentList);
            DotNetCommentList list = result as DotNetCommentList;

            Assert.AreEqual(4, list.Length);
            Assert.AreEqual(null, list[2].Term);
            Assert.AreEqual(null, list[2].Description);
        }
        public void DotNetCommentList_FromXml_InlineTagsInItem()
        {
            //arrange
            XElement element = XElement.Parse("<list type='number'><item>ABC <see cref='OtherClass'/> DEF</item></list>", LoadOptions.PreserveWhitespace);
            //act
            DotNetComment result = DotNetCommentList.FromVisualStudioXml(element);

            //assert
            Assert.IsTrue(result is DotNetCommentList);
            DotNetCommentList list = result as DotNetCommentList;

            Assert.AreEqual(1, list.Length);
            DotNetCommentListItem item = list[0];

            Assert.AreEqual(3, item.Term.Count);
            Assert.IsNull(item.Description);
        }