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();
        }
Пример #5
0
        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));
        }
Пример #6
0
        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
            }));
        }