public void Returns_resolved_modules() { var moduleA = new UnresolvedModule("module-a", new[] { CreateScript("module-a", "foo") }, null, false); var moduleB = new UnresolvedModule("module-b", new[] { CreateScript("module-b", "bar", "../module-a/foo") }, null, false); var modules = UnresolvedModule.ResolveAll(new[] { moduleA, moduleB }).ToArray(); modules[0].Path.ShouldEqual("module-a"); modules[1].Path.ShouldEqual("module-b"); modules[1].References[0].ShouldEqual("module-a"); }
public override ModuleContainer Build() { var moduleBuilder = new UnresolvedScriptModuleBuilder(rootDirectory); var unresolvedModules = relativeModuleDirectories.Select(x => moduleBuilder.Build(x.Item1, x.Item2)); var modules = UnresolvedModule.ResolveAll(unresolvedModules); return(new ModuleContainer( modules, storage, textWriter => new ScriptModuleWriter(textWriter, rootDirectory, LoadFile, coffeeScriptCompiler) )); }
public override ModuleContainer Build() { var moduleBuilder = new UnresolvedStylesheetModuleBuilder(rootDirectory, applicationRoot); var unresolvedModules = relativeModuleDirectories.Select(x => moduleBuilder.Build(x.Item1, x.Item2)); var modules = UnresolvedModule.ResolveAll(unresolvedModules); return(new ModuleContainer( modules, storage, textWriter => new StylesheetModuleWriter(textWriter, rootDirectory, applicationRoot, LoadFile) )); }
public void Throws_useful_exception_when_resource_not_found() { var moduleA = new UnresolvedModule("module-a", new[] { CreateScript("module-a", "foo") }, null, false); var moduleB = new UnresolvedModule("module-b", new[] { CreateScript("module-b", "bar", "../module-a/missing") }, null, false); var exception = Assert.Throws <FileNotFoundException>(delegate { UnresolvedModule.ResolveAll(new[] { moduleA, moduleB }).ToArray(); }); exception.FileName.ShouldEqual("module-a/missing.js"); exception.Message.ShouldEqual( "The file \"module-a/missing.js\" is referenced by \"module-b/bar.js\", but cannot be found. " + "Either add \"module-a/missing.js\" or change the reference(s) to a file that exists."); }