public void GetBookTemplatePaths_NonBasicBookOriginal_BasicBookOfferedSecond()
{
using (var temp = new TemporaryFolder("NonBasicBookOriginal"))
{
var original = new TemplateBookTestFolder(temp.FolderPath, "originalTemplate");
var basic = new TemplateBookTestFolder(temp.FolderPath, "basic book");
var alphabet = new TemplateBookTestFolder(temp.FolderPath, "alphabet");
var zebra = new TemplateBookTestFolder(temp.FolderPath, "zebra");
var pathToCurrentTemplateHtml = original.HtmlPath;
var pathToBasicBook = basic.HtmlPath;
var pathToAlphabet = alphabet.HtmlPath;
var pathToZebra = zebra.HtmlPath;
var sourceBookPaths = new[]
{
pathToAlphabet,
"c:\\installation dir\\templates\\some book that is not a template at all.html",
pathToBasicBook,
pathToCurrentTemplateHtml,
pathToZebra
};
var result = PageTemplatesApi.GetBookTemplatePaths(pathToCurrentTemplateHtml, sourceBookPaths);
Assert.AreEqual(4, result.Count);
Assert.That(result[0].ToLowerInvariant(), Is.EqualTo(pathToCurrentTemplateHtml.ToLowerInvariant()),
"Template used to make the book should be first in the list.");
Assert.That(result[1].ToLowerInvariant(), Is.EqualTo(pathToBasicBook.ToLowerInvariant()),
"Basic Book should move ahead of Alphabet to be second in list when it is not first.");
Assert.That(result[2].ToLowerInvariant(), Is.EqualTo(pathToAlphabet.ToLowerInvariant()), "Alphabet should be third.");
Assert.That(result[3].ToLowerInvariant(), Is.EqualTo(pathToZebra.ToLowerInvariant()), "Zebra should be last.");
if (!Platform.IsWindows)
Assert.That(result[0], Is.EqualTo(pathToCurrentTemplateHtml), "Should not change case on Linux");
}
}