public void TestInternalReferencesOutsideModuleAreNotAllowed() { var content = "import * as Foo from \"./DoesNotExist.dsc\";"; var parser = new Parser(); var sourceFile = parser.ParseSourceFileContent(m_fakeMainFile.ToString(PathTable), content); var referenceResolver = new ModuleReferenceResolver(PathTable); var module = ModuleDefinition.CreateModuleDefinitionWithExplicitReferencesWithEmptyQualifierSpace( ModuleDescriptor.CreateForTesting("Test"), m_fakeMainFile, m_fakeModuleConfigFile, new[] { m_fakeMainFile }, PathTable); Failure[] failures; var result = referenceResolver.TryUpdateAllInternalModuleReferences(sourceFile, module, out failures); XAssert.IsFalse(result); XAssert.AreEqual(1, failures.Length); XAssert.IsTrue(failures[0] is SpecNotUnderAModuleFailure); }
public void TestUpdateInternalModuleReferences(string internalReference) { var content = "import * as Foo from \"" + internalReference + "\";"; // We create a module with a fake main file at the root and one project under SubDir var projectDir = AbsolutePath.Create(PathTable, A("c", "SubDir", "project.dsc")); var parser = new Parser(); var sourceFile = parser.ParseSourceFileContent(projectDir.ToString(PathTable), content); var referenceResolver = new ModuleReferenceResolver(PathTable); var module = ModuleDefinition.CreateModuleDefinitionWithExplicitReferencesWithEmptyQualifierSpace( ModuleDescriptor.CreateForTesting("Test"), m_fakeMainFile, m_fakeModuleConfigFile, new[] { m_fakeMainFile, projectDir }, PathTable); Failure[] failures; var result = referenceResolver.TryUpdateAllInternalModuleReferences(sourceFile, module, out failures); XAssert.IsTrue(result); XAssert.IsTrue(sourceFile.ResolvedModules.ContainsKey(internalReference)); }