public void MissingInclude_ReportsError()
        {
            var page = PageGenerator.NewPage("IncludePage.html", k_IncludePage_1);

            page.Render();

            CheckErrorCount(1);
            CheckFirstErrorRegex($"Class not found.*TestPage.html");
        }
        public void PageGenerator_WithPathsInDirectories_WithInconsistentDirSeparators_WorkFine(string pageID, string howItsReferencedPath)
        {
            var p1 = PageGenerator.NewPage("Main.html", $"<include src=\"{howItsReferencedPath}\"/>");
            var p2 = PageGenerator.NewPage(pageID, k_TestPage_1);

            PageGenerator.RenderToFile();

            FileAssert.Exists(p1.DestinationHtmlPath);
            FileAssert.Exists(p2.DestinationHtmlPath);

            Assert.AreEqual(k_TestPage_1, p1.RenderedHtml, "Html differ");
        }
        public void PageGenerator_WithIgnoredFiles_IncludesCorrectlyButDoesntCopyIgnoredFileToDestination(string ignoredFilePath)
        {
            var p1 = PageGenerator.NewPage("Include.html", $"<include src=\"{ignoredFilePath}\"/>");
            var p2 = PageGenerator.NewPage(ignoredFilePath, k_TestPage_1);

            PageGenerator.RenderToFile();

            FileAssert.Exists(p1.DestinationHtmlPath);
            FileAssert.DoesNotExist(p2.DestinationHtmlPath);

            Assert.AreEqual(k_TestPage_1, p1.RenderedHtml, "Html differ");
        }
        // id is used to easily distinguish different tests in test runner, since it becomes part of test name
        public void MissingSurrounContent_ReportsError(int id, string surroundPage, string contentPage, int errorCount, string errorRegex)
        {
            var content = PageGenerator.NewPage("SurroundContent.html", contentPage);
            var page    = PageGenerator.NewPage("SurroundPage.html", surroundPage);

            page.Render();

            CheckErrorCount(errorCount);
            if (errorCount > 0)
            {
                CheckFirstErrorRegex(errorRegex);
            }
        }