public void EnumerateSymbolsInCompilation()
{
string file1 = "public class Animal { public virtual void MakeSound() { } }";
string file2 = "class Cat : Animal { public override void MakeSound() { } }";
Compilation compilation = Compilation.Create("test")
.AddSyntaxTrees(SyntaxTree.ParseText(file1), SyntaxTree.ParseText(file2))
.AddReferences(MetadataReference.CreateAssemblyReference("mscorlib"));
NamespaceSymbol globalNamespace = compilation.SourceModule.GlobalNamespace;
StringBuilder sb = new StringBuilder();
EnumSymbols(globalNamespace, symbol => sb.AppendLine(symbol.ToString()));
Assert.AreEqual(@"<global namespace>
Animal
Animal.Animal()
Animal.MakeSound()
Cat
Cat.Cat()
Cat.MakeSound()
", sb.ToString());
}