public void NamespaceUsageTest() { var type = GetType(); var namespaceDefinition = new NamespaceDefinition(); namespaceDefinition.Name = "MyName"; Assert.AreEqual("MyName", namespaceDefinition.Name); namespaceDefinition.AddType(type); Assert.AreEqual(1, namespaceDefinition.Types.Count); Assert.AreEqual(1, namespaceDefinition.GetTypes().Count()); Assert.IsNotNull(namespaceDefinition.GetTypes().First()); Assert.IsNotNull(namespaceDefinition.Types.First()); var textSerialization = namespaceDefinition.ToString(); Assert.IsNotNull(textSerialization); Assert.IsTrue(textSerialization.Contains(type.FullName)); }
public void ApiTest() { var myNamespace = new NamespaceDefinition(); myNamespace.AddType(typeof (MyClass)); var api = new AssemblyApi(new List<NamespaceDefinition> {myNamespace}); var namespaces = api.GetNamespaces().ToList(); Assert.AreEqual(1, namespaces.Count); foreach (var nspace in namespaces) { var classes = nspace.Types.ToList(); Assert.AreEqual(1, classes.Count); foreach (var c in classes) { var members = c.GetPublicMembersSignatures().ToList(); Assert.AreEqual(5, members.Count); } } }
public AssemblyApi ExtractApi(string assemblyPath) { var assembly = Loader.LoadFrom(assemblyPath); var types = assembly.GetTypes(); var namespaces = new Dictionary<string, NamespaceDefinition>(); foreach (var type in types) { NamespaceDefinition nspace; var space = type.Namespace; if (string.IsNullOrEmpty(space)) { space = "NULL"; } if (!namespaces.TryGetValue(space, out nspace)) { nspace = new NamespaceDefinition(space); namespaces[space] = nspace; } nspace.AddType(type); } return new AssemblyApi(namespaces.Values); }