public void UrlSerialiser_Serialise_ProvidingEverythingFormatsCorrectly() { float priority = 0.195f; ChangeFrequency cf = ChangeFrequency.Weekly; DateTime dt = new DateTime(2014, 12, 05, 07, 55, 0, DateTimeKind.Utc); var serialiser = new UrlSetSerialiser(); var url = new Url("123"); url.Priority = priority; url.ChangeFrequency = cf; url.LastModified = dt; var xUrl = serialiser.serialiseUrl(url); Assert.IsNotNull(xUrl); Assert.AreEqual(4, xUrl.Elements().Count()); var xPriority = xUrl.Element(UrlSetSerialiser.SitemapNamespace + UrlSetSerialiser.UrlPriorityElementName); Assert.IsNotNull(xPriority); Assert.AreEqual("0.2", xPriority.Value); var xChange = xUrl.Element(UrlSetSerialiser.SitemapNamespace + UrlSetSerialiser.UrlChangeFrequencyElementName); Assert.IsNotNull(xChange); Assert.AreEqual("weekly", xChange.Value); var xMod = xUrl.Element(UrlSetSerialiser.SitemapNamespace + UrlSetSerialiser.UrlModifiedElementName); Assert.IsNotNull(xMod); Assert.AreEqual("2014-12-05T07:55:00Z", xMod.Value); }
public void UrlSetSerialiser_Serialise_EmptyUrlSetGivesValidEmptyDocument() { var urlSet = new UrlSet(); var serialiser = new UrlSetSerialiser(); XDocument result = serialiser.Serialise(urlSet); Assert.IsNotNull(result, "Serialise() should always return a valid XML document"); Assert.AreEqual("<urlset xmlns:xhtml=\"http://www.w3.org/1999/xhtml\" xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\" />", result.ToString(SaveOptions.DisableFormatting)); }
public void AltUrlSerialiser_Serialise_AlternateGeneratesCorrectElement() { var serialiser = new UrlSetSerialiser(); AlternateUrl url = new AlternateUrl(); url.Language = "l"; url.Url = "u"; var xAlt = serialiser.serialiseAlternate(url); Assert.IsNotNull(xAlt); Assert.AreEqual("<link rel=\"alternate\" hreflang=\"l\" href=\"u\" xmlns=\"http://www.w3.org/1999/xhtml\" />", xAlt.ToString(System.Xml.Linq.SaveOptions.None)); }
public void UrlSerialiser_Serialise_DefaultUrlReturnsOnlyLocation() { string exampleUrl = "http://blah/"; var serialiser = new UrlSetSerialiser(); var url = new Url(exampleUrl); var xUrl = serialiser.serialiseUrl(url); Assert.IsNotNull(xUrl); Assert.AreEqual(1, xUrl.Elements().Count()); var xLoc = xUrl.Element(UrlSetSerialiser.SitemapNamespace + UrlSetSerialiser.UrlLocationElemenName); Assert.IsNotNull(xLoc); Assert.AreEqual(exampleUrl, xLoc.Value); }
public void UrlSetSerialiser_Serialise_MultipleUrlsGivesCorrectDocument() { var urlSet = new UrlSet(); for (int i = 0; i < 10; i++) { urlSet.Add(new Url(i.ToString())); } var serialiser = new UrlSetSerialiser(); XDocument result = serialiser.Serialise(urlSet); Assert.IsNotNull(result, "Serialise() should always return a valid XML document"); var set = result.Document.Element(UrlSetSerialiser.SitemapNamespace + UrlSetSerialiser.UrlSetElementName); var urls = set.Elements(UrlSetSerialiser.SitemapNamespace + UrlSetSerialiser.UrlElementName); Assert.AreEqual(10, urls.Count()); }
public void UrlSerialiser_Serialise_ProvidingChangeFrequencyFormatsCorrectly() { ChangeFrequency cf = ChangeFrequency.Hourly; var serialiser = new UrlSetSerialiser(); var url = new Url("123"); url.ChangeFrequency = cf; var xUrl = serialiser.serialiseUrl(url); Assert.IsNotNull(xUrl); Assert.AreEqual(2, xUrl.Elements().Count()); var xChange = xUrl.Element(UrlSetSerialiser.SitemapNamespace + UrlSetSerialiser.UrlChangeFrequencyElementName); Assert.IsNotNull(xChange); Assert.AreEqual("hourly", xChange.Value); }
public void UrlSerialiser_Serialise_ProvidingLastModifiedDateWithTimeFormatsCorrectly() { DateTime dt = new DateTime(2015, 02, 27, 13, 12, 11, DateTimeKind.Utc); var serialiser = new UrlSetSerialiser(); var url = new Url("123"); url.LastModified = dt; var xUrl = serialiser.serialiseUrl(url); Assert.IsNotNull(xUrl); Assert.AreEqual(2, xUrl.Elements().Count()); var xMod = xUrl.Element(UrlSetSerialiser.SitemapNamespace + UrlSetSerialiser.UrlModifiedElementName); Assert.IsNotNull(xMod); Assert.AreEqual("2015-02-27T13:12:11Z", xMod.Value); }
public void UrlSerialiser_Serialise_ProvidingLastModifiedDateOnlyFormatsCorrectly() { DateTime dt = new DateTime(2015, 01, 25); var serialiser = new UrlSetSerialiser(); var url = new Url("123"); url.LastModified = dt; var xUrl = serialiser.serialiseUrl(url); Assert.IsNotNull(xUrl); Assert.AreEqual(2, xUrl.Elements().Count()); var xMod = xUrl.Element(UrlSetSerialiser.SitemapNamespace + UrlSetSerialiser.UrlModifiedElementName); Assert.IsNotNull(xMod); Assert.AreEqual("2015-01-25", xMod.Value); }
public void UrlSerialiser_Serialise_ProvidingPriorityFormatsCorrectly() { float priority = 0.7124f; var serialiser = new UrlSetSerialiser(); var url = new Url("123"); url.Priority = priority; var xUrl = serialiser.serialiseUrl(url); Assert.IsNotNull(xUrl); Assert.AreEqual(2, xUrl.Elements().Count()); var xPriority = xUrl.Element(UrlSetSerialiser.SitemapNamespace + UrlSetSerialiser.UrlPriorityElementName); Assert.IsNotNull(xPriority); Assert.AreEqual("0.7", xPriority.Value); }
public void UrlSetSerialiser_Serialise_SingleUrlGivesValidDocument() { var urlSet = new UrlSet(); urlSet.Add(new Url("123")); var serialiser = new UrlSetSerialiser(); XDocument result = serialiser.Serialise(urlSet); Assert.IsNotNull(result, "Serialise() should always return a valid XML document"); var set = result.Document.Element(UrlSetSerialiser.SitemapNamespace + UrlSetSerialiser.UrlSetElementName); var urls = set.Elements(UrlSetSerialiser.SitemapNamespace + UrlSetSerialiser.UrlElementName); Assert.AreEqual(1, urls.Count()); var loc = urls.First().Element(UrlSetSerialiser.SitemapNamespace + UrlSetSerialiser.UrlLocationElemenName); Assert.AreEqual("123", loc.Value); }
public void UrlSetSerialiser_Serialise_OverallDocumentHasCorrectFormat() { var urlSet = new UrlSet(); var url = new Url("http://www.com/") { ChangeFrequency = ChangeFrequency.Daily }; url.AlternateUrls.Add(new AlternateUrl() { Url = "http://www.com/en/", Language = "EN-GB" }); urlSet.Add(url); var serialiser = new UrlSetSerialiser(); var xDoc = serialiser.Serialise(urlSet); string s = xDoc.ToString(SaveOptions.OmitDuplicateNamespaces | SaveOptions.DisableFormatting); Assert.AreEqual("<urlset xmlns:xhtml=\"http://www.w3.org/1999/xhtml\" xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\"><url><loc>http://www.com/</loc><changefreq>daily</changefreq><xhtml:link rel=\"alternate\" hreflang=\"EN-GB\" href=\"http://www.com/en/\" /></url></urlset>", s); }
public void UrlSerialiser_Serialise_AlternateURLsFormatCorrectly() { var serialiser = new UrlSetSerialiser(); var url = new Url("123"); url.AlternateUrls.Add(new AlternateUrl() { Language = "lng", Url = "url" }); var xUrl = serialiser.serialiseUrl(url); Assert.IsNotNull(xUrl); var xLinks = xUrl.Elements(UrlSetSerialiser.XhtmlNamespace + "link"); Assert.AreEqual(1, xLinks.Count()); var xLink = xLinks.First(); Assert.AreEqual("lng", xLink.Attribute("hreflang").Value); Assert.AreEqual("url", xLink.Attribute("href").Value); }
public void UrlSerialiser_Serialise_NullUrlThrows() { var serialiser = new UrlSetSerialiser(); serialiser.serialiseUrl(null); }
public void UrlSetSerialiser_Serialise_ThrowsWithNullSource() { var serialiser = new UrlSetSerialiser(); serialiser.Serialise(null); }
public void AltUrlSerialiser_Serialise_NullAlternativeThrows() { var serialiser = new UrlSetSerialiser(); serialiser.serialiseAlternate(null); }