コード例 #1
0
ファイル: GetAttributes.cs プロジェクト: piotrstenke/Durian
        public void CanReturnMultipleAttributes()
        {
            Data.MemberData data       = GetMember("[Test][Other]class Test { }");
            AttributeData[] attributes = data.GetAttributes().ToArray();

            Assert.True(
                attributes.Length == 2 &&
                attributes.Any(a => SymbolEqualityComparer.Default.Equals(a.AttributeClass, Compilation.CurrentCompilation.GetTypeByMetadataName("TestAttribute") !)) &&
                attributes.Any(a => SymbolEqualityComparer.Default.Equals(a.AttributeClass, Compilation.CurrentCompilation.GetTypeByMetadataName("OtherAttribute") !))
                );
        }
コード例 #2
0
        /// <summary>
        /// Create a new query object around a collected .NET member data.
        /// </summary>
        /// <param name="memberData">The collected .NET member data.</param>
        public MemberData(Data.MemberData memberData)
        {
            if (memberData.Constructors != null)
            {
                Constructors = new List <IReadOnlyList <string> >(memberData.Constructors);
            }

            if (memberData.Fields != null)
            {
                Fields = CreateFieldTable(memberData.Fields);
            }

            if (memberData.Properties != null)
            {
                Properties = CreatePropertyTable(memberData.Properties);
            }

            if (memberData.Methods != null)
            {
                Methods = CreateMethodTable(memberData.Methods);
            }

            if (memberData.Events != null)
            {
                Events = CreateEventTable(memberData.Events);
            }

            if (memberData.NestedTypes != null)
            {
                NestedTypes = CreateNestedTypeTable(memberData.NestedTypes);
            }

            if (memberData.Indexers != null)
            {
                Indexers = CreateIndexerList(memberData.Indexers);
            }
        }
コード例 #3
0
ファイル: MemberData.cs プロジェクト: yazici/PSScriptAnalyzer
        /// <summary>
        /// Create a new query object around a collected .NET member data.
        /// </summary>
        /// <param name="memberData">The collected .NET member data.</param>
        public MemberData(Data.MemberData memberData)
        {
            if (memberData.Constructors != null)
            {
                Constructors = memberData.Constructors;
            }

            if (memberData.Fields != null)
            {
                _fields = new Lazy <IReadOnlyDictionary <string, FieldData> >(() => CreateFieldTable(memberData.Fields));
            }

            if (memberData.Properties != null)
            {
                _properties = new Lazy <IReadOnlyDictionary <string, PropertyData> >(() => CreatePropertyTable(memberData.Properties));
            }

            if (memberData.Methods != null)
            {
                _methods = new Lazy <IReadOnlyDictionary <string, MethodData> >(() => CreateMethodTable(memberData.Methods));
            }

            if (memberData.Events != null)
            {
                _events = new Lazy <IReadOnlyDictionary <string, EventData> >(() => CreateEventTable(memberData.Events));
            }

            if (memberData.NestedTypes != null)
            {
                _nestedtypes = new Lazy <IReadOnlyDictionary <string, TypeData> >(() => CreateNestedTypeTable(memberData.NestedTypes));
            }

            if (memberData.Indexers != null)
            {
                _indexers = new Lazy <IReadOnlyList <IndexerData> >(() => CreateIndexerList(memberData.Indexers));
            }
        }
コード例 #4
0
 public void ReturnsTypesInParentFirstOrder()
 {
     Data.MemberData data            = GetMember("class Test { class Parent { class Child { } } }", 2);
     ITypeData[]     containingTypes = data.GetContainingTypes().ToArray();
     Assert.True(containingTypes.Length == 2 && containingTypes[0].Symbol.Name == "Test" && containingTypes[1].Symbol.Name == "Parent");
 }
コード例 #5
0
 public void ReturnsEmpty_When_IsNotNestedType()
 {
     Data.MemberData data            = GetMember("class Test { }");
     ITypeData[]     containingTypes = data.GetContainingTypes().ToArray();
     Assert.True(containingTypes.Length == 0);
 }
コード例 #6
0
 public void CanReturnSingleType()
 {
     Data.MemberData data            = GetMember("class Parent { class Child { } }", 1);
     ITypeData[]     containingTypes = data.GetContainingTypes().ToArray();
     Assert.True(containingTypes.Length == 1 && containingTypes[0].Symbol.Name == "Parent");
 }
コード例 #7
0
 public void CanReturnMultipleTypes()
 {
     Data.MemberData data            = GetMember("class Test { class Parent { class Child { } } }", 2);
     ITypeData[]     containingTypes = data.GetContainingTypes().ToArray();
     Assert.True(containingTypes.Length == 2 && containingTypes.Any(t => t.Symbol.Name == "Parent") && containingTypes.Any(t => t.Symbol.Name == "Test"));
 }
コード例 #8
0
 public void ReturnsNamespacesInParentFirstOrder()
 {
     Data.MemberData    data = GetMember("namespace N1.N2 { class Parent { } }", 1);
     INamespaceSymbol[] containingNamespaces = data.GetContainingNamespaces().ToArray();
     Assert.True(containingNamespaces.Length == 2 && containingNamespaces[0].Name == "N1" && containingNamespaces[1].Name == "N2");
 }
コード例 #9
0
 public void ReturnsEmpty_When_IsNotInNamespace()
 {
     Data.MemberData    data = GetMember("class Test { }");
     INamespaceSymbol[] containingNamespaces = data.GetContainingNamespaces().ToArray();
     Assert.True(containingNamespaces.Length == 0);
 }
コード例 #10
0
 public void CanReturnSingleNamespace()
 {
     Data.MemberData    data = GetMember("namespace N1 { class Parent { } }", 1);
     INamespaceSymbol[] containingNamespaces = data.GetContainingNamespaces().ToArray();
     Assert.True(containingNamespaces.Length == 1 && containingNamespaces[0].Name == "N1");
 }
コード例 #11
0
 public void CanReturnMultipleNamespaces()
 {
     Data.MemberData    data = GetMember("namespace N1.N2 { class Parent { } }", 1);
     INamespaceSymbol[] containingNamespaces = data.GetContainingNamespaces().ToArray();
     Assert.True(containingNamespaces.Length == 2 && containingNamespaces.Any(t => t.Name == "N1") && containingNamespaces.Any(t => t.Name == "N2"));
 }
コード例 #12
0
ファイル: GetAttributes.cs プロジェクト: piotrstenke/Durian
 public void ReturnsEmpty_When_HasNoAttributes()
 {
     Data.MemberData data = GetMember("class Test { }");
     Assert.Empty(data.GetAttributes());
 }
コード例 #13
0
ファイル: GetAttributes.cs プロジェクト: piotrstenke/Durian
 public void CanReturnSingleAttribute()
 {
     Data.MemberData data       = GetMember("[Test]class Test { }");
     AttributeData[] attributes = data.GetAttributes().ToArray();
     Assert.True(attributes.Length == 1 && SymbolEqualityComparer.Default.Equals(attributes[0].AttributeClass, Compilation.CurrentCompilation.GetTypeByMetadataName("TestAttribute") !));
 }