public void DetailShouldReturnViewResultWhenStandardSearchIsSuccessful() { var searchCriteria = new ApprenticeshipProviderDetailQuery { StandardCode = "1", LocationId = 2, UkPrn = 3 }; var stubSearchResponse = Task.FromResult(new ApprenticeshipProviderDetailResponse()); var stubProviderViewModel = new ApprenticeshipDetailsViewModel { ApprenticeshipType = ApprenticeshipTrainingType.Standard }; var httpContextMock = new Mock <HttpContextBase>(); var httpRequestMock = new Mock <HttpRequestBase>(); httpRequestMock.Setup(m => m.UrlReferrer).Returns(new Uri("http://www.helloworld.com")); httpContextMock.SetupGet(c => c.Request).Returns(httpRequestMock.Object); var urlHelperMock = new Mock <UrlHelper>(); urlHelperMock.Setup(m => m.Action(It.IsAny <string>(), It.IsAny <string>())).Returns(string.Empty); ProviderController controller = new ProviderControllerBuilder() .SetupMediator((x => x.Send(It.IsAny <ApprenticeshipProviderDetailQuery>(), default(CancellationToken))), stubSearchResponse) .SetupMappingService(x => x.Map(It.IsAny <ApprenticeshipProviderDetailResponse>(), It.IsAny <Action <IMappingOperationOptions <ApprenticeshipProviderDetailResponse, ApprenticeshipDetailsViewModel> > >()), stubProviderViewModel) .WithUrl(urlHelperMock.Object); var result = controller.Detail(searchCriteria).Result; result.Should().BeOfType <ViewResult>(); var viewResult = (ViewResult)result; viewResult.Model.Should().Be(stubProviderViewModel); }
public async Task <ActionResult> Detail(ApprenticeshipProviderDetailQuery criteria) { var response = await _mediator.Send(criteria); switch (response.StatusCode) { case ApprenticeshipProviderDetailResponse.ResponseCodes.ApprenticeshipProviderNotFound: _logger.Warn($"404 - Cannot find provider: ({criteria.UkPrn}) for apprenticeship product: ({criteria.FrameworkId ?? criteria.StandardCode}) with location: ({criteria.LocationId})"); return(new HttpStatusCodeResult(HttpStatusCode.NotFound)); case ApprenticeshipProviderDetailResponse.ResponseCodes.InvalidInput: _logger.Warn($"400 - Bad Request: {criteria.UkPrn}"); return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var viewModel = _mappingService.Map <ApprenticeshipProviderDetailResponse, ApprenticeshipDetailsViewModel>(response, opt => opt .AfterMap((src, dest) => { dest.SurveyUrl = _settings.SurveyUrl.ToString(); dest.SatisfactionSourceUrl = _settings.SatisfactionSourceUrl.ToString(); dest.AchievementRateSourceUrl = _settings.AchievementRateUrl.ToString(); dest.IsLevyPayingEmployer = criteria.IsLevyPayingEmployer; dest.ManageApprenticeshipFunds = new ManageApprenticeshipFundsViewModel(dest.IsLevyPayingEmployer, _settings.ManageApprenticeshipFundsUrl); dest.SearchTerm = criteria.Keyword; dest.ApprenticeshipId = dest.ApprenticeshipType == ApprenticeshipTrainingType.Framework ? criteria.FrameworkId : criteria.StandardCode; dest.Postcode = criteria.Postcode; })); return(View(viewModel)); }
public void ShouldNotValidateIfNotPossibleToGetStandard() { var message = new ApprenticeshipProviderDetailQuery { StandardCode = "1", LocationId = 5, UkPrn = 42 }; var stubApprenticeship = new ApprenticeshipDetails { Product = new ApprenticeshipProduct(), Location = new Location { LocationId = 5 }, Provider = new Provider { UkPrn = 42 } }; _mockSearchService.Setup(x => x.GetCourseByStandardCode(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>())).Returns(stubApprenticeship); _mockIGetStandards.Setup(x => x.GetStandardById("1")).Returns(null as Standard); var response = _handler.Handle(message, _cancellationToken).Result; _mockIGetStandards.Verify(x => x.GetStandardById(It.IsAny <string>()), Times.Once); response.StatusCode.Should().Be(ApprenticeshipProviderDetailResponse.ResponseCodes.ApprenticeshipProviderNotFound); }
public void ShouldNotValidateIfProviderOrLocationIdIsMissing(int ukprn, int locationId) { var message = new ApprenticeshipProviderDetailQuery { StandardCode = "1", LocationId = locationId, UkPrn = ukprn }; var stubApprenticeship = new ApprenticeshipDetails { Product = new ApprenticeshipProduct(), Location = new Location { LocationId = 55 }, Provider = new Provider { UkPrn = 42 } }; var stubStandardProduct = new Standard { Title = "Standard1", Level = 4, }; _mockSearchService.Setup(x => x.GetCourseByStandardCode(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>())).Returns(stubApprenticeship); _mockIGetStandards.Setup(x => x.GetStandardById("1")).Returns(stubStandardProduct); var response = _handler.Handle(message, _cancellationToken).Result; response.StatusCode.Should().Be(ApprenticeshipProviderDetailResponse.ResponseCodes.InvalidInput); }
public void ShouldReturnAStandardFromAHigherEducationInstitute() { var message = new ApprenticeshipProviderDetailQuery { StandardCode = "1", LocationId = 55, UkPrn = 42 }; var stubApprenticeship = new ApprenticeshipDetails { Product = new ApprenticeshipProduct(), Location = new Location { LocationId = 55 }, Provider = new Provider { UkPrn = 42, IsHigherEducationInstitute = true } }; var stubStandardProduct = new Standard { Title = "Standard1", Level = 4, }; _mockSearchService.Setup(x => x.GetCourseByStandardCode(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>())).Returns(stubApprenticeship); _mockIGetStandards.Setup(x => x.GetStandardById("1")).Returns(stubStandardProduct); var response = _handler.Handle(message, _cancellationToken).Result; response.ApprenticeshipDetails.Should().Be(stubApprenticeship); response.ApprenticeshipLevel.ShouldBeEquivalentTo("4"); response.ApprenticeshipName.ShouldAllBeEquivalentTo("Standard1"); response.ApprenticeshipType.ShouldBeEquivalentTo(ApprenticeshipTrainingType.Standard); response.ApprenticeshipDetails.Provider.IsHigherEducationInstitute.Should().BeTrue(); }
public void ShouldReturnAFramework() { var message = new ApprenticeshipProviderDetailQuery { FrameworkId = "1", LocationId = 55, UkPrn = 42 }; var stubApprenticeship = new ApprenticeshipDetails { Product = new ApprenticeshipProduct(), Location = new Location { LocationId = 55 }, Provider = new Provider { UkPrn = 42 } }; var stubStandardProduct = new Framework { Title = "Framework1", Level = 4, }; _mockSearchService.Setup(x => x.GetCourseByFrameworkId(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>())).Returns(stubApprenticeship); _mockIGetFrameworks.Setup(x => x.GetFrameworkById("1")).Returns(stubStandardProduct); var response = _handler.Handle(message, _cancellationToken).Result; response.ApprenticeshipDetails.Should().Be(stubApprenticeship); response.ApprenticeshipLevel.ShouldBeEquivalentTo("4"); response.ApprenticeshipName.ShouldAllBeEquivalentTo("Framework1"); response.ApprenticeshipType.ShouldBeEquivalentTo(ApprenticeshipTrainingType.Framework); }
public void ShouldNotValidateIfMissingStandardAndFrameworkCode() { var message = new ApprenticeshipProviderDetailQuery(); var response = _handler.Handle(message, _cancellationToken).Result; response.StatusCode.Should().Be(ApprenticeshipProviderDetailResponse.ResponseCodes.InvalidInput); }
public async Task DetailShouldReturnNotFoundResultIfApprenticeshipProviderNotFound() { var searchCriteria = new ApprenticeshipProviderDetailQuery(); var stubSearchResponse = Task.FromResult(new ApprenticeshipProviderDetailResponse { StatusCode = ApprenticeshipProviderDetailResponse.ResponseCodes.ApprenticeshipProviderNotFound }); ProviderController controller = new ProviderControllerBuilder() .SetupMediator(x => x.Send(It.IsAny <ApprenticeshipProviderDetailQuery>(), default(CancellationToken)), stubSearchResponse); var result = controller.Detail(searchCriteria).Result; result.Should().BeOfType <HttpStatusCodeResult>(); var responseResult = (HttpStatusCodeResult)result; responseResult.StatusCode.Should().Be((int)HttpStatusCode.NotFound); }
public void ShouldNotValidateIfNotPossibleToGetCourceByFrameworkCode() { var message = new ApprenticeshipProviderDetailQuery { FrameworkId = "1", LocationId = 5, UkPrn = 42 }; var stubStandardProduct = new Standard { Title = "Framework1", Level = 4, }; _mockSearchService.Setup(x => x.GetCourseByStandardCode(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>())).Returns(null as ApprenticeshipDetails); _mockIGetStandards.Setup(x => x.GetStandardById("1")).Returns(stubStandardProduct); var response = _handler.Handle(message, _cancellationToken).Result; _mockIGetFrameworks.Verify(x => x.GetFrameworkById(It.IsAny <string>()), Times.Once); response.StatusCode.Should().Be(ApprenticeshipProviderDetailResponse.ResponseCodes.ApprenticeshipProviderNotFound); }