public void AssociationsToMembersAndTypeParameters() { string text = @" class C1 { } class C2 { } class T { } class C3<TType> { } class A { public C1 c1; public C2 c2 { get; set; } public C3<T> deep; public C3<T> deepProp { get; set; } }"; SyntaxTree tree = SyntaxFactory.ParseSyntaxTree(text); var registry = new DeclarationRegistry(tree); ITypeExtraction a = new ClassExtraction(registry, "A"); List <ITypeExtraction> fields = a.GetReferenced().ToList(); ITypeExtraction c1 = fields.Find(field => field.Name == "C1"); ITypeExtraction c2 = fields.Find(field => field.Name == "C2"); Assert.True(c1 is ClassExtraction); Assert.True(c2 is ClassExtraction); Assert.Equal(2, fields.Where(field => field.Name == "C3").Count()); Assert.Equal(2, fields.Where(field => field.Name == "T").Count()); }
public void DoNotCrashWithUnknownTypesOfProperties() { string code = @" class A { public string Prop { get; } } "; SyntaxTree tree = SyntaxFactory.ParseSyntaxTree(code); var registry = new DeclarationRegistry(tree); var clss = new ClassExtraction(registry, "A"); var properties = clss.GetReferenced(); Assert.Empty(properties); }