private static async Task GenerateXml(StringBuilder output, GetSiteMapQueryResult <SiteMap> result, IOptions <CampaignConfiguration> configuration) { using var xml = XmlWriter.Create(output, new XmlWriterSettings { Indent = true, Async = true }); await xml.WriteStartDocumentAsync(); xml.WriteStartElement("urlset", "http://www.sitemaps.org/schemas/sitemap/0.9"); var baseUrl = configuration.Value.OuterApi.BaseUrl; foreach (var url in result.Page.Content.Urls) { xml.WriteStartElement("url"); xml.WriteElementString("loc", string.Compare(url.PageType, "hub", StringComparison.OrdinalIgnoreCase) == 0 ? $"{baseUrl}{url.Slug}" : $"{baseUrl}{url.Hub}/{url.Slug}"); await xml.WriteEndElementAsync(); } await xml.WriteEndElementAsync(); await xml.FlushAsync(); }
public async Task The_Site_Map_Is_Returned( GetSiteMapQueryResult <SiteMap> mediatorResult, [Frozen] Mock <IMediator> mockMediator, [Greedy] HomeController controller) { mockMediator.Setup(o => o.Send(It.IsAny <GetSiteMapQuery>(), It.IsAny <CancellationToken>())) .ReturnsAsync(mediatorResult); var controllerResult = await controller.SiteMap() as ContentResult; controllerResult.Should().NotBeNull(); controllerResult.ContentType.Should().Be("application/xml"); controllerResult.Content.Should().NotBeNullOrWhiteSpace(); }
public async Task Then_The_Site_Map_Is_Returned( GetSiteMapQueryResult mediatorResult, [Frozen] Mock <IMediator> mockMediator, [Greedy] SiteMapController controller) { mockMediator .Setup(mediator => mediator.Send(It.IsAny <GetSiteMapQuery>(), It.IsAny <CancellationToken>())) .ReturnsAsync(mediatorResult); var controllerResult = await controller.GetFullSiteMapAsync(CancellationToken.None) as OkObjectResult; var actualResult = controllerResult.Value as GetSiteMapResponse; Assert.IsNotNull(actualResult); actualResult.Map.MainContent.Pages.Should().NotBeNull(); }