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)); }
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); }
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; }
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); }
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); }
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); }