public void ToMemberId_returns_expected_value_for_type_definitions_01() { // ARRANGE var cs = @" namespace Namespace1.Namespace2 { public class Class1 { } } "; using var assembly = Compile(cs); var typeReference = assembly.MainModule.Types.Single(x => x.Name == "Class1"); var expectedMemberId = new SimpleTypeId("Namespace1.Namespace2", "Class1"); // ACT var actualMemberId = typeReference.ToMemberId(); // ASSERT Assert.NotNull(actualMemberId); Assert.Equal(expectedMemberId, actualMemberId); }
public void TryGetDocumenation_returns_expected_documentation_item_for_an_documented_type() { // ARRANGE var cs = @" using System; public class Class1 { } public class Class2 { } "; using var assembly = Compile(cs); using var assemblyDocumentation = GetAssemblyDocumentation(assembly); var sut = assemblyDocumentation.Types.Single(x => x.TypeId.Name == "Class1"); // ARRANGE var typeId = new SimpleTypeId(NamespaceId.GlobalNamespace, "Class2"); // ACT var documentation = sut.TryGetDocumentation(typeId); // ASSERT Assert.NotNull(documentation); var typeDocumentation = Assert.IsType <TypeDocumentation>(documentation); Assert.Equal(typeId, typeDocumentation.TypeId); }
public void TryGetDocumentationComments_gets_expected_docs_for_a_nested_type() { // ARRANGE var cs = @" using System; public class Class1 { /// <summary> /// Example of an inner class /// </summary> public class NestedClass1 { } } "; using var assembly = Compile(cs, out var xmlDocs); var id = new SimpleTypeId(new SimpleTypeId(NamespaceId.GlobalNamespace, "Class1"), "NestedClass1"); // ACT var sut = new XmlDocsProvider(assembly, xmlDocs, NullLogger.Instance); var docs = sut.TryGetDocumentationComments(id); // ASSERT Assert.NotNull(docs); Assert.NotNull(docs !.MemberId); Assert.IsAssignableFrom <TypeId>(docs.MemberId); Assert.NotNull(docs.Summary); }
public void TryGetDocumentation_returns_null_for_an_undocumented_type() { // ARRANGE var cs = @" using System; public class Class1 { } internal class Class2 { } "; using var assembly = Compile(cs); using var assemblyDocumentation = GetAssemblyDocumentation(assembly); var sut = assemblyDocumentation.Types.Single(x => x.TypeId.Name == "Class1"); var typeId = new SimpleTypeId(NamespaceId.GlobalNamespace, "Class2"); // ACT var documentation = sut.TryGetDocumentation(typeId); // ASSERT Assert.Null(documentation); }
public void TryGetDocumentation_returns_null_for_an_undocumented_type() { // ARRANGE var typeId = new SimpleTypeId("Namespace1.Namespace2", "InternalClass1"); var sut = GetOverloadDocumentationInstance(m_AssemblyDocumentation.Types.Single()); // ACT var documentation = sut.TryGetDocumentation(typeId); // ASSERT Assert.Null(documentation); }
public void ToTypeId_returns_expected_value_01() { // ARRANGE var expected = new SimpleTypeId(NamespaceId.GlobalNamespace, "Class1"); // ACT var actual = TypeIdBuilder.Create() .AddNameSegment("Class1") .ToTypeId(); // ASSERT Assert.Equal(expected, actual); }
public void TryGetDocumenation_returns_expected_documentation_item_for_an_documented_type() { // ARRANGE var typeId = new SimpleTypeId("Namespace1.Namespace2", "Class1"); var sut = GetOverloadDocumentationInstance(m_AssemblyDocumentation.Types.Single()); // ACT var documentation = sut.TryGetDocumentation(typeId); // ASSERT Assert.NotNull(documentation); var typeDocumentation = Assert.IsType <TypeDocumentation>(documentation); Assert.Equal(typeId, typeDocumentation.TypeId); }
public void ToMemberId_returns_expected_value_for_nested_constructued_types_02() { // ARRANGE var cs = @" using System; using System.Collections.Generic; namespace Namespace1.Namespace2 { public class Class1 { public void Method1(Class2<string>.NestedClass1 parameter) => throw new NotImplementedException(); } public class Class2<T> { public class NestedClass1 { } } } "; using var assembly = Compile(cs); var typeReference = assembly.MainModule.Types .Single(x => x.Name == "Class1") .Methods .Single(x => x.Name == "Method1") .Parameters .Single() .ParameterType; // type: TestClass_NestedTypes<string>.NestedClass1 var expectedMemberId = new SimpleTypeId( new GenericTypeInstanceId("Namespace1.Namespace2", "Class2", new[] { new SimpleTypeId("System", "String") }), "NestedClass1" ); // ACT var actualMemberId = typeReference.ToMemberId(); // ASSERT Assert.NotNull(actualMemberId); Assert.Equal(expectedMemberId, actualMemberId); }
public void ToTypeId_returns_expected_value_08() { // ARRANGE var stringTypeId = new SimpleTypeId("System", "String"); var expected = new GenericTypeInstanceId(new NamespaceId("Namespace1"), "Class1", new[] { stringTypeId }); // ACT var actual = TypeIdBuilder.Create() .AddNameSegment("Namespace1") .AddNameSegment("Class1") .SetTypeArguments(new[] { stringTypeId }) .ToTypeId(); // ASSERT Assert.Equal(expected, actual); }
public void ToTypeId_returns_expected_value_05() { // ARRANGE var outerType = new SimpleTypeId(new NamespaceId("Namespace1.Namespace2"), "Class1"); var expected = new SimpleTypeId(outerType, "NestedClass1"); // ACT var actual = TypeIdBuilder.Create() .AddNameSegment("Namespace1") .AddNameSegment("Namespace2") .AddNameSegment("Class1") .BeginNestedType() .AddNameSegment("NestedClass1") .ToTypeId(); // ASSERT Assert.Equal(expected, actual); }
public void SetArity_implicitly_creates_a_nested_type() { // ARRANGE var outerType = new GenericTypeId(new NamespaceId("Namespace1.Namespace2"), "Class1", 1); var expected = new SimpleTypeId(outerType, "NestedClass1"); // ACT var actual = TypeIdBuilder.Create() .AddNameSegment("Namespace1") .AddNameSegment("Namespace2") .AddNameSegment("Class1") .SetArity(1) .AddNameSegment("NestedClass1") .ToTypeId(); // ASSERT Assert.Equal(expected, actual); }
public void ToMemberId_returns_the_expected_value_for_nested_types_02() { // ARRANGE var cs = @" using System; using System.Collections.Generic; namespace Namespace1.Namespace2 { public class Class1 { public class NestedClass1 { public class NestedClass2 { } } } } "; using var assembly = Compile(cs); var typeDefinition = assembly.MainModule.Types .Single(x => x.Name == "Class1") .NestedTypes .Single(x => x.Name == "NestedClass1") .NestedTypes .Single(x => x.Name == "NestedClass2"); var expectedId = new SimpleTypeId( new SimpleTypeId( new SimpleTypeId("Namespace1.Namespace2", "Class1"), "NestedClass1"), "NestedClass2" ); // ACT var actualId = typeDefinition.ToMemberId(); // ASSERT Assert.NotNull(actualId); Assert.Equal(expectedId, actualId); }
public void TryGetDocumentationComments_returns_null_for_type_without_documentation() { // ARRANGE var cs = @" using System; public class Class1 { } "; using var assembly = Compile(cs, out var xmlDocs); var id = new SimpleTypeId(NamespaceId.GlobalNamespace, "Class1"); // ACT var sut = new XmlDocsProvider(assembly, xmlDocs, NullLogger.Instance); var docs = sut.TryGetDocumentationComments(id); // ASSERT Assert.Null(docs); }
private SimpleType(SimpleTypeId id, bool isInteger, int size) { _typeId = id; IsInteger = isInteger; SizeInBytes = size; }