Пример #1
0
        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());
        }
Пример #2
0
        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);
        }