public void GeneratorSetsItemProperties() { var feed = new SyndicationFeed { Title = "Test feed", Description = "Test description", SiteUrl = new Uri("http://localhost/"), FeedUrl = new Uri("http://localhost/rss/"), Items = new List <SyndicationItem> { new SyndicationItem { Title = "Test item", Author = new Author { Name = "Test person", Email = "*****@*****.**", Link = new Uri("http://localhost/authors/test-person") }, Body = "Test body" } } }; var generator = new Rss20SyndicationGenerator(); var result = generator.Generate(feed); var item = result.Descendants("item").FirstOrDefault(); Assert.NotNull(item); Assert.Equal("Test item", item.Element("title")?.Value); Assert.Equal("Test feed", item.Element("source")?.Value); Assert.Equal("[email protected] (Test person)", item.Element("author")?.Value); Assert.Equal("http://localhost/rss/", item.Element("source")?.Attribute("url")?.Value); }
public void GeneratorSetsChannelProperties() { var feed = new SyndicationFeed { Title = "Test feed", Description = "Test description", SiteUrl = new Uri("http://localhost/"), Image = new Uri("http://localhost/rss.png"), TimeToLive = TimeSpan.FromMinutes(30), Language = new CultureInfo("en-UK"), Categories = new List <string>() { "Articles", "News" }, FeedUrl = new Uri("http://localhost/rss/") }; var generator = new Rss20SyndicationGenerator(); var result = generator.Generate(feed); XNamespace nsAtom = "http://www.w3.org/2005/Atom"; var channel = result.Element("rss").Element("channel"); Assert.Equal("Test feed", channel.Element("title")?.Value); Assert.Equal("Test description", channel.Element("description")?.Value); Assert.Equal("http://localhost/", channel.Element("link")?.Value); Assert.Equal("http://localhost/rss.png", channel.Element("image")?.Value); Assert.Equal("30", channel.Element("ttl")?.Value); Assert.Equal("en-UK", channel.Element("language")?.Value); Assert.Equal("Articles / News", channel.Element("category")?.Value); Assert.Equal("http://localhost/rss/", channel.Element(nsAtom + "link")?.Attribute("href")?.Value); }
public void GeneratorThrowsOnMissingSiteUrl() { var feed = new SyndicationFeed { Title = "Test feed", Description = "Test description" }; var generator = new Rss20SyndicationGenerator(); Assert.Throws <ArgumentException>(() => generator.Generate(feed)); }
public void GeneratorThrowsOnMissingDescription() { var feed = new SyndicationFeed { Title = "Test feed", SiteUrl = new Uri("http://localhost/") }; var generator = new Rss20SyndicationGenerator(); Assert.Throws <ArgumentException>(() => generator.Generate(feed)); }