public void SavePreConsolidationInfo(PreCompilationReport preCompilationReport) { var xmlWriterSettings = new XmlWriterSettings { CloseOutput = true, Indent = true }; using(var writer = XmlWriter.Create(_fileAccess.OpenWriter(_filePath), xmlWriterSettings)) { using(writer.Document()) { using (writer.Element("PreCompilationReport", version => preCompilationReport.Version)) { WriteResourceReport(writer, "scripts", preCompilationReport.Scripts); WriteResourceReport(writer, "stylesheets", preCompilationReport.Stylesheets); using(writer.Element("dependencies")) { foreach (var resourceWithDependency in preCompilationReport.Dependencies) { using (writer.Element("resource", path => resourceWithDependency.ResourcePath)) { foreach (var dependency in resourceWithDependency.Dependencies) { using (writer.Element("dependency", path => dependency)) {} } } } } } } } }
public void WhenPreConsolidatedReportIsLoaded_ConsolidatedUrlsAreCachedAsThemselvesSoGroupsCanBeIncludedDirectly() { var groupTemplate = new Mock<IResourceGroupTemplate>(); _context.ScriptGroups.Add(groupTemplate.Object); var preConsolidationReport = new PreCompilationReport(); var scriptGroup = new PreCompiledResourceGroup { ConsolidatedUrl = "~/scripts/consolidated/common.js", Resources = new List<string> { "~/scripts/myscript.js" } }; preConsolidationReport.Scripts.Groups.Add(scriptGroup); _context.LoadPreCompilationReport(preConsolidationReport); var resolvedUrl = _context.ScriptPathResolver.GetMatchingGroupUrls("~/scripts/consolidated/common.js").Single(); resolvedUrl.ShouldEqual("~/scripts/consolidated/common.js"); //verify that the group template was not looked at (that proves the value came from the prepopulated cache) string consolidatedUrl; groupTemplate.Verify(t => t.TryGetConsolidatedUrl(It.IsAny<string>(), It.IsAny<ResourceMode>(), out consolidatedUrl), Times.Never()); }
public void SavePreConsolidationInfo(PreCompilationReport preCompilationReport) { var xmlWriterSettings = new XmlWriterSettings { CloseOutput = true, Indent = true }; using (var writer = XmlWriter.Create(_fileAccess.OpenWriter(_filePath), xmlWriterSettings)) { using (writer.Document()) { using (writer.Element("PreCompilationReport", version => preCompilationReport.Version)) { WriteResourceReport(writer, "scripts", preCompilationReport.Scripts); WriteResourceReport(writer, "stylesheets", preCompilationReport.Stylesheets); using (writer.Element("dependencies")) { foreach (var resourceWithDependency in preCompilationReport.Dependencies) { using (writer.Element("resource", path => resourceWithDependency.ResourcePath)) { foreach (var dependency in resourceWithDependency.Dependencies) { using (writer.Element("dependency", path => dependency)) {} } } } } } } } }
public bool TryGetPreConsolidationInfo(out PreCompilationReport preCompilationReport) { if (!_fileAccess.Exists(_filePath)) { preCompilationReport = null; return false; } preCompilationReport = new PreCompilationReport(); XDocument document; using (var reader = _fileAccess.OpenReader(_filePath)) { document = XDocument.Load(reader); } preCompilationReport.Version = (string) document.Root.Attribute("version"); preCompilationReport.Scripts = CollectResourceReport(document.Root.Element("scripts")); preCompilationReport.Stylesheets = CollectResourceReport(document.Root.Element("stylesheets")); preCompilationReport.Dependencies = CollectDependencies(document.Root.Element("dependencies")).ToList(); return true; }
public bool TryGetPreConsolidationInfo(out PreCompilationReport preCompilationReport) { if (!_fileAccess.Exists(_filePath)) { preCompilationReport = null; return(false); } preCompilationReport = new PreCompilationReport(); XDocument document; using (var reader = _fileAccess.OpenReader(_filePath)) { document = XDocument.Load(reader); } preCompilationReport.Version = (string)document.Root.Attribute("version"); preCompilationReport.Scripts = CollectResourceReport(document.Root.Element("scripts")); preCompilationReport.Stylesheets = CollectResourceReport(document.Root.Element("stylesheets")); preCompilationReport.Dependencies = CollectDependencies(document.Root.Element("dependencies")).ToList(); return(true); }
public void AfterPreConsolidatedReportIsLoaded_WhenUrlForFileThatDoesNotExistButWhosePatternMatchesGroup_ItsGroupUrlCanStillBeResolved() { var group = new ScriptGroupElement(); group.ConsolidatedUrl = "~/scripts/consolidated/common.js"; group.Include.AddPattern("~/scripts/.+"); _context.ScriptGroups.Add(group); var preConsolidationReport = new PreCompilationReport(); var scriptGroup = new PreCompiledResourceGroup { ConsolidatedUrl = "~/scripts/consolidated/common.js", Resources = new List<string> { "~/scripts/myscript.js" } }; preConsolidationReport.Scripts.Groups.Add(scriptGroup); _context.LoadPreCompilationReport(preConsolidationReport); var resolvedUrl = _context.ScriptPathResolver.GetMatchingGroupUrls("~/scripts/bogusscript.js").Single(); resolvedUrl.ShouldEqual("~/scripts/consolidated/common.js"); }
public void WhenPreConsolidatedReportIsLoaded_DependenciesAreCachedSoThatDependencyProviderIsNotCalled() { var preConsolidationReport = new PreCompilationReport { Dependencies = new List<PreCompiledResourceDependencies> { new PreCompiledResourceDependencies { ResourcePath = "~/scripts/myscript.js", Dependencies = new List<string> { "~/scripts/jquery.js" } } } }; _context.LoadPreCompilationReport(preConsolidationReport); var dependencies = _context.GetResourceDependencies("~/scripts/myscript.js"); dependencies.CountShouldEqual(1); dependencies.First().ShouldEqual("~/scripts/jquery.js"); _dependencyProvider.Verify(p => p.GetDependencies(It.IsAny<IResource>()), Times.Never()); }
public void SavePreConsolidationInfo(PreCompilationReport preCompilationReport) { }
public void WhenPreConsolidationReportIsLoaded_VersionIsSet() { var preConsolidationReport = new PreCompilationReport { Version = "311" }; _context.LoadPreCompilationReport(preConsolidationReport); _context.Version.ShouldEqual("311"); }
public void WhenPreConsolidationReportIsLoaded_PreConsolidatedFlagIsSetToTrue() { var preConsolidationReport = new PreCompilationReport(); _context.LoadPreCompilationReport(preConsolidationReport); _context.PreCompiled.ShouldBeTrue(); }
public void WhenReportIsSaved_ItCanBeRetrievedWithIdenticalData() { var report = new PreCompilationReport { Scripts = new PreCompiledResourceReport { Groups = new List <PreCompiledResourceGroup> { new PreCompiledResourceGroup { ConsolidatedUrl = "~/scripts/consolidated/common.js", Resources = new List <string> { "~/scripts/jquery.js", "~/scripts/myscript1.js" } }, new PreCompiledResourceGroup { ConsolidatedUrl = "~/scripts/consolidated/search.js", Resources = new List <string> { "~/Views/Search/Index.js" } } }, SingleResources = new List <PreCompiledSingleResource> { new PreCompiledSingleResource { OriginalPath = "~/unconsolidatedfile1.js", CompiledPath = "~/unconsolidatedfile1.min.js" }, new PreCompiledSingleResource { OriginalPath = "~/unconsolidatedfile2.js", CompiledPath = "~/unconsolidatedfile2.min.js" } } }, Stylesheets = new PreCompiledResourceReport { Groups = new List <PreCompiledResourceGroup> { new PreCompiledResourceGroup { ConsolidatedUrl = "~/Content/consolidated.css", Resources = new List <string> { "~/Content/Site.css", "~/Views/Search/Search.css" } } } }, Dependencies = new List <PreCompiledResourceDependencies> { new PreCompiledResourceDependencies { ResourcePath = "~/scripts/myscript1.js", Dependencies = new List <string> { "~/scripts/jquery.js" } }, new PreCompiledResourceDependencies { ResourcePath = "~/Views/Search/Index.js", Dependencies = new List <string> { "~/scripts/jquery.js", "~/scripts/myscript1.js" } } }, Version = "321" }; _persister.SavePreConsolidationInfo(report); PreCompilationReport deserializedReport; _persister.TryGetPreConsolidationInfo(out deserializedReport).ShouldBeTrue(); ResourceReportShouldBeEqual(report.Scripts, deserializedReport.Scripts); ResourceReportShouldBeEqual(report.Stylesheets, deserializedReport.Stylesheets); ResourceDependenciesShouldBeEqual(report.Dependencies, deserializedReport.Dependencies); report.Version.ShouldEqual(deserializedReport.Version); }
public bool TryGetPreConsolidationInfo(out PreCompilationReport preCompilationReport) { preCompilationReport = null; return false; }
public void WhenReportIsSaved_ItCanBeRetrievedWithIdenticalData() { var report = new PreCompilationReport { Scripts = new PreCompiledResourceReport { Groups = new List<PreCompiledResourceGroup> { new PreCompiledResourceGroup { ConsolidatedUrl = "~/scripts/consolidated/common.js", Resources = new List<string> { "~/scripts/jquery.js", "~/scripts/myscript1.js" } }, new PreCompiledResourceGroup { ConsolidatedUrl = "~/scripts/consolidated/search.js", Resources = new List<string> { "~/Views/Search/Index.js" } } }, SingleResources = new List<PreCompiledSingleResource> { new PreCompiledSingleResource { OriginalPath = "~/unconsolidatedfile1.js", CompiledPath = "~/unconsolidatedfile1.min.js" }, new PreCompiledSingleResource { OriginalPath = "~/unconsolidatedfile2.js", CompiledPath = "~/unconsolidatedfile2.min.js" } } }, Stylesheets = new PreCompiledResourceReport { Groups = new List<PreCompiledResourceGroup> { new PreCompiledResourceGroup { ConsolidatedUrl = "~/Content/consolidated.css", Resources = new List<string> { "~/Content/Site.css", "~/Views/Search/Search.css" } } } }, Dependencies = new List<PreCompiledResourceDependencies> { new PreCompiledResourceDependencies { ResourcePath = "~/scripts/myscript1.js", Dependencies = new List<string> { "~/scripts/jquery.js" } }, new PreCompiledResourceDependencies { ResourcePath = "~/Views/Search/Index.js", Dependencies = new List<string> { "~/scripts/jquery.js", "~/scripts/myscript1.js" } } }, Version = "321" }; _persister.SavePreConsolidationInfo(report); PreCompilationReport deserializedReport; _persister.TryGetPreConsolidationInfo(out deserializedReport).ShouldBeTrue(); ResourceReportShouldBeEqual(report.Scripts, deserializedReport.Scripts); ResourceReportShouldBeEqual(report.Stylesheets, deserializedReport.Stylesheets); ResourceDependenciesShouldBeEqual(report.Dependencies, deserializedReport.Dependencies); report.Version.ShouldEqual(deserializedReport.Version); }
public void LoadPreCompilationReport(PreCompilationReport preCompilationReport) { _scriptGroups = new PreCompiledGroupManager(preCompilationReport.Scripts, _scriptGroups); _styleGroups = new PreCompiledGroupManager(preCompilationReport.Stylesheets, _styleGroups); _dependencyManager.SetCache(new PreCompiledDependencyCache(preCompilationReport.Dependencies)); _scriptPathResolver = new ResourcePathResolver(_scriptGroups, _dependencyManager, _finder); _stylePathResolver = new ResourcePathResolver(_styleGroups, _dependencyManager, _finder); Version = preCompilationReport.Version; PreCompiled = true; }
public void SavePreConsolidationReport(PreCompilationReport report) { var preConsolidationPersister = CompiledFilePersister.ForWebDirectory(RootFilePath); preConsolidationPersister.SavePreConsolidationInfo(report); }
public bool TryGetPreConsolidationInfo(out PreCompilationReport preCompilationReport) { preCompilationReport = null; return(false); }