public void Populate_a_template_file_with_info_from_a_destination() { var destination = new Destination { AssetId = "1", AtlasId = "2", Title = "title", TitleAscii = "title2", IntroductionOverview = "Intro" }; var template = File.ReadAllText("Resources/template_file.txt"); var templateLoader = Substitute.For<ITemplateLoader>(); templateLoader.Template.Returns(template); var taxonomyParser = Substitute.For<ITaxonomyParser>(); taxonomyParser.GetParent(Arg.Any<string>()).Returns(new Destination()); taxonomyParser.GetChildren(Arg.Any<string>()).Returns(new List<Destination>()); var writer = new HTMLFileWriter(templateLoader, taxonomyParser); var output = writer.Generate(destination); Assert.That(output, Is .StringContaining("<h1>Lonely Planet: title</h1>") .And.ContainsSubstring(@"<div class=""inner"">Intro</div>") .And.Not.ContainsSubstring("{NAVIGATION}")); var assert = templateLoader.Received().Template; }
public void Write_navigation_for_a_destination() { const string parentAtlasId = "3"; const string parentTitle = "ParentDestination"; const string childAtlasId1 = "4"; const string childTitle1 = "ChildDestination1"; const string childAtlasId2 = "5"; const string childTitle2 = "ChildDestination2"; var destination = new Destination { AssetId = "1", AtlasId = "2", Title = "title", TitleAscii = "title2", IntroductionOverview = "Intro" }; var taxonomyParser = Substitute.For<ITaxonomyParser>(); taxonomyParser.GetParent(destination.AtlasId).Returns(new Destination { AtlasId = parentAtlasId, Title = parentTitle}); taxonomyParser.GetChildren(destination.AtlasId).Returns(new List<Destination> { new Destination { AtlasId = childAtlasId1, Title = childTitle1 }, new Destination { AtlasId = childAtlasId2, Title = childTitle2 } }); var templateLoader = Substitute.For<ITemplateLoader>(); var writer = new HTMLFileWriter(templateLoader, taxonomyParser); var navHTML = writer.GetNavigation(destination.AtlasId); Assert.That(navHTML, Is .StringContaining(@"<ul><li><a href=""./" + parentAtlasId + @".html"">" + parentTitle + "</a></li></ul>") .And.ContainsSubstring(@"<ul><li><a href=""./" + childAtlasId1 + @".html"">" + childTitle1 + @"</a></li><li><a href=""./" + childAtlasId2 + @".html"">" + childTitle2 + "</a></li></ul>")); }
public static void Main(string[] args) { var options = GetOptions(args); if(!options.RequiredOptionIsMissing) { try { using (var destFs = new FileStream(options.DestinationsFile, FileMode.Open)) { using(var taxFs = new FileStream(options.TaxonomyFile, FileMode.Open)) { var destinationParser = new DestinationParser(destFs); var templateLoader = new TemplateLoader(); var taxonomyParser = new TaxonomyParser(taxFs); var htmlFileWriter = new HTMLFileWriter(templateLoader, taxonomyParser); WriteFiles(destinationParser, htmlFileWriter, options); Console.WriteLine("HTML Generation finished. Wrote files to {0}", options.OutputFolder); } } } catch (Exception e) { Console.WriteLine("ERROR: {0}", e.Message); } } Console.WriteLine("Press any key to exit..."); Console.Read(); }