Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/api-doc-tools.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/mdoc
diff options
context:
space:
mode:
authorGRODNO\Anton_Sokolovskii <a.sokolovsky15@gmail.com>2017-11-21 14:38:51 +0300
committerJoel Martinez <joelmartinez@gmail.com>2017-11-21 19:29:38 +0300
commitb070267b5cf3986cdd79f52244a15412d0cbf70a (patch)
tree6a3e060056563188364b65541d572be7ce92864b /mdoc
parent72b005909d786afd7db9cef01d9d87d2c050b0c7 (diff)
mdoc: Support NuGet information in the frameworks.xml
Add two new parameters to constructor AssemblySet Add properties to FrameworkEntry Add integration test Closes #81
Diffstat (limited to 'mdoc')
-rw-r--r--mdoc/Makefile18
-rw-r--r--mdoc/Mono.Documentation/MDocUpdater.cs24
-rw-r--r--mdoc/Mono.Documentation/Updater/Frameworks/AssemblySet.cs10
-rw-r--r--mdoc/Mono.Documentation/Updater/Frameworks/FrameworkEntry.cs2
-rw-r--r--mdoc/Mono.Documentation/Updater/Frameworks/FrameworkIndex.cs41
-rw-r--r--mdoc/Test/frameworks.xml10
-rw-r--r--mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/FrameworksIndex/One.xml21
-rw-r--r--mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/FrameworksIndex/Two.xml17
-rw-r--r--mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/MyFramework.MyNamespace/MyClass.xml87
-rw-r--r--mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/MyFramework.MyNamespace/MyClassExtensions.xml39
-rw-r--r--mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/MyFramework.MyOtherNamespace/MyOtherClass.xml91
-rw-r--r--mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/MyNamespace/MyClass.xml54
-rw-r--r--mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/index.xml72
-rw-r--r--mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/ns-MyFramework.MyNamespace.xml6
-rw-r--r--mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/ns-MyFramework.MyOtherNamespace.xml6
-rw-r--r--mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/ns-MyNamespace.xml6
-rw-r--r--mdoc/Test/test-nuget-information/input_data/frameworks.xml10
17 files changed, 483 insertions, 31 deletions
diff --git a/mdoc/Makefile b/mdoc/Makefile
index f7dcb263..f41a5f16 100644
--- a/mdoc/Makefile
+++ b/mdoc/Makefile
@@ -156,6 +156,20 @@ check-monodocer-frameworks-inheritance: Test/FrameworkTestData-fx-inheritance
-rm -Rf Test/en.actual
$(MONO) $(PROGRAM) update -o Test/en.actual -frameworks Test/FrameworkTestData-fx-inheritance
$(DIFF) Test/en.expected-frameworks-inheritance Test/en.actual
+
+check-monodocer-frameworks-with-nuget:
+ -rm -Rf Test/en.actual
+ -rm -rf Test/test-nuget-information/input_data
+ mkdir Test/test-nuget-information/input_data
+ mkdir Test/test-nuget-information/input_data/One
+ mkdir Test/test-nuget-information/input_data/Two
+ cp Test/DocTest-addNonGeneric.dll Test/test-nuget-information/input_data/One/
+ cp Test/DocTest-DropNS-classic.dll Test/test-nuget-information/input_data/One/
+ cp Test/DocTest-addNonGeneric.dll Test/test-nuget-information/input_data/Two/
+ cp Test/DocTest-DropNS-classic-secondary.dll Test/test-nuget-information/input_data/Two/
+ cp Test/frameworks.xml Test/test-nuget-information/input_data/
+ $(MONO) $(PROGRAM) update -o Test/en.actual -frameworks Test/test-nuget-information/input_data
+ $(DIFF) Test/test-nuget-information/en.expected-frameworks-with-nuget-information Test/en.actual
check-monodocer-docid: Test/FrameworkTestData
-rm -Rf Test/en.actual
@@ -543,7 +557,9 @@ check-doc-tools: check-monodocer-since \
check-monodocer-fx-statistics-remove \
check-overwrite-attribute \
check-monodocer-vbnet \
- check-monodocer-vbnet2
+ check-monodocer-vbnet2 \
+ check-monodocer-frameworks-with-nuget\
+
check-doc-tools-update: check-monodocer-since-update \
check-monodocer-importecmadoc-update \
diff --git a/mdoc/Mono.Documentation/MDocUpdater.cs b/mdoc/Mono.Documentation/MDocUpdater.cs
index d8d61ab3..13fc7423 100644
--- a/mdoc/Mono.Documentation/MDocUpdater.cs
+++ b/mdoc/Mono.Documentation/MDocUpdater.cs
@@ -256,7 +256,11 @@ namespace Mono.Documentation
.ToArray (),
Imports = f.Elements ("import")
.Select (a => Path.Combine (frameworksDir, a.Value))
- .ToArray ()
+ .ToArray (),
+ Version = f.Elements("package")
+ ?.FirstOrDefault()?.Attribute("Version")?.Value,
+ Id = f.Elements("package")
+ ?.FirstOrDefault()?.Attribute("Id")?.Value
})
.Where (f => Directory.Exists (f.Path));
@@ -282,7 +286,9 @@ namespace Mono.Documentation
d.Name,
getFiles (d.Path, "*.dll|*.exe|*.winmd"),
this.globalSearchPaths.Union (d.SearchPaths),
- d.Imports
+ d.Imports,
+ d.Version,
+ d.Id
));
this.assemblies.AddRange (sets);
assemblyPaths.AddRange (sets.SelectMany (s => s.AssemblyPaths));
@@ -300,7 +306,7 @@ namespace Mono.Documentation
Console.Write (".");
foreach (var assembly in assemblySet.Assemblies)
{
- var a = cacheIndex.StartProcessingAssembly (assembly, assemblySet.Importers);
+ var a = cacheIndex.StartProcessingAssembly (assembly, assemblySet.Importers, assemblySet.Id, assemblySet.Version);
foreach (var type in assembly.GetTypes ())
{
var t = a.ProcessType (type);
@@ -315,7 +321,7 @@ namespace Mono.Documentation
}
else
{
- this.assemblies.Add (new AssemblySet ("Default", assemblyPaths, this.globalSearchPaths, null));
+ this.assemblies.Add (new AssemblySet ("Default", assemblyPaths, this.globalSearchPaths));
}
if (assemblyPaths == null)
@@ -629,7 +635,7 @@ namespace Mono.Documentation
var namespacesSet = new HashSet<string> ();
memberSet = new HashSet<string> ();
- var frameworkEntry = frameworks.StartProcessingAssembly (assembly, assemblySet.Importers);
+ var frameworkEntry = frameworks.StartProcessingAssembly (assembly, assemblySet.Importers, assemblySet.Id, assemblySet.Version);
foreach (TypeDefinition type in docEnum.GetDocumentationTypes (assembly, typenames))
{
@@ -824,7 +830,7 @@ namespace Mono.Documentation
else
{
// Stub
- XmlElement td = StubType (type, output, typeEntry.Framework.Importers);
+ XmlElement td = StubType (type, output, typeEntry.Framework.Importers, typeEntry.Framework.Id, typeEntry.Framework.Version);
if (td == null)
return null;
}
@@ -1007,7 +1013,7 @@ namespace Mono.Documentation
var typeSet = new HashSet<string> ();
memberSet = new HashSet<string> ();
- var frameworkEntry = frameworks.StartProcessingAssembly (assembly, assemblySet.Importers);
+ var frameworkEntry = frameworks.StartProcessingAssembly (assembly, assemblySet.Importers, assemblySet.Id, assemblySet.Version);
foreach (TypeDefinition type in docEnum.GetDocumentationTypes (assembly, null))
{
string typename = GetTypeFileName (type);
@@ -1791,7 +1797,7 @@ namespace Mono.Documentation
// CREATE A STUB DOCUMENTATION FILE
- public XmlElement StubType (TypeDefinition type, string output, IEnumerable<DocumentationImporter> importers)
+ public XmlElement StubType (TypeDefinition type, string output, IEnumerable<DocumentationImporter> importers, string Id, string Version)
{
string typesig = typeFormatters[0].GetDeclaration (type);
if (typesig == null) return null; // not publicly visible
@@ -1800,7 +1806,7 @@ namespace Mono.Documentation
XmlElement root = doc.CreateElement ("Type");
doc.AppendChild (root);
- var frameworkEntry = frameworks.StartProcessingAssembly (type.Module.Assembly, importers);
+ var frameworkEntry = frameworks.StartProcessingAssembly (type.Module.Assembly, importers, Id, Version);
var typeEntry = frameworkEntry.ProcessType (type);
DoUpdateType2 ("New Type", doc, type, typeEntry, output, true);
statisticsCollector.AddMetric (typeEntry.Framework.Name, StatisticsItem.Types, StatisticsMetrics.Added);
diff --git a/mdoc/Mono.Documentation/Updater/Frameworks/AssemblySet.cs b/mdoc/Mono.Documentation/Updater/Frameworks/AssemblySet.cs
index fd7934e4..f2ea096b 100644
--- a/mdoc/Mono.Documentation/Updater/Frameworks/AssemblySet.cs
+++ b/mdoc/Mono.Documentation/Updater/Frameworks/AssemblySet.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
@@ -21,13 +21,15 @@ namespace Mono.Documentation.Updater.Frameworks
IEnumerable<string> importPaths;
public IEnumerable<DocumentationImporter> Importers { get; private set; }
- public AssemblySet (IEnumerable<string> paths) : this ("Default", paths, new string[0], null) { }
+ public AssemblySet (IEnumerable<string> paths) : this ("Default", paths, new string[0]) { }
- public AssemblySet (string name, IEnumerable<string> paths, IEnumerable<string> resolverSearchPaths, IEnumerable<string> imports)
+ public AssemblySet (string name, IEnumerable<string> paths, IEnumerable<string> resolverSearchPaths, IEnumerable<string> imports = null, string version = null, string id = null)
{
this.cachedResolver = new CachedResolver (this.resolver);
Name = name;
+ Version = version;
+ Id = id;
foreach (var path in paths)
{
@@ -62,6 +64,8 @@ namespace Mono.Documentation.Updater.Frameworks
}
public string Name { get; private set; }
+ public string Version { get; private set; }
+ public string Id { get; private set; }
IEnumerable<AssemblyDefinition> assemblies;
public IEnumerable<AssemblyDefinition> Assemblies
diff --git a/mdoc/Mono.Documentation/Updater/Frameworks/FrameworkEntry.cs b/mdoc/Mono.Documentation/Updater/Frameworks/FrameworkEntry.cs
index 2df62fa0..5bd6f346 100644
--- a/mdoc/Mono.Documentation/Updater/Frameworks/FrameworkEntry.cs
+++ b/mdoc/Mono.Documentation/Updater/Frameworks/FrameworkEntry.cs
@@ -20,6 +20,8 @@ namespace Mono.Documentation.Updater.Frameworks
}
public string Name { get; set; }
+ public string Version { get; set; }
+ public string Id { get; set; }
public IEnumerable<DocumentationImporter> Importers { get; set; }
diff --git a/mdoc/Mono.Documentation/Updater/Frameworks/FrameworkIndex.cs b/mdoc/Mono.Documentation/Updater/Frameworks/FrameworkIndex.cs
index e392f585..4e0185cc 100644
--- a/mdoc/Mono.Documentation/Updater/Frameworks/FrameworkIndex.cs
+++ b/mdoc/Mono.Documentation/Updater/Frameworks/FrameworkIndex.cs
@@ -26,7 +26,7 @@ namespace Mono.Documentation.Updater.Frameworks
}
}
- public FrameworkEntry StartProcessingAssembly (AssemblyDefinition assembly, IEnumerable<DocumentationImporter> importers)
+ public FrameworkEntry StartProcessingAssembly (AssemblyDefinition assembly, IEnumerable<DocumentationImporter> importers, string Id, string Version)
{
if (string.IsNullOrWhiteSpace (this.path))
return FrameworkEntry.Empty;
@@ -42,7 +42,7 @@ namespace Mono.Documentation.Updater.Frameworks
var entry = frameworks.FirstOrDefault (f => f.Name.Equals (shortPath));
if (entry == null) {
- entry = new FrameworkEntry (frameworks) { Name = shortPath, Importers = importers };
+ entry = new FrameworkEntry (frameworks) { Name = shortPath, Importers = importers, Id = Id, Version = Version};
frameworks.Add (entry);
}
return entry;
@@ -58,23 +58,28 @@ namespace Mono.Documentation.Updater.Frameworks
string outputPath = Path.Combine (path, "FrameworksIndex");
if (!Directory.Exists (outputPath))
Directory.CreateDirectory (outputPath);
-
- foreach (var fx in this.frameworks) {
-
- XDocument doc = new XDocument (
- new XElement("Framework",
- new XAttribute ("Name", fx.Name),
- fx.Types
- .GroupBy(t => t.Namespace)
- .Select(g => new XElement("Namespace",
- new XAttribute("Name", g.Key),
- g.Select (t => new XElement ("Type",
- new XAttribute ("Name", t.Name),
- new XAttribute("Id", t.Id),
- t.Members.Select (m =>
- new XElement ("Member",
- new XAttribute ("Id", m)))))))));
+ foreach (var fx in this.frameworks)
+ {
+ XElement frameworkElement = new XElement("Framework", new XAttribute("Name", fx.Name));
+ XDocument doc = new XDocument(
+ frameworkElement
+ );
+ if (fx.Version!=null && fx.Id!= null)
+ {
+ frameworkElement.Add(new XElement("package", new XAttribute("Id", fx.Id),
+ new XAttribute("Version", fx.Version)
+ ));
+ }
+ frameworkElement.Add(fx.Types.GroupBy(t => t.Namespace)
+ .Select(g => new XElement("Namespace",
+ new XAttribute("Name", g.Key),
+ g.Select(t => new XElement("Type",
+ new XAttribute("Name", t.Name),
+ new XAttribute("Id", t.Id),
+ t.Members.Select(m =>
+ new XElement("Member",
+ new XAttribute("Id", m))))))));
// now save the document
string filePath = Path.Combine (outputPath, fx.Name + ".xml");
diff --git a/mdoc/Test/frameworks.xml b/mdoc/Test/frameworks.xml
new file mode 100644
index 00000000..71192bae
--- /dev/null
+++ b/mdoc/Test/frameworks.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Frameworks>
+ <Framework Name="One" Source="One">
+ <assemblySearchPath>dependencises/One</assemblySearchPath>
+ <package Id="thepackage" Version="2.2.2" />
+ </Framework>
+ <Framework Name="Two" Source="Two">
+ <assemblySearchPath>dependencies/Two</assemblySearchPath>
+ </Framework>
+</Frameworks> \ No newline at end of file
diff --git a/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/FrameworksIndex/One.xml b/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/FrameworksIndex/One.xml
new file mode 100644
index 00000000..8e10b992
--- /dev/null
+++ b/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/FrameworksIndex/One.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Framework Name="One">
+ <package Id="thepackage" Version="2.2.2" />
+ <Namespace Name="MyFramework.MyNamespace">
+ <Type Name="MyFramework.MyNamespace.MyClass" Id="T:MyFramework.MyNamespace.MyClass">
+ <Member Id="M:MyFramework.MyNamespace.MyClass.#ctor" />
+ <Member Id="M:MyFramework.MyNamespace.MyClass.Hello(System.Int32)" />
+ <Member Id="P:MyFramework.MyNamespace.MyClass.MyProperty" />
+ <Member Id="P:MyFramework.MyNamespace.MyClass.OnlyInClassic" />
+ </Type>
+ <Type Name="MyFramework.MyNamespace.MyClassExtensions" Id="T:MyFramework.MyNamespace.MyClassExtensions">
+ <Member Id="M:MyFramework.MyNamespace.MyClassExtensions.AnExtension(MyFramework.MyNamespace.MyClass)" />
+ </Type>
+ </Namespace>
+ <Namespace Name="MyNamespace">
+ <Type Name="MyNamespace.MyClass" Id="T:MyNamespace.MyClass">
+ <Member Id="M:MyNamespace.MyClass.#ctor" />
+ <Member Id="M:MyNamespace.MyClass.SomeMethod``1" />
+ </Type>
+ </Namespace>
+</Framework> \ No newline at end of file
diff --git a/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/FrameworksIndex/Two.xml b/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/FrameworksIndex/Two.xml
new file mode 100644
index 00000000..b697626e
--- /dev/null
+++ b/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/FrameworksIndex/Two.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Framework Name="Two">
+ <Namespace Name="MyFramework.MyOtherNamespace">
+ <Type Name="MyFramework.MyOtherNamespace.MyOtherClass" Id="T:MyFramework.MyOtherNamespace.MyOtherClass">
+ <Member Id="M:MyFramework.MyOtherNamespace.MyOtherClass.#ctor" />
+ <Member Id="M:MyFramework.MyOtherNamespace.MyOtherClass.Hello(System.Double)" />
+ <Member Id="M:MyFramework.MyOtherNamespace.MyOtherClass.Hello(System.Int32)" />
+ <Member Id="P:MyFramework.MyOtherNamespace.MyOtherClass.MyProperty" />
+ </Type>
+ </Namespace>
+ <Namespace Name="MyNamespace">
+ <Type Name="MyNamespace.MyClass" Id="T:MyNamespace.MyClass">
+ <Member Id="M:MyNamespace.MyClass.#ctor" />
+ <Member Id="M:MyNamespace.MyClass.SomeMethod``1" />
+ </Type>
+ </Namespace>
+</Framework> \ No newline at end of file
diff --git a/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/MyFramework.MyNamespace/MyClass.xml b/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/MyFramework.MyNamespace/MyClass.xml
new file mode 100644
index 00000000..57e2c54f
--- /dev/null
+++ b/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/MyFramework.MyNamespace/MyClass.xml
@@ -0,0 +1,87 @@
+<Type Name="MyClass" FullName="MyFramework.MyNamespace.MyClass">
+ <TypeSignature Language="C#" Value="public class MyClass" />
+ <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit MyClass extends System.Object" />
+ <AssemblyInfo>
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Object</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ <Members>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public MyClass ();" />
+ <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
+ <MemberType>Constructor</MemberType>
+ <AssemblyInfo>
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Parameters />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Hello">
+ <MemberSignature Language="C#" Value="public float Hello (int value);" />
+ <MemberSignature Language="ILAsm" Value=".method public hidebysig instance float32 Hello(int32 value) cil managed" />
+ <MemberType>Method</MemberType>
+ <AssemblyInfo>
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>System.Single</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="value" Type="System.Int32" />
+ </Parameters>
+ <Docs>
+ <param name="value">To be added.</param>
+ <summary>To be added.</summary>
+ <returns>To be added.</returns>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="MyProperty">
+ <MemberSignature Language="C#" Value="public string MyProperty { get; set; }" />
+ <MemberSignature Language="ILAsm" Value=".property instance string MyProperty" />
+ <MemberType>Property</MemberType>
+ <AssemblyInfo>
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>System.String</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="OnlyInClassic">
+ <MemberSignature Language="C#" Value="public double OnlyInClassic { get; set; }" />
+ <MemberSignature Language="ILAsm" Value=".property instance float64 OnlyInClassic" />
+ <MemberType>Property</MemberType>
+ <AssemblyInfo>
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>System.Double</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+</Type>
diff --git a/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/MyFramework.MyNamespace/MyClassExtensions.xml b/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/MyFramework.MyNamespace/MyClassExtensions.xml
new file mode 100644
index 00000000..07333a55
--- /dev/null
+++ b/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/MyFramework.MyNamespace/MyClassExtensions.xml
@@ -0,0 +1,39 @@
+<Type Name="MyClassExtensions" FullName="MyFramework.MyNamespace.MyClassExtensions">
+ <TypeSignature Language="C#" Value="public static class MyClassExtensions" />
+ <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit MyClassExtensions extends System.Object" />
+ <AssemblyInfo>
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Object</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ <Members>
+ <Member MemberName="AnExtension">
+ <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+ <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+ <MemberType>Method</MemberType>
+ <AssemblyInfo>
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>System.Boolean</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+ </Parameters>
+ <Docs>
+ <param name="value">To be added.</param>
+ <summary>To be added.</summary>
+ <returns>To be added.</returns>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+</Type>
diff --git a/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/MyFramework.MyOtherNamespace/MyOtherClass.xml b/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/MyFramework.MyOtherNamespace/MyOtherClass.xml
new file mode 100644
index 00000000..c1a2fd15
--- /dev/null
+++ b/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/MyFramework.MyOtherNamespace/MyOtherClass.xml
@@ -0,0 +1,91 @@
+<Type Name="MyOtherClass" FullName="MyFramework.MyOtherNamespace.MyOtherClass">
+ <TypeSignature Language="C#" Value="public class MyOtherClass" />
+ <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit MyOtherClass extends System.Object" />
+ <AssemblyInfo>
+ <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Object</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ <Members>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public MyOtherClass ();" />
+ <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
+ <MemberType>Constructor</MemberType>
+ <AssemblyInfo>
+ <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Parameters />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Hello">
+ <MemberSignature Language="C#" Value="public float Hello (double value);" />
+ <MemberSignature Language="ILAsm" Value=".method public hidebysig instance float32 Hello(float64 value) cil managed" />
+ <MemberType>Method</MemberType>
+ <AssemblyInfo>
+ <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>System.Single</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="value" Type="System.Double" />
+ </Parameters>
+ <Docs>
+ <param name="value">To be added.</param>
+ <summary>To be added.</summary>
+ <returns>To be added.</returns>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Hello">
+ <MemberSignature Language="C#" Value="public float Hello (int value);" />
+ <MemberSignature Language="ILAsm" Value=".method public hidebysig instance float32 Hello(int32 value) cil managed" />
+ <MemberType>Method</MemberType>
+ <AssemblyInfo>
+ <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>System.Single</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="value" Type="System.Int32" />
+ </Parameters>
+ <Docs>
+ <param name="value">To be added.</param>
+ <summary>To be added.</summary>
+ <returns>To be added.</returns>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="MyProperty">
+ <MemberSignature Language="C#" Value="public string MyProperty { get; set; }" />
+ <MemberSignature Language="ILAsm" Value=".property instance string MyProperty" />
+ <MemberType>Property</MemberType>
+ <AssemblyInfo>
+ <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>System.String</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+</Type>
diff --git a/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/MyNamespace/MyClass.xml b/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/MyNamespace/MyClass.xml
new file mode 100644
index 00000000..20a7104b
--- /dev/null
+++ b/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/MyNamespace/MyClass.xml
@@ -0,0 +1,54 @@
+<Type Name="MyClass" FullName="MyNamespace.MyClass">
+ <TypeSignature Language="C#" Value="public class MyClass" />
+ <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit MyClass extends System.Object" />
+ <AssemblyInfo>
+ <AssemblyName>DocTest-addNonGeneric</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Object</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ <Members>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public MyClass ();" />
+ <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
+ <MemberType>Constructor</MemberType>
+ <AssemblyInfo>
+ <AssemblyName>DocTest-addNonGeneric</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Parameters />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="SomeMethod&lt;T&gt;">
+ <MemberSignature Language="C#" Value="public string SomeMethod&lt;T&gt; ();" />
+ <MemberSignature Language="ILAsm" Value=".method public hidebysig instance string SomeMethod&lt;T&gt;() cil managed" />
+ <MemberType>Method</MemberType>
+ <AssemblyInfo>
+ <AssemblyName>DocTest-addNonGeneric</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>System.String</ReturnType>
+ </ReturnValue>
+ <TypeParameters>
+ <TypeParameter Name="T" />
+ </TypeParameters>
+ <Parameters />
+ <Docs>
+ <typeparam name="T">To be added.</typeparam>
+ <summary>To be added.</summary>
+ <returns>To be added.</returns>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+</Type>
diff --git a/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/index.xml b/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/index.xml
new file mode 100644
index 00000000..6abf1402
--- /dev/null
+++ b/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/index.xml
@@ -0,0 +1,72 @@
+<Overview>
+ <Assemblies>
+ <Assembly Name="DocTest-DropNS-classic" Version="0.0.0.0">
+ <Attributes>
+ <Attribute>
+ <AttributeName>System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute+DebuggingModes.IgnoreSymbolStoreSequencePoints)</AttributeName>
+ </Attribute>
+ <Attribute>
+ <AttributeName>System.Runtime.CompilerServices.RuntimeCompatibility(WrapNonExceptionThrows=true)</AttributeName>
+ </Attribute>
+ </Attributes>
+ </Assembly>
+ <Assembly Name="DocTest-DropNS-classic-secondary" Version="0.0.0.0">
+ <Attributes>
+ <Attribute>
+ <AttributeName>System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute+DebuggingModes.IgnoreSymbolStoreSequencePoints)</AttributeName>
+ </Attribute>
+ <Attribute>
+ <AttributeName>System.Runtime.CompilerServices.RuntimeCompatibility(WrapNonExceptionThrows=true)</AttributeName>
+ </Attribute>
+ </Attributes>
+ </Assembly>
+ <Assembly Name="DocTest-addNonGeneric" Version="0.0.0.0">
+ <Attributes>
+ <Attribute>
+ <AttributeName>System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute+DebuggingModes.IgnoreSymbolStoreSequencePoints)</AttributeName>
+ </Attribute>
+ <Attribute>
+ <AttributeName>System.Runtime.CompilerServices.RuntimeCompatibility(WrapNonExceptionThrows=true)</AttributeName>
+ </Attribute>
+ </Attributes>
+ </Assembly>
+ </Assemblies>
+ <Remarks>To be added.</Remarks>
+ <Copyright>To be added.</Copyright>
+ <Types>
+ <Namespace Name="MyFramework.MyNamespace">
+ <Type Name="MyClass" Kind="Class" />
+ <Type Name="MyClassExtensions" Kind="Class" />
+ </Namespace>
+ <Namespace Name="MyFramework.MyOtherNamespace">
+ <Type Name="MyOtherClass" Kind="Class" />
+ </Namespace>
+ <Namespace Name="MyNamespace">
+ <Type Name="MyClass" Kind="Class" />
+ </Namespace>
+ </Types>
+ <Title>Untitled</Title>
+ <ExtensionMethods>
+ <ExtensionMethod>
+ <Targets>
+ <Target Type="T:MyFramework.MyNamespace.MyClass" />
+ </Targets>
+ <Member MemberName="AnExtension">
+ <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+ <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+ <MemberType>ExtensionMethod</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Boolean</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+ </Parameters>
+ <Docs>
+ <param name="value">To be added.</param>
+ <summary>To be added.</summary>
+ </Docs>
+ <Link Type="MyFramework.MyNamespace.MyClassExtensions" Member="M:MyFramework.MyNamespace.MyClassExtensions.AnExtension(MyFramework.MyNamespace.MyClass)" />
+ </Member>
+ </ExtensionMethod>
+ </ExtensionMethods>
+</Overview>
diff --git a/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/ns-MyFramework.MyNamespace.xml b/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/ns-MyFramework.MyNamespace.xml
new file mode 100644
index 00000000..74df75af
--- /dev/null
+++ b/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/ns-MyFramework.MyNamespace.xml
@@ -0,0 +1,6 @@
+<Namespace Name="MyFramework.MyNamespace">
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Namespace>
diff --git a/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/ns-MyFramework.MyOtherNamespace.xml b/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/ns-MyFramework.MyOtherNamespace.xml
new file mode 100644
index 00000000..8bdef1c7
--- /dev/null
+++ b/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/ns-MyFramework.MyOtherNamespace.xml
@@ -0,0 +1,6 @@
+<Namespace Name="MyFramework.MyOtherNamespace">
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Namespace>
diff --git a/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/ns-MyNamespace.xml b/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/ns-MyNamespace.xml
new file mode 100644
index 00000000..bd8d4316
--- /dev/null
+++ b/mdoc/Test/test-nuget-information/en.expected-frameworks-with-nuget-information/ns-MyNamespace.xml
@@ -0,0 +1,6 @@
+<Namespace Name="MyNamespace">
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Namespace>
diff --git a/mdoc/Test/test-nuget-information/input_data/frameworks.xml b/mdoc/Test/test-nuget-information/input_data/frameworks.xml
new file mode 100644
index 00000000..71192bae
--- /dev/null
+++ b/mdoc/Test/test-nuget-information/input_data/frameworks.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Frameworks>
+ <Framework Name="One" Source="One">
+ <assemblySearchPath>dependencises/One</assemblySearchPath>
+ <package Id="thepackage" Version="2.2.2" />
+ </Framework>
+ <Framework Name="Two" Source="Two">
+ <assemblySearchPath>dependencies/Two</assemblySearchPath>
+ </Framework>
+</Frameworks> \ No newline at end of file