public async Task ParseSitemapFileAsync_Cancellation() { using (var reader = LoadResource("basic-sitemap.xml")) { var parser = new XmlSitemapParser(); try { await parser.ParseSitemapAsync(reader, new CancellationToken(true)); } catch (Exception ex) when(ex is TaskCanceledException || ex is OperationCanceledException) { return; } Assert.Fail("Expected exception not thrown"); } }
public async Task ParseIndexFileAsync() { foreach (var culture in CultureInfo.GetCultures(CultureTypes.AllCultures)) { Thread.CurrentThread.CurrentCulture = culture; using (var reader = LoadResource("another-indexed-sitemap.xml")) { var parser = new XmlSitemapParser(); var sitemapFile = await parser.ParseSitemapAsync(reader); Assert.AreEqual(1, sitemapFile.Sitemaps.Count()); var indexEntry = sitemapFile.Sitemaps.FirstOrDefault(); Assert.AreEqual(new Uri("http://localhost/last-text-sitemap.txt"), indexEntry.Location); Assert.AreEqual(new DateTime(2005, 1, 1), indexEntry.LastModified); } } }
public async Task ChangeFrequenciesAreSetCorrectly() { foreach (var culture in CultureInfo.GetCultures(CultureTypes.AllCultures)) { Thread.CurrentThread.CurrentCulture = culture; using (var reader = LoadResource("basic-sitemap.xml")) { var parser = new XmlSitemapParser(); var sitemapFile = await parser.ParseSitemapAsync(reader); var entries = sitemapFile.Urls.Where(e => e.Location.AbsolutePath.Contains("frequency/")); var alwaysEntry = entries.FirstOrDefault(e => e.Location.AbsolutePath.Contains("always")); Assert.IsNotNull(alwaysEntry); Assert.AreEqual(ChangeFrequency.Always, alwaysEntry.ChangeFrequency); var hourlyEntry = entries.FirstOrDefault(e => e.Location.AbsolutePath.Contains("hourly")); Assert.IsNotNull(hourlyEntry); Assert.AreEqual(ChangeFrequency.Hourly, hourlyEntry.ChangeFrequency); var dailyEntry = entries.FirstOrDefault(e => e.Location.AbsolutePath.Contains("daily")); Assert.IsNotNull(dailyEntry); Assert.AreEqual(ChangeFrequency.Daily, dailyEntry.ChangeFrequency); var weeklyEntry = entries.FirstOrDefault(e => e.Location.AbsolutePath.Contains("weekly")); Assert.IsNotNull(weeklyEntry); Assert.AreEqual(ChangeFrequency.Weekly, weeklyEntry.ChangeFrequency); var monthlyEntry = entries.FirstOrDefault(e => e.Location.AbsolutePath.Contains("monthly")); Assert.IsNotNull(monthlyEntry); Assert.AreEqual(ChangeFrequency.Monthly, monthlyEntry.ChangeFrequency); var yearlyEntry = entries.FirstOrDefault(e => e.Location.AbsolutePath.Contains("yearly")); Assert.IsNotNull(yearlyEntry); Assert.AreEqual(ChangeFrequency.Yearly, yearlyEntry.ChangeFrequency); var neverEntry = entries.FirstOrDefault(e => e.Location.AbsolutePath.Contains("never")); Assert.IsNotNull(neverEntry); Assert.AreEqual(ChangeFrequency.Never, neverEntry.ChangeFrequency); } } }
public async Task ParseSitemapFileAsync() { foreach (var culture in CultureInfo.GetCultures(CultureTypes.AllCultures)) { Thread.CurrentThread.CurrentCulture = culture; using (var reader = LoadResource("basic-sitemap.xml")) { var parser = new XmlSitemapParser(); var sitemapFile = await parser.ParseSitemapAsync(reader); Assert.AreEqual(12, sitemapFile.Urls.Count()); var sitemapEntry = sitemapFile.Urls.FirstOrDefault(); Assert.AreEqual(new Uri("http://www.example.com/"), sitemapEntry.Location); Assert.AreEqual(new DateTime(2005, 1, 2), sitemapEntry.LastModified); Assert.AreEqual(0.8, sitemapEntry.Priority); sitemapEntry = sitemapFile.Urls.ElementAt(1); Assert.AreEqual(new Uri("http://www.example.com/catalog?item=12&desc=vacation_hawaii"), sitemapEntry.Location); Assert.AreEqual(0.5, sitemapEntry.Priority); } } }