public async Task Then_The_Api_Is_Called_With_The_Valid_Request_Parameters_And_The_Landing_Page_Is_Returned(
            GetPreviewLandingPageQuery query,
            GetMenuQueryResult menuResult,
            MenuPageModel.MenuPageContent menuContent,
            CmsContent apiResponse,
            HubPageModel response,
            GetBannerQueryResult bannerResult,
            BannerPageModel bannerContent,
            [Frozen] Mock <IContentfulPreviewApiClient <ContentfulPreviewApiConfiguration> > apiClient,
            [Frozen] Mock <IMediator> mediator,
            GetPreviewLandingPageQueryHandler handler)
        {
            apiClient.Setup(o =>
                            o.Get <CmsContent>(
                                It.Is <GetLandingPageRequest>(c =>
                                                              c.GetUrl.Contains($"fields.hubType={query.Hub.ToTitleCase()}&fields.slug={query.Slug}"))))
            .ReturnsAsync(apiResponse);

            mediator.SetupMenu(menuResult, menuContent);
            mediator.SetupBanners(bannerResult, bannerContent);

            var actual = await handler.Handle(query, CancellationToken.None);

            actual.PageModel.Should().BeEquivalentTo(response.Build(apiResponse, menuContent, bannerContent));
        }
Exemplo n.º 2
0
        public async Task Then_The_Api_Is_Called_With_The_Valid_Request_Parameters_And_The_Article_Is_Returned(
            GetArticleByHubAndSlugQuery query,
            GetMenuQueryResult menuResult,
            GetBannerQueryResult bannerResult,
            MenuPageModel.MenuPageContent menuContent,
            BannerPageModel bannerContent,
            CmsContent apiResponse,
            CmsPageModel response,
            [Frozen] Mock <IContentService> contentService,
            [Frozen] Mock <IReliableCacheStorageService> service,
            [Frozen] Mock <IMediator> mediator,
            GetArticleByHubAndSlugQueryHandler handler)
        {
            contentService.Setup(x => x.HasContent(It.IsAny <ApiResponse <CmsContent> >())).Returns(true);
            service.Setup(o =>
                          o.GetData <CmsContent>(
                              It.Is <GetArticleEntriesRequest>(c =>
                                                               c.GetUrl.Contains($"fields.hubType={query.Hub.ToTitleCase()}&fields.slug={query.Slug}")),
                              $"{query.Hub.ToTitleCase()}_{query.Slug}_article", contentService.Object.HasContent))
            .ReturnsAsync(apiResponse);

            mediator.SetupMenu(menuResult, menuContent);
            mediator.SetupBanners(bannerResult, bannerContent);

            var actual = await handler.Handle(query, CancellationToken.None);

            var cmsPageModel = response.Build(apiResponse, menuContent, bannerContent);

            actual.PageModel.Should().BeEquivalentTo(cmsPageModel);
        }
Exemplo n.º 3
0
        public static void SetupMenu(this Mock <IMediator> mediator, GetMenuQueryResult menuResult, MenuPageModel.MenuPageContent menuContent)
        {
            mediator.Setup(o => o.Send(It.IsAny <GetMenuQuery>(), It.IsAny <CancellationToken>())).ReturnsAsync(
                menuResult);

            menuContent.Apprentices = menuResult.PageModel.MainContent;
            menuContent.Employers   = menuResult.PageModel.MainContent;
            menuContent.Influencers = menuResult.PageModel.MainContent;
            menuContent.TopLevel    = menuResult.PageModel.MainContent;
        }
Exemplo n.º 4
0
        public async Task Then_Vm_Is_Stored_In_Session(
            LevyOptionViewModel model,
            GetMenuQueryResult <Menu> mediatorResult,
            [Frozen] Mock <IMediator> mediator,
            [Frozen] Mock <ISessionService> sessionService,
            [Greedy] FundingAnApprenticeshipController controller)
        {
            //Act
            await controller.Index(model);

            //Assert
            sessionService.Verify(ss => ss.Set(sessionService.Object.LevyOptionViewModelKey, model), Times.Once());
            mediator.Verify(x => x.Send(It.IsAny <GetMenuQuery>(), CancellationToken.None), Times.Never);
        }
Exemplo n.º 5
0
        public async Task Then_The_Menu_Is_Returned(
            GetMenuQueryResult mediatorResult,
            [Frozen] Mock <IMediator> mockMediator,
            [Greedy] MenuController controller)
        {
            mockMediator
            .Setup(mediator => mediator.Send(It.IsAny <GetMenuQuery>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(mediatorResult);

            var controllerResult = await controller.GetMenuAsync(CancellationToken.None) as OkObjectResult;

            var actualResult = controllerResult.Value as GetMenuResponse;

            Assert.IsNotNull(actualResult);
            mockMediator.Verify(x => x.Send(It.Is <GetMenuQuery>(c => c.MenuType.Equals("TopLevel")), CancellationToken.None), Times.Once);
            mockMediator.Verify(x => x.Send(It.Is <GetMenuQuery>(c => c.MenuType.Equals("Apprentices")), CancellationToken.None), Times.Once);
            mockMediator.Verify(x => x.Send(It.Is <GetMenuQuery>(c => c.MenuType.Equals("Employers")), CancellationToken.None), Times.Once);
            mockMediator.Verify(x => x.Send(It.Is <GetMenuQuery>(c => c.MenuType.Equals("Influencers")), CancellationToken.None), Times.Once);
        }
Exemplo n.º 6
0
        public async Task Then_If_There_Is_An_Error_The_Menu_Is_Built(
            LevyOptionViewModel model,
            GetMenuQueryResult <Menu> mediatorResult,
            [Frozen] Mock <IMediator> mediator,
            [Greedy] FundingAnApprenticeshipController controller)
        {
            //Arrange
            mediator.Setup(x => x.Send(It.IsAny <GetMenuQuery>(), CancellationToken.None))
            .ReturnsAsync(mediatorResult);
            controller.ModelState.AddModelError("TestError", "Error");

            //Act
            var actual = await controller.Index(model) as ViewResult;

            //Assert
            mediator.Verify(x => x.Send(It.IsAny <GetMenuQuery>(), CancellationToken.None), Times.Once);
            Assert.IsNotNull(actual);
            var actualModel = actual.Model as LevyOptionViewModel;

            Assert.IsNotNull(actualModel);
            actualModel.Menu.Should().BeEquivalentTo(mediatorResult.Page.Menu);
        }