public void GivenBundleWithTwoAssets_WhenRenderBundle_ThenScriptsElementReturnedForEachAsset()
        {
            var bundle = new ScriptBundle("~/test");
            bundle.Assets.Add(Mock.Of<IAsset>());
            bundle.Assets.Add(Mock.Of<IAsset>());

            var urlGenerator = new Mock<IUrlGenerator>();
            var assetUrls = new Queue<string>(new[] { "asset1", "asset2" });
            urlGenerator.Setup(g => g.CreateAssetUrl(It.IsAny<IAsset>()))
                        .Returns(assetUrls.Dequeue);

            var renderer = new DebugScriptBundleHtmlRenderer(urlGenerator.Object);

            var html = renderer.Render(bundle);

            html.ShouldEqual(
                "<script src=\"asset1\" type=\"text/javascript\"></script>" +
                Environment.NewLine +
                "<script src=\"asset2\" type=\"text/javascript\"></script>"
            );
        }
        public void GivenScriptNotIECondition_WhenRender_ThenConditionalCommentWrapsScriptsButLeavesScriptsVisibleToAllBrowsers()
        {
            var bundle = new ScriptBundle("~/test") { Condition = "(gt IE 9)|!(IE)" };
            bundle.Assets.Add(Mock.Of<IAsset>());
            bundle.Assets.Add(Mock.Of<IAsset>());

            var urlGenerator = new Mock<IUrlGenerator>();
            var assetUrls = new Queue<string>(new[] { "asset1", "asset2" });
            urlGenerator.Setup(g => g.CreateAssetUrl(It.IsAny<IAsset>()))
                        .Returns(assetUrls.Dequeue);

            var renderer = new DebugScriptBundleHtmlRenderer(urlGenerator.Object);

            var html = renderer.Render(bundle);

            html.ShouldEqual(
                "<!--[if " + bundle.Condition + "]><!-->" + Environment.NewLine +
                "<script src=\"asset1\" type=\"text/javascript\"></script>" + Environment.NewLine +
                "<script src=\"asset2\" type=\"text/javascript\"></script>" + Environment.NewLine +
                "<!-- <![endif]-->"
            );
        }
        public void GivenScriptCondition_WhenRender_ThenConditionalCommentWrapsScripts()
        {
            var bundle = new ScriptBundle("~/test") {Condition = "CONDITION"};
            bundle.Assets.Add(new StubAsset());
            bundle.Assets.Add(new StubAsset());

            var urlGenerator = new Mock<IUrlGenerator>();
            var assetUrls = new Queue<string>(new[] { "asset1", "asset2" });
            urlGenerator.Setup(g => g.CreateAssetUrl(It.IsAny<IAsset>()))
                        .Returns(assetUrls.Dequeue);

            var renderer = new DebugScriptBundleHtmlRenderer(urlGenerator.Object);

            var html = renderer.Render(bundle);

            html.ShouldEqual(
                "<!--[if CONDITION]>" + Environment.NewLine +
                "<script src=\"asset1\" type=\"text/javascript\"></script>" + Environment.NewLine +
                "<script src=\"asset2\" type=\"text/javascript\"></script>" + Environment.NewLine +
                "<![endif]-->"
            );
        }