public void Then_The_Urls_Are_Built(CmsContent source) { var actual = new SiteMapPageModel().Build(source); actual.MainContent.Pages.Should().NotBeNullOrEmpty(); actual.MainContent.Pages[0].Title.Should().NotBeNullOrWhiteSpace(); actual.MainContent.Pages[0].Hub.Should().NotBeNullOrWhiteSpace(); actual.MainContent.Pages[0].Slug.Should().NotBeNullOrWhiteSpace(); }
public async Task <GetSiteMapQueryResult> Handle(GetSiteMapQuery request, CancellationToken cancellationToken) { var article = await _reliableCacheStorageService.GetData <CmsContent>(new GetSiteMapRequest(request.ContentType), $"SiteMap_{request.ContentType}", _contentService.HasContent); var pageModel = new SiteMapPageModel().Build(article); return(new GetSiteMapQueryResult { MapModel = pageModel }); }
public void Then_If_Total_Is_Zero_Items_Returned_Then_Null_Returned(CmsContent source) { //Arrange source.Total = 0; //Act var actual = new SiteMapPageModel().Build(source); //Assert actual.Should().BeNull(); }
public void Then_If_No_Items_Returned_Then_Null_Returned() { //Arrange var source = new CmsContent { Items = new List <Item>(), Total = 1 }; //Act var actual = new SiteMapPageModel().Build(source); //Assert actual.Should().BeNull(); }
public async Task Then_The_Api_Is_Called_And_The_SiteMap_Is_Returned( GetSiteMapQuery query, CmsContent apiResponse, SiteMapPageModel response, [Frozen] Mock <IContentService> contentService, [Frozen] Mock <IReliableCacheStorageService> service, GetSiteMapQueryHandler handler) { contentService.Setup(x => x.HasContent(It.IsAny <ApiResponse <CmsContent> >())).Returns(true); service.Setup(o => o.GetData <CmsContent>( It.Is <GetSiteMapRequest>(c => c.GetUrl.Contains($"entries?content_type={query.ContentType}&include=2")), $"SiteMap_{query.ContentType}", contentService.Object.HasContent)) .ReturnsAsync(apiResponse); var actual = await handler.Handle(query, CancellationToken.None); actual.MapModel.Should().BeEquivalentTo(response.Build(apiResponse)); }
public async Task <IActionResult> GetFullSiteMapAsync(CancellationToken cancellationToken = default) { var landingPages = await _mediator.Send(new GetSiteMapQuery { ContentType = "landingPage" }, cancellationToken); var articles = await _mediator.Send(new GetSiteMapQuery { ContentType = "article" }, cancellationToken); var hubs = await _mediator.Send(new GetSiteMapQuery { ContentType = "hub" }, cancellationToken); var siteMapModel = new SiteMapPageModel { MainContent = new SiteMapPageModel.SiteMapContent() }; siteMapModel.MainContent.Pages.AddRange(landingPages.MapModel.MainContent.Pages); siteMapModel.MainContent.Pages.AddRange(articles.MapModel.MainContent.Pages); siteMapModel.MainContent.Pages.AddRange(hubs.MapModel.MainContent.Pages); return(Ok(new GetSiteMapResponse { Map = siteMapModel })); }