private string GetCohortStatus(GetCohortResponse cohort, IReadOnlyCollection <DraftApprenticeshipDto> draftApprenticeships) { if (cohort.TransferSenderId.HasValue && cohort.TransferApprovalStatus == CommitmentsV2.Types.TransferApprovalStatus.Pending) { if (cohort.WithParty == CommitmentsV2.Types.Party.TransferSender) { return("Pending - with funding employer"); } else if (cohort.WithParty == CommitmentsV2.Types.Party.Employer) { return(GetEmployerOnlyStatus(cohort)); } else if (cohort.WithParty == CommitmentsV2.Types.Party.Provider) { return(GetProviderOnlyStatus(cohort)); } } else if (cohort.IsApprovedByEmployer && cohort.IsApprovedByProvider) { return("Approved"); } else if (cohort.WithParty == CommitmentsV2.Types.Party.Provider) { return(GetProviderOnlyStatus(cohort)); } else if (cohort.WithParty == CommitmentsV2.Types.Party.Employer) { return(GetEmployerOnlyStatus(cohort)); } return("New request"); }
public CreateCohortWithOtherPartyControllerTestFixture SetGetCohortResponse( GetCohortResponse getCohortResponse) { CommitmentsApiClientMock.Setup(c => c.GetCohort(It.IsAny <long>(), It.IsAny <CancellationToken>())) .ReturnsAsync(getCohortResponse); return(this); }
private GetCohortResponse GetCohortResponseMock() { var response = new GetCohortResponse { CohortId = _cohortId }; return(response); }
public DetailsTestFixture WithCohort(GetCohortResponse cohortDetails = null) { var returnValue = cohortDetails ?? CohortDetails; CommitmentsApiClientMock .Setup(cs => cs.GetCohort(It.IsAny <long>(), It.IsAny <CancellationToken>())) .ReturnsAsync(returnValue); return(this); }
private async Task <TrainingProgramme[]> GetCourses(GetCohortResponse cohortDetails) { var result = await _mediator.Send(new GetTrainingCoursesQueryRequest { IncludeFrameworks = (!cohortDetails.IsFundedByTransfer && cohortDetails.LevyStatus != ApprenticeshipEmployerType.NonLevy) || cohortDetails.IsLinkedToChangeOfPartyRequest }); return(result.TrainingCourses); }
public async Task <AcknowledgementViewModel> Map(AcknowledgementRequest source) { GetCohortResponse cohort = await _commitmentsApiClient.GetCohort(source.CohortId); var result = new AcknowledgementViewModel { ProviderId = source.ProviderId, CohortReference = source.CohortReference, EmployerName = cohort.LegalEntityName, ProviderName = cohort.ProviderName, CohortId = source.CohortId, Message = string.IsNullOrWhiteSpace(cohort.LatestMessageCreatedByProvider)? "No message added" : cohort.LatestMessageCreatedByProvider, WhatHappensNext = new List <string>(), WithParty = cohort.WithParty, IsTransfer = cohort.TransferSenderId.HasValue, CohortApproved = cohort.IsApprovedByProvider && cohort.IsApprovedByEmployer, ChangeOfPartyRequestId = cohort.ChangeOfPartyRequestId }; switch (source.SaveStatus) { case SaveStatus.ApproveAndSend when(cohort.TransferSenderId.HasValue && cohort.ChangeOfPartyRequestId == null): result.WhatHappensNext.AddRange(new[] { "The employer will review the cohort and either approve or contact you with an update.", "Once the employer approves the cohort, a transfer request will be sent to the funding employer to review.", "You’ll receive a notification when the funding employer approves or rejects the transfer request." }); break; case SaveStatus.ApproveAndSend: result.WhatHappensNext.Add("The employer will review the cohort and either approve it or contact you with an update."); break; default: result.WhatHappensNext.Add("The updated cohort will appear in the employer’s account for them to review."); break; } if (result.CohortApproved) { result.PageTitle = "Cohort approved"; } else { result.PageTitle = source.SaveStatus == SaveStatus.ApproveAndSend ? "Cohort approved and sent to employer" : "Cohort sent to employer for review"; } return(result); }
public DetailsViewModelMapperTestsFixture() { _autoFixture = new Fixture(); Cohort = _autoFixture.Build <GetCohortResponse>().Without(x => x.TransferSenderId).Without(x => x.ChangeOfPartyRequestId).Create(); AccountLegalEntityResponse = _autoFixture.Create <AccountLegalEntityResponse>(); LegalEntityViewModel = _autoFixture.Create <LegalEntityViewModel>(); var draftApprenticeships = CreateDraftApprenticeshipDtos(_autoFixture); _autoFixture.Register(() => draftApprenticeships); DraftApprenticeshipsResponse = _autoFixture.Create <GetDraftApprenticeshipsResponse>(); CommitmentsApiClient = new Mock <ICommitmentsApiClient>(); CommitmentsApiClient.Setup(x => x.GetCohort(It.IsAny <long>(), It.IsAny <CancellationToken>())) .ReturnsAsync(Cohort); CommitmentsApiClient.Setup(x => x.GetDraftApprenticeships(It.IsAny <long>(), It.IsAny <CancellationToken>())) .ReturnsAsync(DraftApprenticeshipsResponse); CommitmentsApiClient.Setup(x => x.GetAccountLegalEntity(It.IsAny <long>(), It.IsAny <CancellationToken>())) .ReturnsAsync(AccountLegalEntityResponse); AccountApiClient = new Mock <IAccountApiClient>(); AccountApiClient.Setup(x => x.GetLegalEntity(It.IsAny <string>(), It.IsAny <long>())).ReturnsAsync(LegalEntityViewModel); _fundingPeriods = new List <TrainingProgrammeFundingPeriod> { new TrainingProgrammeFundingPeriod { EffectiveFrom = _startFundingPeriod, EffectiveTo = _endFundingPeriod, FundingCap = 1000 }, new TrainingProgrammeFundingPeriod { EffectiveFrom = _startFundingPeriod.AddMonths(1), EffectiveTo = _endFundingPeriod.AddMonths(1), FundingCap = 500 } }; _trainingProgramme = new TrainingProgramme { EffectiveFrom = DefaultStartDate, EffectiveTo = DefaultStartDate.AddYears(1), FundingPeriods = _fundingPeriods }; CommitmentsApiClient.Setup(x => x.GetTrainingProgramme(It.Is <string>(c => !string.IsNullOrEmpty(c)), CancellationToken.None)) .ReturnsAsync(new GetTrainingProgrammeResponse { TrainingProgramme = _trainingProgramme }); CommitmentsApiClient.Setup(x => x.GetTrainingProgramme("no-course", CancellationToken.None)) .ThrowsAsync(new RestHttpClientException(new HttpResponseMessage(HttpStatusCode.NotFound) { RequestMessage = new HttpRequestMessage(), ReasonPhrase = "Url not found" }, "Course not found")); EncodingService = new Mock <IEncodingService>(); SetEncodingOfApprenticeIds(); Mapper = new DetailsViewModelMapper(CommitmentsApiClient.Object, EncodingService.Object, AccountApiClient.Object); Source = _autoFixture.Create <DetailsRequest>(); }
public async Task Then_The_Api_Is_Called_With_The_Request_And_The_Cohort_Is_Returned( GetCohortQuery query, GetCohortResponse apiResponse, [Frozen] Mock <ICommitmentsV2ApiClient <CommitmentsV2ApiConfiguration> > apiClient, GetCohortQueryHandler handler ) { apiClient.Setup(x => x.Get <GetCohortResponse>(It.Is <GetCohortRequest>(x => x.CohortId == query.CohortId))).ReturnsAsync(apiResponse); var actual = await handler.Handle(query, CancellationToken.None); actual.Should().BeEquivalentTo((GetCohortResult)apiResponse); }
public async Task Then_Gets_Cohort_From_CommitmentsV2_Api( GetCohortQuery query, GetCohortResponse apiResponse, [Frozen] Mock <ICommitmentsV2ApiClient <CommitmentsV2ApiConfiguration> > mockApiClient, GetCohortQueryHandler handler) { mockApiClient .Setup(client => client.Get <GetCohortResponse>(It.Is <GetCohortRequest>(request => request.CohortId == query.CohortId))) .ReturnsAsync(apiResponse); var result = await handler.Handle(query, CancellationToken.None); result.Cohort.Should().BeEquivalentTo(apiResponse); }
public async Task Arrange() { var autoFixture = new Fixture(); _allTrainingProgrammes = autoFixture.CreateMany <TrainingProgramme>().ToList(); _standardTrainingProgrammes = autoFixture.CreateMany <TrainingProgramme>().ToList(); _encodedApprenticeshipId = autoFixture.Create <string>(); _cohortReference = autoFixture.Create <string>(); _encodingService = new Mock <IEncodingService>(); _encodingService .Setup(x => x.Encode(It.IsAny <long>(), It.Is <EncodingType>(e => e == EncodingType.ApprenticeshipId))) .Returns(_encodedApprenticeshipId); _encodingService .Setup(x => x.Encode(It.IsAny <long>(), It.Is <EncodingType>(e => e == EncodingType.CohortReference))) .Returns(_cohortReference); _draftApprenticeshipResponse = autoFixture.Create <GetDraftApprenticeshipResponse>(); _draftApprenticeshipResponse.IsContinuation = false; _commitmentsApiClient = new Mock <ICommitmentsApiClient>(); _commitmentsApiClient.Setup(x => x.GetDraftApprenticeship(It.IsAny <long>(), It.IsAny <long>(), It.IsAny <CancellationToken>())) .ReturnsAsync(_draftApprenticeshipResponse); _commitmentsApiClient .Setup(x => x.GetAllTrainingProgrammeStandards(It.IsAny <CancellationToken>())) .ReturnsAsync(new GetAllTrainingProgrammeStandardsResponse { TrainingProgrammes = _standardTrainingProgrammes }); _commitmentsApiClient .Setup(x => x.GetAllTrainingProgrammes(It.IsAny <CancellationToken>())) .ReturnsAsync(new GetAllTrainingProgrammesResponse { TrainingProgrammes = _allTrainingProgrammes }); _cohort = autoFixture.Create <GetCohortResponse>(); _cohort.WithParty = Party.Employer; _cohort.ChangeOfPartyRequestId = null; _commitmentsApiClient.Setup(x => x.GetCohort(It.IsAny <long>(), It.IsAny <CancellationToken>())) .ReturnsAsync(_cohort); _source = autoFixture.Create <EditDraftApprenticeshipRequest>(); _source.Cohort = _cohort; _mapper = new EditDraftApprenticeshipViewModelMapper(_commitmentsApiClient.Object, _encodingService.Object); _result = await _mapper.Map(TestHelper.Clone(_source)) as EditDraftApprenticeshipViewModel; }
private static string GetEmployerOnlyStatus(GetCohortResponse cohort) { if (cohort.LastAction == CommitmentsV2.Types.LastAction.None) { return("New request"); } else if (cohort.LastAction == CommitmentsV2.Types.LastAction.Amend) { return("Under review with employer"); } else if (cohort.LastAction == CommitmentsV2.Types.LastAction.Approve) { return("With Employer for approval"); } else { return("Under review with employer"); } }
public ApprovedViewModelMapperTestsFixture() { _autoFixture = new Fixture(); Cohort = _autoFixture.Create <GetCohortResponse>(); DraftApprenticeshipsResponse = _autoFixture.Create <GetDraftApprenticeshipsResponse>(); CommitmentsApiClient = new Mock <ICommitmentsApiClient>(); CommitmentsApiClient.Setup(x => x.GetCohort(It.IsAny <long>(), It.IsAny <CancellationToken>())) .ReturnsAsync(Cohort); CommitmentsApiClient.Setup(x => x.GetDraftApprenticeships(It.IsAny <long>(), It.IsAny <CancellationToken>())) .ReturnsAsync(DraftApprenticeshipsResponse); EncodingService = new Mock <IEncodingService>(); Mapper = new ApprovedViewModelMapper(CommitmentsApiClient.Object, EncodingService.Object); Source = _autoFixture.Create <ApprovedRequest>(); }
public ConfirmDeleteViewModelMapperTestsFixture() { _autoFixture = new Fixture(); Cohort = _autoFixture.Build <GetCohortResponse>().Create(); var draftApprenticeships = CreateDraftApprenticeshipDtos(_autoFixture); _autoFixture.Register(() => draftApprenticeships); DraftApprenticeshipsResponse = _autoFixture.Create <GetDraftApprenticeshipsResponse>(); CommitmentsApiClient = new Mock <ICommitmentsApiClient>(); CommitmentsApiClient.Setup(x => x.GetCohort(It.IsAny <long>(), It.IsAny <CancellationToken>())) .ReturnsAsync(Cohort); CommitmentsApiClient.Setup(x => x.GetDraftApprenticeships(It.IsAny <long>(), It.IsAny <CancellationToken>())) .ReturnsAsync(DraftApprenticeshipsResponse); Sut = new ConfirmDeleteViewModelMapper(CommitmentsApiClient.Object); Source = _autoFixture.Create <DetailsRequest>(); }
public DetailsTestFixture() { ViewModel = new Mock <IDraftApprenticeshipViewModel>(); CommitmentsApiClientMock = new Mock <ICommitmentsApiClient>(); DetailsRequest = new DetailsRequest { AccountHashedId = AccountHashedId, CohortId = CohortId, CohortReference = CohortReference, DraftApprenticeshipId = DraftApprenticeshipId, DraftApprenticeshipHashedId = DraftApprenticeshipHashedId }; CohortDetails = new GetCohortResponse { CohortId = CohortId, ProviderName = "ProviderName", WithParty = Party.Employer }; EditDraftApprenticeshipDetails = new GetDraftApprenticeshipResponse { Id = DraftApprenticeshipId }; ApiErrors = new List <ErrorDetail> { new ErrorDetail("Field1", "Message1") }; ModelMapperMock = new Mock <IModelMapper>(); ModelMapperMock.Setup(x => x.Map <IDraftApprenticeshipViewModel>(It.IsAny <DetailsRequest>())) .ReturnsAsync(ViewModel.Object); AuthorizationServiceMock = new Mock <IAuthorizationService>(); AuthorizationServiceMock.Setup(x => x.IsAuthorized(EmployerFeature.EnhancedApproval)).Returns(false); Sut = new DraftApprenticeshipController( ModelMapperMock.Object, CommitmentsApiClientMock.Object, AuthorizationServiceMock.Object, Mock.Of <IEncodingService>()); }
public async Task Arrange() { var autoFixture = new Fixture(); _allTrainingProgrammes = autoFixture.CreateMany <TrainingProgramme>().ToList(); _standardTrainingProgrammes = autoFixture.CreateMany <TrainingProgramme>().ToList(); _cohort = autoFixture.Create <GetCohortResponse>(); _cohort.WithParty = Party.Employer; _commitmentsApiClient = new Mock <ICommitmentsApiClient>(); _commitmentsApiClient.Setup(x => x.GetCohort(It.IsAny <long>(), It.IsAny <CancellationToken>())) .ReturnsAsync(_cohort); _commitmentsApiClient .Setup(x => x.GetAllTrainingProgrammeStandards(It.IsAny <CancellationToken>())) .ReturnsAsync(new GetAllTrainingProgrammeStandardsResponse { TrainingProgrammes = _standardTrainingProgrammes }); _commitmentsApiClient .Setup(x => x.GetAllTrainingProgrammes(It.IsAny <CancellationToken>())) .ReturnsAsync(new GetAllTrainingProgrammesResponse { TrainingProgrammes = _allTrainingProgrammes }); _encodedTransferSenderId = autoFixture.Create <string>(); _encodingService = new Mock <IEncodingService>(); _encodingService .Setup(x => x.Encode(It.IsAny <long>(), It.Is <EncodingType>(e => e == EncodingType.PublicAccountId))) .Returns(_encodedTransferSenderId); _mapper = new AddDraftApprenticeshipViewModelMapper(_commitmentsApiClient.Object, _encodingService.Object); _source = autoFixture.Create <AddDraftApprenticeshipRequest>(); _source.StartMonthYear = "092020"; _result = await _mapper.Map(TestHelper.Clone(_source)); }
public void Arrange() { var autoFixture = new Fixture(); _cohort = autoFixture.Create <GetCohortResponse>(); _request = autoFixture.Create <DraftApprenticeshipRequest>(); _apiClient = new Mock <ICommitmentsApiClient>(); _apiClient.Setup(x => x.GetCohort(It.IsAny <long>(), It.IsAny <CancellationToken>())).ReturnsAsync(_cohort); _modelMapper = new Mock <IModelMapper>(); _modelMapper.Setup(x => x.Map <IDraftApprenticeshipViewModel>(It.IsAny <EditDraftApprenticeshipRequest>())) .ReturnsAsync(new EditDraftApprenticeshipViewModel()); _modelMapper.Setup(x => x.Map <ViewDraftApprenticeshipViewModel>(It.IsAny <DraftApprenticeshipRequest>())) .ReturnsAsync(new ViewDraftApprenticeshipViewModel()); _mapper = new IDraftApprenticeshipDetailsViewModelMapper(_apiClient.Object, _modelMapper.Object); }
private static string GetProviderOnlyStatus(GetCohortResponse cohort) { if (cohort.LastAction == CommitmentsV2.Types.LastAction.None) { return("New request"); } else if (cohort.LastAction == CommitmentsV2.Types.LastAction.Amend) { return("Ready for review"); } else if (cohort.LastAction == CommitmentsV2.Types.LastAction.Approve) { if (!cohort.IsApprovedByProvider && !cohort.IsApprovedByEmployer) { return("Ready for review"); } return("Ready for approval"); } else { return("New request"); } }
public async Task GetFinished_ValidModel_ShouldReturnFinishedViewModelWithMappedValues(FinishedRequest request, GetCohortResponse getCohortResponse) { _fixture.SetGetCohortResponse(getCohortResponse); var response = await _fixture.Sut.Finished(request); var model = response.VerifyReturnsViewModel().WithModel <FinishedViewModel>(); Assert.AreEqual(model.CohortReference, request.CohortReference); Assert.AreEqual(model.LegalEntityName, getCohortResponse.LegalEntityName); Assert.AreEqual(model.ProviderName, getCohortResponse.ProviderName); Assert.AreEqual(model.Message, getCohortResponse.LatestMessageCreatedByEmployer); }
private async Task <IReadOnlyCollection <DetailsViewCourseGroupingModel> > GroupCourses(IEnumerable <DraftApprenticeshipDto> draftApprenticeships, List <ApprenticeshipEmailOverlap> emailOverlaps, GetCohortResponse cohortResponse) { var groupedByCourse = draftApprenticeships .GroupBy(a => new { a.CourseCode, a.CourseName }) .Select(course => new DetailsViewCourseGroupingModel { CourseCode = course.Key.CourseCode, CourseName = course.Key.CourseName, DraftApprenticeships = course // Sort before on raw properties rather than use displayName property post select for performance reasons .OrderBy(a => a.FirstName) .ThenBy(a => a.LastName) .Select(a => new CohortDraftApprenticeshipViewModel { Id = a.Id, DraftApprenticeshipHashedId = _encodingService.Encode(a.Id, EncodingType.ApprenticeshipId), FirstName = a.FirstName, LastName = a.LastName, Cost = a.Cost, DateOfBirth = a.DateOfBirth, EndDate = a.EndDate, StartDate = a.StartDate, OriginalStartDate = a.OriginalStartDate, HasOverlappingEmail = emailOverlaps.Any(x => x.Id == a.Id), ULN = a.Uln, IsComplete = IsDraftApprenticeshipComplete(a, cohortResponse) }) .ToList() }) .OrderBy(c => c.CourseName) .ToList(); PopulateFundingBandExcessModels(groupedByCourse); await CheckUlnOverlap(groupedByCourse); PopulateEmailOverlapsModel(groupedByCourse); return(groupedByCourse); }
private bool IsDraftApprenticeshipComplete(DraftApprenticeshipDto draftApprenticeship, GetCohortResponse cohortResponse) => !( string.IsNullOrWhiteSpace(draftApprenticeship.FirstName) || string.IsNullOrWhiteSpace(draftApprenticeship.LastName) || draftApprenticeship.DateOfBirth == null || string.IsNullOrWhiteSpace(draftApprenticeship.CourseName) || draftApprenticeship.StartDate == null || draftApprenticeship.EndDate == null || draftApprenticeship.Cost == null || (cohortResponse.ApprenticeEmailIsRequired && string.IsNullOrWhiteSpace(draftApprenticeship.Email) && !cohortResponse.IsLinkedToChangeOfPartyRequest) );
public EditApprenticeshipRequestToViewModelMapperTestsFixture() { //Arrange var autoFixture = new Fixture(); _request = autoFixture.Build <EditApprenticeshipRequest>() .With(x => x.AccountHashedId, "123") .With(x => x.ApprenticeshipHashedId, "456") .Create(); ApprenticeshipResponse = autoFixture.Build <GetApprenticeshipResponse>() .With(x => x.CourseCode, "ABC") .With(x => x.Version, "1.0") .With(x => x.DateOfBirth, autoFixture.Create <DateTime>()) .Create(); _priceEpisodesResponse = autoFixture.Build <GetPriceEpisodesResponse>() .With(x => x.PriceEpisodes, new List <PriceEpisode> { new PriceEpisode { Cost = 1000, ToDate = DateTime.Now.AddMonths(-1) } }) .Create(); _cohortResponse = autoFixture.Create <GetCohortResponse>(); _accountResponse = autoFixture.Create <AccountResponse>(); _allTrainingProgrammeStandardsResponse = autoFixture.Create <GetAllTrainingProgrammeStandardsResponse>(); _allTrainingProgrammeResponse = autoFixture.Create <GetAllTrainingProgrammesResponse>(); _trainingProgrammeResponse = autoFixture.Build <GetTrainingProgrammeResponse>().Create(); _mockCommitmentsApiClient = new Mock <ICommitmentsApiClient>(); _mockCommitmentsApiClient.Setup(r => r.GetApprenticeship(It.IsAny <long>(), CancellationToken.None)) .ReturnsAsync(ApprenticeshipResponse); _mockCommitmentsApiClient.Setup(c => c.GetPriceEpisodes(It.IsAny <long>(), CancellationToken.None)) .ReturnsAsync(_priceEpisodesResponse); _mockCommitmentsApiClient.Setup(t => t.GetTrainingProgramme(ApprenticeshipResponse.CourseCode, It.IsAny <CancellationToken>())) .ReturnsAsync(_trainingProgrammeResponse); _mockCommitmentsApiClient.Setup(t => t.GetCohort(It.IsAny <long>(), It.IsAny <CancellationToken>())) .ReturnsAsync(() => _cohortResponse); _mockCommitmentsApiClient.Setup(t => t.GetAccount(_request.AccountId, It.IsAny <CancellationToken>())) .ReturnsAsync(() => _accountResponse); _mockCommitmentsApiClient.Setup(t => t.GetAllTrainingProgrammeStandards(It.IsAny <CancellationToken>())) .ReturnsAsync(() => { _courses = _allTrainingProgrammeStandardsResponse.TrainingProgrammes; return(_allTrainingProgrammeStandardsResponse); }); _mockCommitmentsApiClient.Setup(t => t.GetAllTrainingProgrammes(It.IsAny <CancellationToken>())) .ReturnsAsync(() => { _courses = _allTrainingProgrammeResponse.TrainingProgrammes; return(_allTrainingProgrammeResponse); }); _mockAcademicYearDateProvider = new Mock <IAcademicYearDateProvider>(); _mockCurrentDateTimeProvider = new Mock <ICurrentDateTime>(); _mapper = new EditApprenticeshipRequestToViewModelMapper(_mockCommitmentsApiClient.Object, _mockAcademicYearDateProvider.Object, _mockCurrentDateTimeProvider.Object); }
public DraftApprenticeshipControllerTestFixture() { var autoFixture = new Fixture(); _cohortId = autoFixture.Create <long>(); _draftApprenticeshipId = autoFixture.Create <long>(); _providerId = autoFixture.Create <int>(); _cohortReference = autoFixture.Create <string>(); _draftApprenticeshipHashedId = autoFixture.Create <string>(); _editDraftApprenticeshipRequest = autoFixture.Build <EditDraftApprenticeshipRequest>() .With(x => x.CohortId, _cohortId) .With(x => x.DraftApprenticeshipId, _draftApprenticeshipId) .Create(); _editDraftApprenticeshipDetails = autoFixture.Build <GetDraftApprenticeshipResponse>() .Create(); _createAddDraftApprenticeshipRequest = new AddDraftApprenticeshipRequest(); _updateDraftApprenticeshipRequest = new UpdateDraftApprenticeshipRequest(); _reservationsAddDraftApprenticeshipRequest = autoFixture.Build <ReservationsAddDraftApprenticeshipRequest>() .With(x => x.ProviderId, _providerId) .With(x => x.CohortId, _cohortId) .With(x => x.CohortReference, _cohortReference) .With(x => x.StartMonthYear, "012019") .Create(); _courseResponse = new GetTrainingCoursesQueryResponse { TrainingCourses = new TrainingProgramme[0] }; _addModel = new AddDraftApprenticeshipViewModel { ProviderId = _providerId, CohortId = _cohortId, CohortReference = _cohortReference }; _editModel = new EditDraftApprenticeshipViewModel { ProviderId = _providerId, CohortId = _cohortId, CohortReference = _cohortReference, DraftApprenticeshipId = _draftApprenticeshipId, DraftApprenticeshipHashedId = _draftApprenticeshipHashedId }; _cohortResponse = autoFixture.Build <GetCohortResponse>() .With(x => x.LevyStatus, ApprenticeshipEmployerType.Levy) .With(x => x.ChangeOfPartyRequestId, default(long?)) .Create(); _apiModelException = new CommitmentsApiModelException(new List <ErrorDetail>() { new ErrorDetail("Name", "Cannot be more than...") }); _mediator = new Mock <IMediator>(); _mediator.Setup(x => x.Send(It.IsAny <GetTrainingCoursesQueryRequest>(), It.IsAny <CancellationToken>())) .ReturnsAsync(_courseResponse); _modelMapper = new Mock <IModelMapper>(); _modelMapper.Setup(x => x.Map <AddDraftApprenticeshipRequest>(It.IsAny <AddDraftApprenticeshipViewModel>())) .ReturnsAsync(_createAddDraftApprenticeshipRequest); _modelMapper.Setup(x => x.Map <EditDraftApprenticeshipViewModel>(It.IsAny <EditDraftApprenticeshipRequest>())) .ReturnsAsync(_editModel); _modelMapper.Setup(x => x.Map <UpdateDraftApprenticeshipRequest>(It.IsAny <EditDraftApprenticeshipViewModel>())) .ReturnsAsync(_updateDraftApprenticeshipRequest); _linkGenerator = new Mock <ILinkGenerator>(); _linkGenerator.Setup(x => x.ProviderApprenticeshipServiceLink(It.IsAny <string>())) .Returns <string>(input => input); _commitmentsApiClient = new Mock <ICommitmentsApiClient>(); _commitmentsApiClient.Setup(x => x.GetCohort(It.IsAny <long>(), It.IsAny <CancellationToken>())) .ReturnsAsync(_cohortResponse); _controller = new DraftApprenticeshipController(_mediator.Object, _linkGenerator.Object, _commitmentsApiClient.Object, _modelMapper.Object); }
private bool IsWaitingToStartAndHasHadDataLockSuccessAndIsFundedByTransfer(GetApprenticeshipResponse apprenticeship, GetCohortResponse commitment) { return(commitment.IsFundedByTransfer && HasHadDataLockSuccess(apprenticeship) && IsWaitingToStart(apprenticeship)); }