public void dequeue_all_assets()
        {
            ClassUnderTest.Require("main.css", "a.css", "b.css");
            ClassUnderTest.Require("main.js", "a.js", "b.js");

            ClassUnderTest.DequeueAssetsToRender().OrderBy(x => x.MimeType.Value)
            .ShouldHaveTheSameElementsAs(
                AssetPlanKey.For(MimeType.Javascript, "a.js", "b.js", "main.js"),
                AssetPlanKey.For(MimeType.Css, "a.css", "b.css", "main.css")
                );
        }
        public void tags_for_plan_should_pull_the_plan_from_the_cache_before_building()
        {
            var tags    = new HtmlTag[0];
            var key     = AssetPlanKey.For(MimeType.Javascript, "a.js");
            var thePlan = new AssetTagPlan(MimeType.Javascript);

            MockFor <IAssetTagPlanCache>().Stub(x => x.PlanFor(key)).Return(thePlan);
            MockFor <IAssetTagBuilder>().Stub(x => x.Build(thePlan)).Return(tags);

            ClassUnderTest.TagsForPlan(key).ShouldBeTheSameAs(tags);
        }
        public void dequeue_assets_should_record_they_are_rendered()
        {
            ClassUnderTest.Require("jquery.js", "jquery.foo.js", "jquery.bar.js", "jquery.baz.js");
            // Dequeue jquery
            ClassUnderTest.DequeueAssets(MimeType.Javascript, "jquery.js")
            .ShouldHaveTheSameElementsAs(AssetPlanKey.For(MimeType.Javascript, "jquery.js"));

            //Now dequeue all
            ClassUnderTest.Require("jquery.js", "jquery.foo.js", "jquery.bar.js", "jquery.baz.js");

            ClassUnderTest.DequeueAssetsToRender()
            .ShouldHaveTheSameElementsAs(
                AssetPlanKey.For(MimeType.Javascript, "jquery.bar.js", "jquery.baz.js", "jquery.foo.js")
                );
        }