public void UnhandledError()
        {
            var candidateId      = Guid.NewGuid();
            var candidateService = new Mock <ICandidateService>();

            candidateService.Setup(cs => cs.CreateApplication(candidateId, ValidVacancyId)).Throws(new CustomException(Application.Interfaces.Applications.ErrorCodes.ApplicationNotFoundError));
            var viewModel = new ApprenticeshipApplicationProviderBuilder()
                            .With(candidateService).Build()
                            .CreateApplicationViewModel(candidateId, ValidVacancyId);

            viewModel.Should().NotBeNull();
            viewModel.ViewModelStatus.Should().Be(ApplicationViewModelStatus.Error);
            viewModel.ViewModelMessage.Should().Be(MyApplicationsPageMessages.UnhandledError);
            viewModel.HasError().Should().BeTrue();
            viewModel.Status.Should().Be(ApplicationStatuses.Unknown);
        }
        public void GetNotFound()
        {
            var candidateId      = Guid.NewGuid();
            var candidateService = new Mock <ICandidateService>();

            candidateService.Setup(cs => cs.GetApplication(candidateId, ValidVacancyId)).Returns((ApprenticeshipApplicationDetail)null);
            var viewModel = new ApprenticeshipApplicationProviderBuilder().With(candidateService)
                            .Build()
                            .GetApplicationViewModel(candidateId, ValidVacancyId);

            viewModel.Should().NotBeNull();
            viewModel.ViewModelStatus.Should().Be(ApplicationViewModelStatus.ApplicationNotFound);
            viewModel.ViewModelMessage.Should().Be(MyApplicationsPageMessages.ApplicationNotFound);
            viewModel.HasError().Should().BeTrue();
            viewModel.Status.Should().Be(ApplicationStatuses.Unknown);
        }
        public void GivenException_ThenFailedApplicationViewModelIsReturned()
        {
            var candidateId      = Guid.NewGuid();
            var candidateService = new Mock <ICandidateService>();

            candidateService.Setup(cs => cs.UnarchiveApplication(candidateId, ValidVacancyId)).Throws <Exception>();

            var returnedViewModel = new ApprenticeshipApplicationProviderBuilder()
                                    .With(candidateService).Build()
                                    .UnarchiveApplication(candidateId, ValidVacancyId);

            returnedViewModel.HasError().Should().BeTrue();
            returnedViewModel.ViewModelStatus.Should().Be(ApplicationViewModelStatus.Error);
            returnedViewModel.ViewModelMessage.Should().NotBeNullOrEmpty();
            returnedViewModel.Status.Should().Be(ApplicationStatuses.Unknown);
        }
        public void Error()
        {
            var candidateId      = Guid.NewGuid();
            var candidateService = new Mock <ICandidateService>();

            candidateService.Setup(cs => cs.CreateApplication(candidateId, ValidVacancyId)).Throws(new Exception());
            var viewModel = new ApprenticeshipApplicationProviderBuilder()
                            .With(candidateService).Build()
                            .GetOrCreateApplicationViewModel(candidateId, ValidVacancyId);

            viewModel.Should().NotBeNull();
            viewModel.ViewModelStatus.Should().Be(ApplicationViewModelStatus.Error);
            viewModel.ViewModelMessage.Should().Be(MyApplicationsPageMessages.CreateOrRetrieveApplicationFailed);
            viewModel.HasError().Should().BeTrue();
            viewModel.Status.Should().Be(ApplicationStatuses.Unknown);
        }
        public void GivenEntityStateError_ThenDefaultViewModelIsReturned()
        {
            var candidateId      = Guid.NewGuid();
            var candidateService = new Mock <ICandidateService>();

            candidateService.Setup(cs => cs.DeleteApplication(candidateId, ValidVacancyId)).Throws(new CustomException(Domain.Entities.ErrorCodes.EntityStateError));

            var returnedViewModel = new ApprenticeshipApplicationProviderBuilder().With(candidateService)
                                    .Build()
                                    .DeleteApplication(candidateId, ValidVacancyId);

            returnedViewModel.HasError().Should().BeFalse();
            returnedViewModel.ViewModelStatus.Should().Be(ApplicationViewModelStatus.Ok);
            returnedViewModel.ViewModelMessage.Should().BeNullOrEmpty();
            returnedViewModel.Status.Should().Be(ApplicationStatuses.Unknown);
        }
Beispiel #6
0
        public void GivenNoCandidateFound_ThenApplicationNotFoundIsReturned()
        {
            var candidateId      = Guid.NewGuid();
            var candidateService = new Mock <ICandidateService>();

            candidateService.Setup(cs => cs.GetApplication(candidateId, ValidVacancyId)).Returns(new ApprenticeshipApplicationDetailBuilder(candidateId, ValidVacancyId).Build);
            candidateService.Setup(cs => cs.GetCandidate(candidateId)).Returns((Candidate)null);
            candidateService.Setup(cs => cs.GetApprenticeshipApplications(candidateId, It.IsAny <bool>())).Returns(new ApprenticeshipApplicationSummary[0]);

            var returnedViewModel = new ApprenticeshipApplicationProviderBuilder().With(candidateService).Build().GetWhatHappensNextViewModel(candidateId, ValidVacancyId, null);

            returnedViewModel.HasError().Should().BeTrue();
            returnedViewModel.ViewModelMessage.Should().NotBeNullOrEmpty();
            returnedViewModel.ViewModelMessage.Should().Be(MyApplicationsPageMessages.ApplicationNotFound);
            returnedViewModel.Status.Should().Be(ApplicationStatuses.Unknown);
        }
        public void ApplicationInIncorrectState()
        {
            var candidateId      = Guid.NewGuid();
            var candidateService = new Mock <ICandidateService>();

            candidateService.Setup(cs => cs.GetApplication(candidateId, ValidVacancyId)).Throws(new CustomException(ErrorCodes.EntityStateError));
            var viewModel = new ApprenticeshipApplicationProviderBuilder().With(candidateService)
                            .Build()
                            .GetApplicationViewModel(candidateId, ValidVacancyId);

            viewModel.Should().NotBeNull();
            viewModel.ViewModelStatus.Should().Be(ApplicationViewModelStatus.ApplicationInIncorrectState);
            viewModel.ViewModelMessage.Should().Be(MyApplicationsPageMessages.ApplicationInIncorrectState);
            viewModel.HasError().Should().BeTrue();
            viewModel.Status.Should().Be(ApplicationStatuses.Unknown);
        }
        public void Ok()
        {
            var candidateId      = Guid.NewGuid();
            var candidateService = new Mock <ICandidateService>();
            var apprenticeshipVacancyDetailProvider = new Mock <IApprenticeshipVacancyDetailProvider>();

            apprenticeshipVacancyDetailProvider.Setup(p => p.GetVacancyDetailViewModel(candidateId, ValidVacancyId)).Returns(new VacancyDetailViewModel());
            candidateService.Setup(cs => cs.CreateApplication(candidateId, ValidVacancyId)).Returns(new ApprenticeshipApplicationDetail());
            var viewModel = new ApprenticeshipApplicationProviderBuilder()
                            .With(candidateService).With(apprenticeshipVacancyDetailProvider).Build()
                            .GetOrCreateApplicationViewModel(candidateId, ValidVacancyId);

            viewModel.Should().NotBeNull();
            viewModel.Status.Should().Be(ApplicationStatuses.Unknown);
            viewModel.ViewModelMessage.Should().BeNullOrEmpty();
            viewModel.HasError().Should().BeFalse();
        }
        public void PatchWithVacancyDetail_VacancyNotFound()
        {
            var candidateId      = Guid.NewGuid();
            var candidateService = new Mock <ICandidateService>();
            var apprenticeshipVacancyDetailProvider = new Mock <IApprenticeshipVacancyDetailProvider>();

            apprenticeshipVacancyDetailProvider.Setup(p => p.GetVacancyDetailViewModel(candidateId, ValidVacancyId)).Returns((VacancyDetailViewModel)null);
            candidateService.Setup(cs => cs.CreateApplication(candidateId, ValidVacancyId)).Returns(new ApprenticeshipApplicationDetail());
            var viewModel = new ApprenticeshipApplicationProviderBuilder()
                            .With(candidateService).With(apprenticeshipVacancyDetailProvider).Build()
                            .GetOrCreateApplicationViewModel(candidateId, ValidVacancyId);

            viewModel.Should().NotBeNull();
            viewModel.Status.Should().Be(ApplicationStatuses.ExpiredOrWithdrawn);
            viewModel.ViewModelMessage.Should().Be(MyApplicationsPageMessages.ApprenticeshipNoLongerAvailable);
            viewModel.HasError().Should().BeTrue();
        }
        public void GivenVacancyIsExpired_ThenViewModelStatusIsExpired()
        {
            var candidateId      = Guid.NewGuid();
            var candidateService = new Mock <ICandidateService>();
            var apprenticeshipVacancyDetailProvider = new Mock <IApprenticeshipVacancyDetailProvider>();

            candidateService.Setup(cs => cs.GetApplication(candidateId, ValidVacancyId)).Returns(new ApprenticeshipApplicationDetailBuilder(candidateId, ValidVacancyId).Build);
            candidateService.Setup(cs => cs.GetCandidate(candidateId)).Returns(new CandidateBuilder(candidateId).Build);
            apprenticeshipVacancyDetailProvider.Setup(cs => cs.GetVacancyDetailViewModel(candidateId, ValidVacancyId)).Returns(new VacancyDetailViewModelBuilder().WithVacancyStatus(VacancyStatuses.Expired).Build());

            var returnedViewModel = new ApprenticeshipApplicationProviderBuilder()
                                    .With(candidateService).With(apprenticeshipVacancyDetailProvider).Build()
                                    .GetWhatHappensNextViewModel(candidateId, ValidVacancyId);

            returnedViewModel.HasError().Should().BeFalse();
            returnedViewModel.ViewModelMessage.Should().BeNullOrEmpty();
            returnedViewModel.VacancyStatus.Should().Be(VacancyStatuses.Expired);
        }
Beispiel #11
0
        public void GivenApplicationIsInCorrectState_ThenModelIsReturnedWithThatState()
        {
            var candidateId      = Guid.NewGuid();
            var candidateService = new Mock <ICandidateService>();
            var apprenticeshipVacancyDetailProvider = new Mock <IApprenticeshipVacancyDetailProvider>();

            apprenticeshipVacancyDetailProvider.Setup(p => p.GetVacancyDetailViewModel(candidateId, ValidVacancyId)).Returns(new VacancyDetailViewModel());
            candidateService.Setup(cs => cs.CreateApplication(candidateId, ValidVacancyId)).Returns(new ApprenticeshipApplicationDetail());
            candidateService.Setup(cs => cs.SubmitApplication(candidateId, ValidVacancyId)).Throws(new CustomException(ErrorCodes.ApplicationInIncorrectStateError));

            var returnedViewModel = new ApprenticeshipApplicationProviderBuilder()
                                    .With(candidateService).With(apprenticeshipVacancyDetailProvider).Build()
                                    .SubmitApplication(candidateId, ValidVacancyId);

            returnedViewModel.HasError().Should().BeFalse();
            returnedViewModel.ViewModelStatus.Should().Be(ApplicationViewModelStatus.ApplicationInIncorrectState);
            returnedViewModel.Status.Should().Be(ApplicationStatuses.Unknown);
        }
        public void GivenSuccessfulSubmission_ThenSuccessfulViewModelIsReturned()
        {
            var candidateId      = Guid.NewGuid();
            var candidateService = new Mock <ICandidateService>();
            var apprenticeshipVacancyProvider = new Mock <IApprenticeshipVacancyProvider>();

            apprenticeshipVacancyProvider.Setup(p => p.GetVacancyDetailViewModel(candidateId, ValidVacancyId)).Returns(new ApprenticeshipVacancyDetailViewModel());
            candidateService.Setup(cs => cs.GetApplication(candidateId, ValidVacancyId)).Returns(new ApprenticeshipApplicationDetail());

            var returnedViewModel = new ApprenticeshipApplicationProviderBuilder()
                                    .With(apprenticeshipVacancyProvider).With(candidateService).Build()
                                    .SubmitApplication(candidateId, ValidVacancyId);

            returnedViewModel.HasError().Should().BeFalse();
            returnedViewModel.ViewModelStatus.Should().Be(ApplicationViewModelStatus.Ok);
            returnedViewModel.ViewModelMessage.Should().BeNullOrEmpty();
            returnedViewModel.Status.Should().Be(ApplicationStatuses.Unknown);
        }
        public void PatchWithVacancyDetail_VacancyHasError()
        {
            var candidateId      = Guid.NewGuid();
            var candidateService = new Mock <ICandidateService>();
            var apprenticeshipVacancyProvider = new Mock <IApprenticeshipVacancyProvider>();

            apprenticeshipVacancyProvider.Setup(p => p.GetVacancyDetailViewModel(candidateId, ValidVacancyId)).Returns(new ApprenticeshipVacancyDetailViewModel(ApprenticeshipVacancyDetailPageMessages.GetVacancyDetailFailed));
            candidateService.Setup(cs => cs.CreateApplication(candidateId, ValidVacancyId)).Returns(new ApprenticeshipApplicationDetail());
            candidateService.Setup(cs => cs.GetApprenticeshipApplications(candidateId, It.IsAny <bool>())).Returns(new ApprenticeshipApplicationSummary[0]);
            var viewModel = new ApprenticeshipApplicationProviderBuilder()
                            .With(candidateService).With(apprenticeshipVacancyProvider).Build()
                            .CreateApplicationViewModel(candidateId, ValidVacancyId);

            viewModel.Should().NotBeNull();
            viewModel.Status.Should().Be(ApplicationStatuses.Unknown);
            viewModel.ViewModelMessage.Should().Be(ApprenticeshipVacancyDetailPageMessages.GetVacancyDetailFailed);
            viewModel.HasError().Should().BeTrue();
        }
Beispiel #14
0
        public void GivenException_ThenFailedApplicationViewModelIsReturned()
        {
            var candidateId      = Guid.NewGuid();
            var candidateService = new Mock <ICandidateService>();
            var apprenticeshipVacancyDetailProvider = new Mock <IApprenticeshipVacancyDetailProvider>();

            apprenticeshipVacancyDetailProvider.Setup(p => p.GetVacancyDetailViewModel(candidateId, ValidVacancyId)).Returns(new VacancyDetailViewModel());
            candidateService.Setup(cs => cs.CreateApplication(candidateId, ValidVacancyId)).Returns(new ApprenticeshipApplicationDetail());
            candidateService.Setup(cs => cs.SubmitApplication(candidateId, ValidVacancyId)).Throws <Exception>();

            var returnedViewModel = new ApprenticeshipApplicationProviderBuilder()
                                    .With(apprenticeshipVacancyDetailProvider).With(candidateService).Build()
                                    .SubmitApplication(candidateId, ValidVacancyId);

            returnedViewModel.HasError().Should().BeTrue();
            returnedViewModel.ViewModelStatus.Should().Be(ApplicationViewModelStatus.Error);
            returnedViewModel.ViewModelMessage.Should().NotBeNullOrEmpty();
            returnedViewModel.Status.Should().Be(ApplicationStatuses.Unknown);
        }
        public void GivenPatchWithVacancyDetailHasError_ThenMessageIsReturned()
        {
            var candidateId      = Guid.NewGuid();
            var candidateService = new Mock <ICandidateService>();
            var apprenticeshipVacancyDetailProvider = new Mock <IApprenticeshipVacancyDetailProvider>();

            candidateService.Setup(cs => cs.GetApplication(candidateId, ValidVacancyId)).Returns(new ApprenticeshipApplicationDetailBuilder(candidateId, ValidVacancyId).Build);
            candidateService.Setup(cs => cs.GetCandidate(candidateId)).Returns(new CandidateBuilder(candidateId).Build);

            apprenticeshipVacancyDetailProvider.Setup(cs => cs.GetVacancyDetailViewModel(candidateId, ValidVacancyId)).Returns((VacancyDetailViewModel)null);

            var returnedViewModel = new ApprenticeshipApplicationProviderBuilder()
                                    .With(candidateService).With(apprenticeshipVacancyDetailProvider).Build()
                                    .GetWhatHappensNextViewModel(candidateId, ValidVacancyId);

            returnedViewModel.HasError().Should().BeTrue();
            returnedViewModel.ViewModelMessage.Should().NotBeNullOrEmpty();
            returnedViewModel.ViewModelMessage.Should().Be(MyApplicationsPageMessages.ApprenticeshipNoLongerAvailable);
            returnedViewModel.Status.Should().Be(ApplicationStatuses.Unknown);
        }
        public void CreateApplicationReturnsVacancyStatusesUnavailable()
        {
            var candidateId      = Guid.NewGuid();
            var candidateService = new Mock <ICandidateService>();
            var apprenticeshipVacancyProvider = new Mock <IApprenticeshipVacancyProvider>();

            candidateService.Setup(cs => cs.CreateApplication(candidateId, ValidVacancyId)).Returns(new ApprenticeshipApplicationDetail {
                VacancyStatus = VacancyStatuses.Unavailable
            });
            candidateService.Setup(cs => cs.GetApprenticeshipApplications(candidateId, It.IsAny <bool>())).Returns(new ApprenticeshipApplicationSummary[0]);
            apprenticeshipVacancyProvider.Setup(p => p.GetVacancyDetailViewModel(candidateId, ValidVacancyId)).Returns(new ApprenticeshipVacancyDetailViewModel {
                VacancyStatus = VacancyStatuses.Unavailable
            });

            var viewModel = new ApprenticeshipApplicationProviderBuilder()
                            .With(candidateService).With(apprenticeshipVacancyProvider).Build()
                            .CreateApplicationViewModel(candidateId, ValidVacancyId);

            viewModel.Should().NotBeNull();
            viewModel.Status.Should().Be(ApplicationStatuses.ExpiredOrWithdrawn);
            viewModel.ViewModelMessage.Should().Be(MyApplicationsPageMessages.ApprenticeshipNoLongerAvailable);
            viewModel.HasError().Should().BeTrue();
        }
Beispiel #17
0
        public void GivenVacancyIsExpired_ThenViewModelStatusIsExpired()
        {
            var candidateId      = Guid.NewGuid();
            var candidateService = new Mock <ICandidateService>();
            var apprenticeshipVacancyProvider = new Mock <IApprenticeshipVacancyProvider>();

            candidateService.Setup(cs => cs.GetApplication(candidateId, ValidVacancyId)).Returns(new ApprenticeshipApplicationDetailBuilder(candidateId, ValidVacancyId).Build);
            candidateService.Setup(cs => cs.GetCandidate(candidateId)).Returns(new CandidateBuilder(candidateId).Build);
            candidateService.Setup(cs => cs.GetApprenticeshipApplications(candidateId, It.IsAny <bool>())).Returns(new ApprenticeshipApplicationSummary[0]);
            candidateService.Setup(
                cs => cs.GetSuggestedApprenticeshipVacancies(It.IsAny <ApprenticeshipSearchParameters>(), candidateId, ValidVacancyId))
            .Returns(new SearchResults <ApprenticeshipSearchResponse, ApprenticeshipSearchParameters>(0, new List <ApprenticeshipSearchResponse>(), null, new ApprenticeshipSearchParameters {
                Location = new Location()
            }));
            apprenticeshipVacancyProvider.Setup(cs => cs.GetVacancyDetailViewModel(candidateId, ValidVacancyId)).Returns(new ApprenticeshipVacancyDetailViewModelBuilder().WithVacancyStatus(VacancyStatuses.Expired).Build());

            var returnedViewModel = new ApprenticeshipApplicationProviderBuilder()
                                    .With(candidateService).With(apprenticeshipVacancyProvider).Build()
                                    .GetWhatHappensNextViewModel(candidateId, ValidVacancyId, null);

            returnedViewModel.HasError().Should().BeFalse();
            returnedViewModel.ViewModelMessage.Should().BeNullOrEmpty();
            returnedViewModel.VacancyStatus.Should().Be(VacancyStatuses.Expired);
        }