示例#1
0
 public void SetupContext()
 {
     DependencyManagerFactory.ClearDependencyCache();
     _finder  = new StubResourceFinder();
     _context = new AssmanContext(ResourceMode.Release);
     _context.AddFinder(_finder);
 }
示例#2
0
        public void SetupContext()
        {
            _finder = new StubResourceFinder();

            _context = AssmanContext.Create(ResourceMode.Release);
            _context.ManageDependencies = true;
            _context.AddFinder(_finder);
            _accessor = new ConsolidatingResourceRegistryAccessor(_context);
        }
示例#3
0
        public void SetupContext()
        {
            _dependencyProvider = new StubDependencyProvider();
            _resourceFinder     = new StubResourceFinder();
            _dependencyCache    = new InMemoryDependencyCache();
            _scriptGroups       = new ResourceGroupManager(ResourceMode.Debug);
            _styleGroups        = new ResourceGroupManager(ResourceMode.Debug);

            _dependencyManager = new DependencyManager(_resourceFinder, _dependencyCache, _scriptGroups, _styleGroups);
            _dependencyManager.MapProvider(".js", _dependencyProvider);
        }
示例#4
0
        private void SetupWithMode(ResourceMode resourceMode)
        {
            _dependencyProvider = new StubDependencyProvider();
            _resourceFinder     = new StubResourceFinder();
            _dependencyCache    = new InMemoryDependencyCache();
            _scriptGroups       = new ResourceGroupManager(resourceMode);
            _styleGroups        = new ResourceGroupManager(resourceMode);

            _dependencyManager = new DependencyManager(new ResourceModeFilteringFinder(resourceMode, _resourceFinder), _dependencyCache, _scriptGroups, _styleGroups,
                                                       resourceMode);
            _dependencyManager.MapProvider(".js", _dependencyProvider);
        }
示例#5
0
        public void WhenConsolidatedUrlMatchesPatternOfAGroup_ItIsNotIncludedInTheConsolidatedResource()
        {
            var jquery      = StubResource.WithPath("~/scripts/jquery.js");
            var component   = StubResource.WithPath("~/scripts/component.js");
            var core        = StubResource.WithPath("~/scripts/core.js");
            var otherscript = StubResource.WithPath("~/scripts/otherscript.js");

            var finder = new StubResourceFinder();

            finder.AddResources(jquery, component, core, otherscript);

            var group1 = new ResourceGroup("~/scripts/core.js", new IResource[]
            {
                jquery,
                component
            });
            var group2 = new ResourceGroup("~/scripts/everything-else.js", new IResource[]
            {
                core,
                otherscript
            });

            _context.AddFinder(finder);
            var group1Template = new StubResourceGroupTemplate(group1)
            {
                ResourceType = ResourceType.Script
            };
            var group2Template = new StubResourceGroupTemplate(group2)
            {
                ResourceType = ResourceType.Script
            };

            _context.ScriptGroups.Add(group1Template);
            _context.ScriptGroups.Add(group2Template);
            var consolidator           = _context.GetConsolidator();
            var preConsolidationReport = consolidator.CompileAll((resource) => { });

            var group2Consolidated = preConsolidationReport.Scripts.Groups.Where(g => g.ConsolidatedUrl == "~/scripts/everything-else.js").Single();

            group2Consolidated.Resources.CountShouldEqual(1);
            group2Consolidated.Resources[0].ShouldEqual("~/scripts/otherscript.js");
        }
示例#6
0
        public void Init()
        {
            _finder = new StubResourceFinder();
            _finder.CreateResource(myScript);
            _finder.CreateResource(mySecondScript);
            _finder.CreateResource(excludedScript);

            _dependencyProvider = new StubDependencyProvider();
            DependencyManagerFactory.ClearDependencyCache();

            _instance = AssmanContext.Create(ResourceMode.Debug);
            _instance.ConsolidateScripts        = true;
            _instance.ConfigurationLastModified = DateTime.MinValue;
            _instance.AddFinder(_finder);
            _instance.MapExtensionToDependencyProvider(".js", _dependencyProvider);
            _groupElement = new ScriptGroupElement();
            _groupElement.ConsolidatedUrl = consolidatedScript;
            _groupElement.Exclude.AddPattern(excludedScript);
            _instance.ScriptGroups.Add(_groupElement);
        }
示例#7
0
        public void FindResourcesCombinesResultsOfChildren()
        {
            StubResourceFinder finder1 = new StubResourceFinder();

            finder1.AddResource("~/myfile1.js", "content1");
            finder1.AddResource("~/myfile2.js", "content2");
            _instance.AddFinder(finder1);

            StubResourceFinder finder2 = new StubResourceFinder();

            finder2.AddResource("assembly://MyAssembly/MyNamespace.Myfile1.js", "content3");
            _instance.AddFinder(finder2);


            var resources = _instance.FindResources(ResourceType.Script).ToList();

            Assert.That(resources, Is.Not.Null);
            Assert.That(resources.Count, Is.EqualTo(3));
            Assert.That(resources[0].VirtualPath, Is.EqualTo("~/myfile1.js"));
            Assert.That(resources[1].VirtualPath, Is.EqualTo("~/myfile2.js"));
            Assert.That(resources[2].VirtualPath, Is.EqualTo("assembly://MyAssembly/MyNamespace.Myfile1.js"));
        }
示例#8
0
        public void Init()
        {
            _finder = new StubResourceFinder();
            _finder.CreateResource(myScript);
            _finder.CreateResource(mySecondScript);
            _finder.CreateResource(excludedScript);

            _dependencyProvider = new StubDependencyProvider();
            DependencyManagerFactory.ClearDependencyCache();

            _context = AssmanContext.Create(ResourceMode.Debug);
            _context.ConsolidateScripts        = true;
            _context.ConfigurationLastModified = DateTime.MinValue;
            _context.AddFinder(_finder);
            _context.MapExtensionToDependencyProvider(".js", _dependencyProvider);
            _groupElement = new ScriptGroupElement();
            _groupElement.ConsolidatedUrl = consolidatedScript;
            _groupElement.Exclude.AddPattern(excludedScript);
            _context.ScriptGroups.Add(_groupElement);

            _registry = new ConsolidatingResourceRegistry(new ResourceRequirementCollection(), "Default", _context.ScriptPathResolver, new ConfiguredVersioningStrategy(() => _context.Version));
        }
示例#9
0
        public void ResourceCanBeInMultipleGroupsIfExplicitlyPrevented()
        {
            var jquery     = StubResource.WithPath("~/scripts/jquery.js");
            var componentA = StubResource.WithPath("~/scripts/componentA.js");
            var componentB = StubResource.WithPath("~/scripts/componentB.js");
            var finder     = new StubResourceFinder();

            finder.AddResources(jquery, componentA, componentB);
            _context.AddFinder(finder);
            _context.MutuallyExclusiveGroups = false;

            var pageAGroup = new ResourceGroup("~/scripts/compiled/pageA.js", new[]
            {
                jquery,
                componentA
            });

            _context.ScriptGroups.Add(new StubResourceGroupTemplate(pageAGroup)
            {
                ResourceType = ResourceType.Script
            });
            var pageBGroup = new ResourceGroup("~/scripts/compiled/pageB.js", new[]
            {
                jquery,
                componentB
            });

            _context.ScriptGroups.Add(new StubResourceGroupTemplate(pageBGroup)
            {
                ResourceType = ResourceType.Script
            });
            var report = CompileAll();

            var pageAGroupReport = report.Scripts.Groups.Single(g => g.ConsolidatedUrl == "~/scripts/compiled/pageA.js");
            var pageBGroupReport = report.Scripts.Groups.Single(g => g.ConsolidatedUrl == "~/scripts/compiled/pageB.js");

            pageAGroupReport.Resources.CountShouldEqual(2);
            pageBGroupReport.Resources.CountShouldEqual(2);
        }
示例#10
0
        public void ResourceCanOnlyBeInOneGroupByDefault()
        {
            var jquery     = StubResource.WithPath("~/scripts/jquery.js");
            var componentA = StubResource.WithPath("~/scripts/componentA.js");
            var componentB = StubResource.WithPath("~/scripts/componentB.js");
            var finder     = new StubResourceFinder();

            finder.AddResources(jquery, componentA, componentB);
            _context.AddFinder(finder);

            var pageAGroup = new ResourceGroup("~/scripts/compiled/pageA.js", new[]
            {
                jquery,
                componentA
            });

            _context.ScriptGroups.Add(new StubResourceGroupTemplate(pageAGroup)
            {
                ResourceType = ResourceType.Script
            });
            var pageBGroup = new ResourceGroup("~/scripts/compiled/pageB.js", new[]
            {
                jquery,
                componentB
            });

            _context.ScriptGroups.Add(new StubResourceGroupTemplate(pageBGroup)
            {
                ResourceType = ResourceType.Script
            });
            var report = CompileAll();

            var pageAGroupReport = report.Scripts.Groups.Single(g => g.ConsolidatedUrl == "~/scripts/compiled/pageA.js");
            var pageBGroupReport = report.Scripts.Groups.Single(g => g.ConsolidatedUrl == "~/scripts/compiled/pageB.js");

            pageAGroupReport.Resources.CountShouldEqual(2);
            pageBGroupReport.Resources.CountShouldEqual(1);
        }