public void VeneerScripts_handles_content_types_with_no_scripts()
        {
            // Arrange
            var service = new Mock<IContentService>();
            var content = new Content
            {
                RefreshDate = DateTime.Now,
                Sections = new List<ContentSection>
                {
                    new ContentSection
                    {
                        Id = "Footer", Html = "<div id='hello' />", Scripts = new List<ContentScript>()
                    }
                }
            };
            service.Setup(x => x.Get(It.IsAny<ContentTypes>())).Returns(content);
            var contentTypes = new List<ContentTypes> { ContentTypes.Footer };

            var model = new VeneerBaseViewModel(service.Object, contentTypes);

            var viewContext = new ViewContext();
            var viewDataContainer = new Mock<IViewDataContainer>();
            var htmlHelper = new HtmlHelper(viewContext, viewDataContainer.Object);

            // Act
            var result = htmlHelper.VeneerScripts(model).ToHtmlString();

            // Assert
            Assert.That(result, Is.Empty);
        }
        public void VeneerScripts_renders_script_tags_for_list_of_JS_files_in_model_for_multiple_content_types()
        {
            // Arrange
            var service = new Mock<IContentService>();
            var headerContent = new Content
            {
                RefreshDate = DateTime.Now,
                Sections = new List<ContentSection>
                {
                    new ContentSection
                    {
                        Id = "HeaderWithMegaNav", Html = "<div id='hello' />", Scripts = new List<ContentScript>
                        {
                            new ContentScript
                             {
                                 Url = new Uri("http://header-scripts.com/all.js")
                             }
                        }
                    }
                }
            };

            var footerContent = new Content
            {
                RefreshDate = DateTime.Now,
                Sections = new List<ContentSection>
                {
                    new ContentSection
                    {
                        Id = "Footer", Html = "<div id='goodbye' />", Scripts = new List<ContentScript>
                        {
                             new ContentScript
                             {
                                 Url = new Uri("http://footer-scripts.com/all.js")
                             }
                        }
                    }
                }
            };
            service.Setup(x => x.Get(ContentTypes.HeaderWithMegaNav)).Returns(headerContent);
            service.Setup(x => x.Get(ContentTypes.Footer)).Returns(footerContent);
            var contentTypes = new List<ContentTypes> { ContentTypes.HeaderWithMegaNav, ContentTypes.Footer };

            var model = new VeneerBaseViewModel(service.Object, contentTypes);

            var viewContext = new ViewContext();
            var viewDataContainer = new Mock<IViewDataContainer>();
            var htmlHelper = new HtmlHelper(viewContext, viewDataContainer.Object);

            // Act
            var result = htmlHelper.VeneerScripts(model).ToHtmlString();

            // Assert
            Assert.That(result, Is.Not.Null.And.Not.Empty);
            Assert.That(result, Is.StringContaining(headerContent.Sections[0].Scripts[0].Url.ToString()));
            Assert.That(result, Is.StringContaining(footerContent.Sections[0].Scripts[0].Url.ToString()));
        }