public void Should_Throw_If_Xml_Document_Is_Null() { // Given var parser = new XmlDocumentationParser(); // When var result = Record.Exception(() => parser.Parse(null)); // Then Assert.IsType <ArgumentNullException>(result); Assert.Equal("documents", ((ArgumentNullException)result).ParamName); }
public void Should_Parse_Members() { // Given var parser = new XmlDocumentationParser(); var document = new XmlDocument(); document.PreserveWhitespace = false; document.LoadXml(Resources.XML_Simple); // When var result = parser.Parse(new[] { document }); // Then Assert.Equal(3, result.Members.Count); }
private static XmlDocumentationModel BuildXmlModel(IDictionary <string, IDocumentationMetadata> paths) { var parser = new XmlDocumentationParser(); var documents = new List <XmlDocument>(); var xmlPaths = FilterFilesOnExtension(paths, ".xml"); foreach (var path in xmlPaths) { using (var stream = File.OpenRead(path.Key)) { var document = new XmlDocument { PreserveWhitespace = false }; document.Load(stream); documents.Add(document); } } return(parser.Parse(documents)); }
private void AddXmlDocumentation(ISymbol symbol, MetadataItems metadata) { string documentationCommentXml = symbol.GetDocumentationCommentXml(expandIncludes: true); XmlDocumentationParser xmlDocumentationParser = new XmlDocumentationParser(symbol, _commentIdToDocument, _cssClasses, _context.Trace); IEnumerable<string> otherHtmlElementNames = xmlDocumentationParser.Parse(documentationCommentXml); // Add standard HTML elements metadata.AddRange(new [] { new MetadataItem(CodeAnalysisKeys.CommentXml, documentationCommentXml), new MetadataItem(CodeAnalysisKeys.Example, (k, m) => xmlDocumentationParser.Process().Example), new MetadataItem(CodeAnalysisKeys.Remarks, (k, m) => xmlDocumentationParser.Process().Remarks), new MetadataItem(CodeAnalysisKeys.Summary, (k, m) => xmlDocumentationParser.Process().Summary), new MetadataItem(CodeAnalysisKeys.Returns, (k, m) => xmlDocumentationParser.Process().Returns), new MetadataItem(CodeAnalysisKeys.Value, (k, m) => xmlDocumentationParser.Process().Value), new MetadataItem(CodeAnalysisKeys.Exceptions, (k, m) => xmlDocumentationParser.Process().Exceptions), new MetadataItem(CodeAnalysisKeys.Permissions, (k, m) => xmlDocumentationParser.Process().Permissions), new MetadataItem(CodeAnalysisKeys.Params, (k, m) => xmlDocumentationParser.Process().Params), new MetadataItem(CodeAnalysisKeys.TypeParams, (k, m) => xmlDocumentationParser.Process().TypeParams), new MetadataItem(CodeAnalysisKeys.SeeAlso, (k, m) => xmlDocumentationParser.Process().SeeAlso) }); // Add other HTML elements with keys of [ElementName]Html metadata.AddRange(otherHtmlElementNames.Select(x => new MetadataItem(FirstLetterToUpper(x) + "Comments", (k, m) => xmlDocumentationParser.Process().OtherComments[x]))); }
private void AddXmlDocumentation(ISymbol symbol, List<KeyValuePair<string, object>> metadata) { string documentationCommentXml = symbol.GetDocumentationCommentXml(expandIncludes: true); XmlDocumentationParser xmlDocumentationParser = new XmlDocumentationParser(symbol, _commentIdToDocument, _cssClasses, _context.Trace); IEnumerable<string> otherHtmlElementNames = xmlDocumentationParser.Parse(documentationCommentXml); // Add standard HTML elements metadata.AddRange(new [] { Metadata.Create(MetadataKeys.DocumentationCommentXml, documentationCommentXml), Metadata.Create(MetadataKeys.ExampleHtml, (k, m) => xmlDocumentationParser.Process().ExampleHtml), Metadata.Create(MetadataKeys.RemarksHtml, (k, m) => xmlDocumentationParser.Process().RemarksHtml), Metadata.Create(MetadataKeys.SummaryHtml, (k, m) => xmlDocumentationParser.Process().SummaryHtml), Metadata.Create(MetadataKeys.ReturnsHtml, (k, m) => xmlDocumentationParser.Process().ReturnsHtml), Metadata.Create(MetadataKeys.ValueHtml, (k, m) => xmlDocumentationParser.Process().ValueHtml), Metadata.Create(MetadataKeys.ExceptionHtml, (k, m) => xmlDocumentationParser.Process().ExceptionHtml), Metadata.Create(MetadataKeys.PermissionHtml, (k, m) => xmlDocumentationParser.Process().PermissionHtml), Metadata.Create(MetadataKeys.ParamHtml, (k, m) => xmlDocumentationParser.Process().ParamHtml), Metadata.Create(MetadataKeys.TypeParamHtml, (k, m) => xmlDocumentationParser.Process().TypeParamHtml), Metadata.Create(MetadataKeys.SeeAlsoHtml, (k, m) => xmlDocumentationParser.Process().SeeAlsoHtml) }); // Add other HTML elements with keys of [ElementName]Html metadata.AddRange(otherHtmlElementNames.Select(x => Metadata.Create(FirstLetterToUpper(x) + "Html", (k, m) => xmlDocumentationParser.Process().OtherHtml[x]))); }