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>"));
        }
Beispiel #3
0
        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();
        }