public void GetHtmlHeadElements_PlacesStyleSheetImportRulesBeforeStyleSheetElements()
        {
            var libraryElement1 = MockRepository.GenerateStub <StyleSheetElement>();

            _htmlHeadAppender.RegisterHeadElement("libraryElement1", libraryElement1, HtmlHeadAppender.Priority.Library);

            var libraryRule1 = new StyleSheetImportRule(new StaticResourceUrl("url.css"));

            _htmlHeadAppender.RegisterHeadElement("libraryRule1", libraryRule1, HtmlHeadAppender.Priority.Library);

            var libraryElement2 = MockRepository.GenerateStub <StyleSheetElement>();

            _htmlHeadAppender.RegisterHeadElement("libraryElement2", libraryElement2, HtmlHeadAppender.Priority.Library);

            var libraryRule2 = new StyleSheetImportRule(new StaticResourceUrl("url.css"));

            _htmlHeadAppender.RegisterHeadElement("libraryRule2", libraryRule2, HtmlHeadAppender.Priority.Library);

            var libraryElement3 = MockRepository.GenerateStub <StyleSheetElement>();

            _htmlHeadAppender.RegisterHeadElement("libraryElement3", libraryElement3, HtmlHeadAppender.Priority.Library);

            var userControlRule1 = new StyleSheetImportRule(new StaticResourceUrl("url.css"));

            _htmlHeadAppender.RegisterHeadElement("userControlRule1", userControlRule1, HtmlHeadAppender.Priority.UserControl);

            var userControlElement1 = MockRepository.GenerateStub <StyleSheetElement>();

            _htmlHeadAppender.RegisterHeadElement("userControlElement1", userControlElement1, HtmlHeadAppender.Priority.UserControl);

            var htmlHeadElements = _htmlHeadAppender.GetHtmlHeadElements().ToArray();

            Assert.That(htmlHeadElements.Length, Is.EqualTo(4));

            var libraryBlock1 = (StyleSheetBlock)htmlHeadElements[0];

            Assert.That(libraryBlock1.StyleSheetElements.Count, Is.EqualTo(2));
            Assert.That(libraryBlock1.StyleSheetElements[0], Is.SameAs(libraryRule1));
            Assert.That(libraryBlock1.StyleSheetElements[1], Is.SameAs(libraryRule2));

            var libraryBlock2 = (StyleSheetBlock)htmlHeadElements[1];

            Assert.That(libraryBlock2.StyleSheetElements.Count, Is.EqualTo(3));
            Assert.That(libraryBlock2.StyleSheetElements[0], Is.SameAs(libraryElement1));
            Assert.That(libraryBlock2.StyleSheetElements[1], Is.SameAs(libraryElement2));
            Assert.That(libraryBlock2.StyleSheetElements[2], Is.SameAs(libraryElement3));

            var userControlBlock1 = (StyleSheetBlock)htmlHeadElements[2];

            Assert.That(userControlBlock1.StyleSheetElements.Count, Is.EqualTo(1));
            Assert.That(userControlBlock1.StyleSheetElements[0], Is.SameAs(userControlRule1));

            var userControlBlock2 = (StyleSheetBlock)htmlHeadElements[3];

            Assert.That(userControlBlock2.StyleSheetElements.Count, Is.EqualTo(1));
            Assert.That(userControlBlock2.StyleSheetElements[0], Is.SameAs(userControlElement1));
        }
        public void Render()
        {
            IResourceUrl resourceUrl = MockRepository.GenerateStub <IResourceUrl>();

            resourceUrl.Stub(stub => stub.GetUrl()).Return("myStylesheetUrl.js");

            var javaScriptInclude = new StyleSheetImportRule(resourceUrl);

            javaScriptInclude.Render(_htmlHelper.Writer);

            Assert.That(_htmlHelper.GetDocumentText(), Is.EqualTo("@import url(\"myStylesheetUrl.js\");\r\n"));
        }