public void WhenExternalModuleReferencedTwice_ThenContainerOnlyHasTheExternalModuleOnce() { var urlModifier = Mock.Of <IUrlModifier>(); var externalBundle = new ExternalScriptBundle("http://external.com/api.js") { Processor = Mock.Of <IBundleProcessor <ScriptBundle> >() }; var bundle1 = new ScriptBundle("~/test1") { Processor = Mock.Of <IBundleProcessor <ScriptBundle> >() }; bundle1.Renderer = new ConstantHtmlRenderer <ScriptBundle>("", urlModifier); bundle1.AddReference("http://external.com/api.js"); var bundle2 = new ScriptBundle("~/test2") { Processor = Mock.Of <IBundleProcessor <ScriptBundle> >() }; bundle2.Renderer = new ConstantHtmlRenderer <ScriptBundle>("", urlModifier); bundle2.AddReference("http://external.com/api.js"); var bundles = new[] { bundle1, bundle2 }; var factory = new Mock <IBundleFactory <Bundle> >(); factory.Setup(f => f.CreateBundle("http://external.com/api.js", It.IsAny <IEnumerable <IFile> >(), It.IsAny <BundleDescriptor>())) .Returns(externalBundle); Settings.BundleFactories[typeof(ScriptBundle)] = factory.Object; var builder = CreateFactory(bundles); var container = builder.CreateBundleContainer(); container.Bundles.Count().ShouldEqual(3); }
public void ManifestUrlEqualsBundleUrl() { var bundle = new ExternalScriptBundle("http://example.com/"); var builder = new ExternalScriptBundleManifestBuilder(); var manifest = builder.BuildManifest(bundle); manifest.Url.ShouldEqual(bundle.Url); }
public void ManifestFallbackConditionEqualsBundleFallbackCondition() { var bundle = new ExternalScriptBundle("http://example.com/", "~/path", "FALLBACK-CONDITION"); var builder = new ExternalScriptBundleManifestBuilder(); var manifest = builder.BuildManifest(bundle); manifest.FallbackCondition.ShouldEqual(bundle.FallbackCondition); }
public void SortBundlesToleratesExternalBundlesWhichAreNotInTheContainer() { var externalBundle1 = new ExternalScriptBundle("http://test.com/test1.js"); var externalBundle2 = new ExternalScriptBundle("http://test.com/test2.js"); var container = new BundleContainer(Enumerable.Empty <ScriptBundle>()); var results = container.IncludeReferencesAndSortBundles(new[] { externalBundle1, externalBundle2 }); results.SequenceEqual(new[] { externalBundle1, externalBundle2 }).ShouldBeTrue(); }
public void ManifestConditionEqualsBundleCondition() { var bundle = new ExternalScriptBundle("http://example.com/") { Condition = "CONDITION" }; var builder = new ExternalScriptBundleManifestBuilder(); var manifest = builder.BuildManifest(bundle); manifest.Condition.ShouldEqual(bundle.Condition); }
public void ManifestUrlEqualsBundleUrl() { var bundle = new ExternalScriptBundle("http://example.com/"); var builder = new ExternalScriptBundleManifestBuilder(); var manifest = builder.BuildManifest(bundle); manifest.Url.ShouldEqual(bundle.ExternalUrl); }
public void SortBundlesToleratesExternalBundlesWhichAreNotInTheContainer() { var externalBundle1 = new ExternalScriptBundle("http://test.com/test1.js"); var externalBundle2 = new ExternalScriptBundle("http://test.com/test2.js"); var collection = CreateBundleCollection(Enumerable.Empty<Bundle>()); collection.BuildReferences(); var results = collection.SortBundles(new[] { externalBundle1, externalBundle2 }); results.SequenceEqual(new[] { externalBundle1, externalBundle2 }).ShouldBeTrue(); }
public void GetReferencedBundleUrlsReturnExternalUrlForExternalScriptBundle() { var bundle = new ExternalScriptBundle("http://example.com/", "~/test", "!test"); bundle.Assets.Add(new StubAsset()); referenceBuilder.Setup(b => b.GetBundles(null)).Returns(new[] { bundle }); var urls = helper.GetReferencedBundleUrls <ScriptBundle>(null).ToArray(); urls.ShouldEqual(new[] { "http://example.com/" }); }
public ExternalScriptBundleManifest_Tests() { manifest = new ExternalScriptBundleManifest { Path = "~", Hash = new byte[0], Url = "http://example.com/", Assets = { new AssetManifest { Path = "~/asset-a" }, new AssetManifest { Path = "~/asset-b" } } }; createdBundle = (ExternalScriptBundle)manifest.CreateBundle(); }
public ExternalScriptBundleManifest_Tests() { settings = new CassetteSettings(""); manifest = new ExternalScriptBundleManifest { Path = "~", Hash = new byte[0], Url = "http://example.com/", Html = () => "EXPECTED-HTML", Assets = { new AssetManifest { Path = "~/asset-a" }, new AssetManifest { Path = "~/asset-b" } } }; createdBundle = (ExternalScriptBundle)manifest.CreateBundle(settings); }