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