Exemplo n.º 1
0
        public void DotNetQualifiedClassNameTreeNode_Generate_Empty()
        {
            //arrange
            List <DotNetQualifiedClassName> names = new List <DotNetQualifiedClassName>();
            //act
            DotNetQualifiedClassNameTreeNode root = DotNetQualifiedClassNameTreeNode.Generate(names);

            //assert
            Assert.IsNull(root.Value);
            Assert.AreEqual(0, root.Children.Count);
        }
Exemplo n.º 2
0
        public void DotNetQualifiedClassNameTreeNode_Generate_FirstRoot()
        {
            //arrange
            DotNetQualifiedClassName a = DotNetQualifiedClassName.FromVisualStudioXml("NameA.ClassA");
            //act
            DotNetQualifiedClassNameTreeNode root = DotNetQualifiedClassNameTreeNode.Generate(null);

            root.Insert(a);
            //assert
            Assert.AreEqual(a, root.Value);
            Assert.AreEqual(0, root.Children.Count);
        }
Exemplo n.º 3
0
        public void DotNetQualifiedClassNameTreeNode_Generate_One()
        {
            //arrange
            List <DotNetQualifiedClassName> names = new List <DotNetQualifiedClassName>()
            {
                DotNetQualifiedClassName.FromVisualStudioXml("NameA.ClassA")
            };
            //act
            DotNetQualifiedClassNameTreeNode root = DotNetQualifiedClassNameTreeNode.Generate(names);

            //assert
            Assert.AreEqual("NameA.ClassA", root.Value);
            Assert.AreEqual(0, root.Children.Count);
        }
Exemplo n.º 4
0
        public void DotNetQualifiedClassNameTreeNode_Generate_ChildOfRoot()
        {
            //arrange
            DotNetQualifiedClassName a = DotNetQualifiedClassName.FromVisualStudioXml("NameA.NameB");
            DotNetQualifiedClassName b = DotNetQualifiedClassName.FromVisualStudioXml("NameA.NameB.Filler.NameC");
            //act
            DotNetQualifiedClassNameTreeNode root = DotNetQualifiedClassNameTreeNode.Generate(null);

            root.Insert(a);
            root.Insert(b);
            //assert
            Assert.AreEqual(a, root.Value);
            Assert.AreEqual(1, root.Children.Count);
            Assert.AreEqual(b, root.Children[0].Value);
        }
Exemplo n.º 5
0
        public void DotNetQualifiedClassNameTreeNode_Generate_MultipleRoots()
        {
            //arrange
            DotNetQualifiedClassName a = DotNetQualifiedClassName.FromVisualStudioXml("NameA.NameB");
            DotNetQualifiedClassName c = DotNetQualifiedClassName.FromVisualStudioXml("NameC");
            //act
            DotNetQualifiedClassNameTreeNode root = DotNetQualifiedClassNameTreeNode.Generate(null);

            root.Insert(a);
            root.Insert(c);
            //assert
            Assert.AreEqual(null, root.Value);
            Assert.AreEqual(2, root.Children.Count);
            Assert.AreEqual(a, root.Children[0].Value);
            Assert.AreEqual(0, root.Children[0].Children.Count);
            Assert.AreEqual(c, root.Children[1].Value);
            Assert.AreEqual(0, root.Children[1].Children.Count);
        }
Exemplo n.º 6
0
        public void DotNetQualifiedClassNameTreeNode_Generate_BetweenRootAndChild()
        {
            //arrange
            DotNetQualifiedClassName a = DotNetQualifiedClassName.FromVisualStudioXml("NameA.NameB");
            DotNetQualifiedClassName c = DotNetQualifiedClassName.FromVisualStudioXml("NameA.NameB.Filler.NameC");
            DotNetQualifiedClassName d = DotNetQualifiedClassName.FromVisualStudioXml("NameA.NameB.Filler.NameD");
            DotNetQualifiedClassName e = DotNetQualifiedClassName.FromVisualStudioXml("NameA.NameB.Filler");
            //act
            DotNetQualifiedClassNameTreeNode root = DotNetQualifiedClassNameTreeNode.Generate(null);

            root.Insert(a);
            root.Insert(c);
            root.Insert(d);
            root.Insert(e);
            //assert
            Assert.AreEqual(a, root.Value);
            Assert.AreEqual(1, root.Children.Count);
            Assert.AreEqual(e, root.Children[0].Value);
            Assert.AreEqual(2, root.Children[0].Children.Count);
            Assert.AreEqual(c, root.Children[0].Children[0].Value);
            Assert.AreEqual(d, root.Children[0].Children[1].Value);
        }
Exemplo n.º 7
0
        private void GenerateTableOfContents(DotNetDocumentationFile xmlDocumentation, string directory)
        {
            List <DotNetQualifiedClassName> _namespaces = new List <DotNetQualifiedClassName>();

            foreach (DotNetType type in xmlDocumentation.Types)
            {
                _namespaces.Add(type.ClassName.FullClassNamespace);
            }
            foreach (DotNetDelegate _delegate in xmlDocumentation.Delegates)
            {
                _namespaces.Add(_delegate.MethodName.FullClassNamespace);
            }
            _namespaces = _namespaces.Distinct().ToList();
            DotNetQualifiedClassNameTreeNode root = DotNetQualifiedClassNameTreeNode.Generate(_namespaces);

            GenerateAndSaveTableOfContents(xmlDocumentation, root, directory);

            //master table of contents
            MarkdownFile    markdown = new MarkdownFile();
            MarkdownSection section  = markdown.AddSection("Table of Contents");

            if (root.Value == null)
            {
                foreach (DotNetQualifiedClassNameTreeNode node in root.Children)
                {
                    MarkdownSection subsection = BuildMasterSummary(xmlDocumentation, node);
                    section.AddSection(subsection);
                }
            }
            else
            {
                MarkdownSection subsection = BuildMasterSummary(xmlDocumentation, root);
                section.AddSection(subsection);
            }
            Save(markdown, directory, "TableOfContents" + Ext.MD);
        }
Exemplo n.º 8
0
        private MarkdownFile GenerateTableOfContents(DotNetDocumentationFile xmlDocumentation, DotNetQualifiedClassNameTreeNode node)
        {
            List <DotNetType>     types      = xmlDocumentation.Types.Where(t => t.Name.FullNamespace == node.Value).ToList();
            List <DotNetDelegate> _delegates = xmlDocumentation.Delegates.Where(d => d.Name.FullNamespace == node.Value).ToList();

            MarkdownFile markdown = new MarkdownFile();
            string       header   = "Contents of " + node.Value.FullName;

            if (node.Parent != null)
            {
                header = String.Format("Contents of [{0}]({1}).{2}", node.Parent.Value.FullName, TableOfContentsFilename(node.Parent.Value), node.Value.LocalName);
            }

            MarkdownSection section = markdown.AddSection(header);

            if (node.Children.Count > 0)
            {
                MarkdownSection childNamespacesSection = section.AddSection("Namespaces");
                foreach (DotNetQualifiedClassNameTreeNode child in node.Children)
                {
                    section.AddInLine(new MarkdownInlineLink(MarkdownText.Bold(child.Value.FullName), TableOfContentsFilename(child.Value)));
                }
            }

            AddTableOfContentsSection(section, "Concrete Types", types.Where(t => t.Category == TypeCategory.Normal).ToList());
            AddTableOfContentsSection(section, "Static Types", types.Where(t => t.Category == TypeCategory.Static).ToList());
            AddTableOfContentsSection(section, "Abstract Types", types.Where(t => t.Category == TypeCategory.Abstract).ToList());
            AddTableOfContentsSection(section, "Interfaces", types.Where(t => t.Category == TypeCategory.Interface).ToList());
            AddTableOfContentsSection(section, "Enums", types.Where(t => t.Category == TypeCategory.Enum).ToList());
            AddTableOfContentsSection(section, "Structs", types.Where(t => t.Category == TypeCategory.Struct).ToList());
            AddTableOfContentsSection(section, "Delegates", _delegates);
            AddTableOfContentsSection(section, "Exceptions", types.Where(t => t.Category == TypeCategory.Exception).ToList());

            return(markdown);
        }
Exemplo n.º 9
0
 private void GenerateAndSaveTableOfContents(DotNetDocumentationFile xmlDocumentation, DotNetQualifiedClassNameTreeNode node, string directory)
 {
     if (node.Value != null)
     {
         Save(GenerateTableOfContents(xmlDocumentation, node), directory, TableOfContentsFilename(node.Value));
     }
     foreach (DotNetQualifiedClassNameTreeNode child in node.Children)
     {
         GenerateAndSaveTableOfContents(xmlDocumentation, child, directory);
     }
 }
Exemplo n.º 10
0
        private MarkdownSection BuildMasterSummary(DotNetDocumentationFile xmlDocumentation, DotNetQualifiedClassNameTreeNode node)
        {
            string            header  = (new MarkdownInlineLink(node.Value, TableOfContentsFilename(node.Value))).ToMarkdownString(null);
            MarkdownSection   section = new MarkdownSection(header);
            List <DotNetType> types   = xmlDocumentation.Types.Where(t => t.Name.FullNamespace == node.Value).ToList();

            foreach (DotNetType type in types.OrderBy(t => t.Name))
            {
                section.Add(new MarkdownLine(new MarkdownInlineLink(type.Name, FormatFilename(type.Name + Ext.MD))));
            }
            List <DotNetDelegate> _delegates = xmlDocumentation.Delegates.Where(d => d.Name.FullNamespace == node.Value).ToList();

            foreach (DotNetDelegate _delegate in _delegates.OrderBy(d => d.Name))
            {
                section.Add(new MarkdownLine(new MarkdownInlineLink(_delegate.Name, FormatFilename(_delegate.Name + Ext.MD))));
            }
            foreach (DotNetQualifiedClassNameTreeNode child in node.Children.OrderBy(c => c.Value))
            {
                section.AddSection(BuildMasterSummary(xmlDocumentation, child));
            }
            return(section);
        }