示例#1
0
 public void ReadableTypeOutputFactory_GetTypeDeclaration_InheritedGenericClass()
 {
     ReadableTypeOutputFactory.GetTypeDeclarationString(typeof(SomeStringList))
     .Should().NotBeNullOrWhiteSpace()
     .And.BeEquivalentTo("public class CloudNimble.Breakdance.Tests.Assemblies.SampleApis.SomeStringList : System.Collections.Generic.List`1<string>, ICollection, IEnumerable, " +
                         "IList, ICollection`1, IEnumerable`1, IList`1, IReadOnlyCollection`1, IReadOnlyList`1");
 }
示例#2
0
        public void ReadableTypeOutputFactory_GetCustomAttributes_ExtensionMethod()
        {
            var members = typeof(SomeExtensionMethod).GetMembers(PublicApiHelpers.VisibleMembers).ToList();

            members.Should().NotBeEmpty();

            var attributes = ReadableTypeOutputFactory.GetCustomAttributesList(members[0].GetCustomAttributes(true));

            attributes.Should().NotBeEmpty();
            attributes[0].Should().BeEquivalentTo("[System.Runtime.CompilerServices.ExtensionAttribute]");
        }
示例#3
0
        public void ReadableTypeOutputFactory_GetFieldInfo_SomeStaticClass()
        {
            var type    = typeof(SomeStaticClass);
            var members = type.GetMembers(PublicApiHelpers.VisibleMembers).ToList();

            members.Should().NotBeEmpty();

            var fieldInfo   = members.OfType <FieldInfo>().Where(c => !c.Name.Contains("_")).FirstOrDefault();
            var eventString = ReadableTypeOutputFactory.GetFieldInfoString(type, fieldInfo);

            eventString.Should().BeNullOrWhiteSpace("SomeStaticClass only has private backing fields.");
        }
示例#4
0
        public void ReadableTypeOutputFactory_GetEventInfo_SomeStaticClass()
        {
            var type    = typeof(SomeStaticClass);
            var members = type.GetMembers(PublicApiHelpers.VisibleMembers).ToList();

            members.Should().NotBeEmpty();

            var eventInfo   = members.OfType <EventInfo>().FirstOrDefault();
            var eventString = ReadableTypeOutputFactory.GetEventInfoString(type, eventInfo);

            eventString.Should().BeEquivalentTo("CloudNimble.Breakdance.Tests.Assemblies.SampleApis.SomeStaticClass+SomeEventHandler SomeEvent { public static add; public static remove; }");
        }
示例#5
0
        public void ReadableTypeOutputFactory_GetConstructorInfo_SomeGenericClass()
        {
            var type    = typeof(SomeGenericClass <string>);
            var members = type.GetMembers(PublicApiHelpers.VisibleMembers).ToList();

            members.Should().NotBeEmpty();

            var constructorInfo   = members.OfType <ConstructorInfo>().FirstOrDefault();
            var constructorString = ReadableTypeOutputFactory.GetConstructorInfoString(type, constructorInfo);

            constructorString.Should().BeEquivalentTo("public SomeGenericClass`1()");
        }
示例#6
0
        public void ReadableTypeOutputFactory_GetConstructorInfo_SomeStaticClass()
        {
            var type    = typeof(SomeStaticClass);
            var members = type.GetMembers(PublicApiHelpers.VisibleMembers).ToList();

            members.Should().NotBeEmpty();

            var constructorInfo   = members.OfType <ConstructorInfo>().FirstOrDefault();
            var constructorString = ReadableTypeOutputFactory.GetConstructorInfoString(type, constructorInfo);

            constructorString.Should().BeNullOrWhiteSpace("Static constructors cannot have parameters, so the API surface never changes.");
        }
示例#7
0
        public void ReadableTypeOutputFactory_GetMethodInfo_SomeGenericClass()
        {
            var type    = typeof(SomeGenericClass <string>);
            var members = type.GetMembers(PublicApiHelpers.VisibleMembers).ToList();

            members.Should().NotBeEmpty();

            var methodInfo  = members.OfType <MethodInfo>().Where(c => !c.Name.Contains("_")).FirstOrDefault();
            var eventString = ReadableTypeOutputFactory.GetMethodInfoString(type, methodInfo);

            eventString.Should().BeEquivalentTo("public virtual string ToString()");
        }
示例#8
0
        public void ReadableTypeOutputFactory_GetCustomAttributes_RegularMethod_NoAttributes()
        {
            var type    = typeof(SomeGenericClass <string>);
            var members = type.GetMembers(PublicApiHelpers.VisibleMembers).ToList();

            members.Should().NotBeEmpty();

            var methodInfo = members.OfType <MethodInfo>().Where(c => !c.Name.Contains("_")).FirstOrDefault();

            var attributes = ReadableTypeOutputFactory.GetCustomAttributesList(methodInfo.GetCustomAttributes(true));

            attributes.Should().BeEmpty("We have not added any custom attributes to our ToString override.");
        }
示例#9
0
        public void ReadableTypeOutputFactory_GetTypeDeclaration_GenericClass()
        {
            ReadableTypeOutputFactory.GetTypeDeclarationString(typeof(SomeGenericClass <string>))
            .Should().NotBeNullOrWhiteSpace()
#if NETCOREAPP3_1
            .And.BeEquivalentTo("public class CloudNimble.Breakdance.Tests.Assemblies.SampleApis.SomeGenericClass`1<System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e>");
示例#10
0
 public void ReadableTypeOutputFactory_GetTypeDeclaration_StaticClass()
 {
     ReadableTypeOutputFactory.GetTypeDeclarationString(typeof(SomeStaticClass))
     .Should().NotBeNullOrWhiteSpace()
     .And.BeEquivalentTo("public sealed class CloudNimble.Breakdance.Tests.Assemblies.SampleApis.SomeStaticClass");
 }