public void ImportScope()
{
TestPortablePdbModule (module => {
var type = module.GetType ("PdbTarget.Program");
var method = type.GetMethod ("Bar");
var debug_info = method.DebugInformation;
Assert.IsNotNull (debug_info.Scope);
var import = debug_info.Scope.Import;
Assert.IsNotNull (import);
Assert.IsFalse (import.HasTargets);
Assert.IsNotNull (import.Parent);
import = import.Parent;
Assert.IsTrue (import.HasTargets);
Assert.AreEqual (9, import.Targets.Count);
var target = import.Targets [0];
Assert.AreEqual (ImportTargetKind.ImportAlias, target.Kind);
Assert.AreEqual ("XML", target.Alias);
target = import.Targets [1];
Assert.AreEqual (ImportTargetKind.ImportNamespace, target.Kind);
Assert.AreEqual ("System", target.Namespace);
target = import.Targets [2];
Assert.AreEqual (ImportTargetKind.ImportNamespace, target.Kind);
Assert.AreEqual ("System.Collections.Generic", target.Namespace);
target = import.Targets [3];
Assert.AreEqual (ImportTargetKind.ImportNamespace, target.Kind);
Assert.AreEqual ("System.IO", target.Namespace);
target = import.Targets [4];
Assert.AreEqual (ImportTargetKind.ImportNamespace, target.Kind);
Assert.AreEqual ("System.Threading.Tasks", target.Namespace);
target = import.Targets [5];
Assert.AreEqual (ImportTargetKind.ImportNamespaceInAssembly, target.Kind);
Assert.AreEqual ("System.Xml.Resolvers", target.Namespace);
Assert.AreEqual ("System.Xml", target.AssemblyReference.Name);
target = import.Targets [6];
Assert.AreEqual (ImportTargetKind.ImportType, target.Kind);
Assert.AreEqual ("System.Console", target.Type.FullName);
target = import.Targets [7];
Assert.AreEqual (ImportTargetKind.ImportType, target.Kind);
Assert.AreEqual ("System.Math", target.Type.FullName);
target = import.Targets [8];
Assert.AreEqual (ImportTargetKind.DefineTypeAlias, target.Kind);
Assert.AreEqual ("Foo", target.Alias);
Assert.AreEqual ("System.Xml.XmlDocumentType", target.Type.FullName);
Assert.IsNotNull (import.Parent);
import = import.Parent;
Assert.IsTrue (import.HasTargets);
Assert.AreEqual (1, import.Targets.Count);
Assert.IsNull (import.Parent);
target = import.Targets [0];
Assert.AreEqual (ImportTargetKind.DefineAssemblyAlias, target.Kind);
Assert.AreEqual ("XML", target.Alias);
Assert.AreEqual ("System.Xml", target.AssemblyReference.Name);
});
}