Inheritance: TinySite.Models.Dynamic.DynamicOutputFile
Ejemplo n.º 1
0
        public void CanLoadComplexMetadata()
        {
            var path = Path.GetFullPath(@"data\test-documents\complex-metadata");
            var outputPath = Path.GetFullPath("output");

            var command = new LoadDocumentsCommand();
            command.Author = new Author();
            command.DocumentsPath = path;
            command.OutputRootPath = outputPath;
            command.RenderedExtensions = new[] { "md" };
            command.RootUrl = "http://www.example.com/";
            command.ApplicationUrl = "/app/sub";
            command.Execute();

            var document = command.Documents.Single();

            dynamic dynamicDoc = new DynamicDocumentFile(document, document, null);

            Assert.Equal("Complex Metadata is Fun!", dynamicDoc.Subtitle);
            Assert.Equal("/item1/", dynamicDoc.ComplexItems[0].Url);
            Assert.Equal("Item 1", dynamicDoc.ComplexItems[0].Text);
            Assert.Equal("bar", dynamicDoc.ComplexItems[0].Zzz.Foo);
            Assert.Equal("/item2/subitem/", dynamicDoc.ComplexItems[1].Url);
            Assert.Equal("Item 2 Subitem", dynamicDoc.ComplexItems[1].Text);
            Assert.Equal("g-value", dynamicDoc.ComplexItems[1].Ttt.Ooo.Ggg);
        }
        public void CanCastDynamicDocumentToDocument()
        {
            var sitePath = @"C:\site\";
            var documentsPath = sitePath + @"documents\";
            var layoutsPath = sitePath + @"layouts\";
            var outputPath = sitePath + @"build\";

            var doc = new DocumentFile(documentsPath + "foo.html.md", documentsPath, outputPath + "foo.html", outputPath, String.Empty, String.Empty, null, null, null);
            var dyn = new DynamicDocumentFile(null, doc, null);

            Assert.Same(doc, dyn.GetDocument());

            var ds = new[] { dyn };
            var s = ds.Select(d => d.GetDocument()).Single();
            Assert.Same(doc, s);
        }