예제 #1
0
        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);
        }
예제 #2
0
        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));
        }