Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 8
0
        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);
        }