public async Task ThenCountsShouldBeCorrectWhenEmployerHasASingleCommitmentThats( int expectedDraftCount, int expectedReadyForReviewCount, int expectedWithProviderCount, int expectedTransferFundedCohortsCount, int expectedRejectedTransferFundedCohortsCount, long?transferSenderId, TransferApprovalStatus transferApprovalStatus, AgreementStatus agreementStatus, EditStatus editStatus, LastAction lastAction, int apprenticeshipCount) { //Arrange MockMediator.Setup(x => x.SendAsync(It.IsAny <GetCommitmentsQuery>())) .ReturnsAsync(new GetCommitmentsResponse { Commitments = new List <CommitmentListItem> { new CommitmentListItem { TransferSenderId = transferSenderId, TransferApprovalStatus = transferApprovalStatus, AgreementStatus = agreementStatus, EditStatus = editStatus, LastAction = lastAction, ApprenticeshipCount = apprenticeshipCount } } }); //Act var result = await EmployerCommitmentOrchestrator.GetYourCohorts("ABC123", "ABC321"); //Assert Assert.AreEqual(expectedDraftCount, result.Data.DraftCount, "Incorrect DraftCount"); Assert.AreEqual(expectedReadyForReviewCount, result.Data.ReadyForReviewCount, "Incorrect ReadyForReviewCount"); Assert.AreEqual(expectedWithProviderCount, result.Data.WithProviderCount, "Incorrect WithProviderCount"); Assert.AreEqual(expectedTransferFundedCohortsCount, result.Data.TransferFundedCohortsCount, "IncorrectTransferFundedCohortsCount"); Assert.AreEqual(expectedRejectedTransferFundedCohortsCount, result.Data.RejectedTransferFundedCohortsCount, "IncorrectRejectedTransferFundedCohortsCount"); }
public async Task ThenEmailMessageTemplateIdIsSetCorrectly(string expectedTemplateId, TransferApprovalStatus transferApprovalStatus) { _transferApprovalStatus = transferApprovalStatus; await _act(); Assert.AreEqual(expectedTemplateId, _sentEmailMessage.TemplateId); }
public void ThenTransferSenderApprovedMustNotBeSetWithoutId(TransferApprovalStatus status) { _apprenticeshipEvent.TransferSenderId = null; _apprenticeshipEvent.TransferApprovalStatus = status; var result = _validator.Validate(_command); Assert.IsFalse(result.IsValid); }
public async Task ThenCohortTransferRejectionIsIndicated(TransferApprovalStatus status, bool expectRejectionIndicated) { CommitmentView.TransferSender = new TransferSender { TransferApprovalStatus = status }; var viewModel = await EmployerCommitmentOrchestrator.GetSkeletonApprenticeshipDetails("HashedAccId", "ExtUserId", "HashedCmtId"); Assert.AreEqual(expectRejectionIndicated, viewModel.Data.Apprenticeship.IsInTransferRejectedCohort); }
public async Task ThenEmployerIsNotifiedWhenEmailEnabled(TransferApprovalStatus transferApprovalStatus) { _command.TransferStatus = transferApprovalStatus; await _sut.Handle(_command); _employerEmailNotificationService.Verify(pens => pens.SendSenderApprovedOrRejectedCommitmentNotification( It.IsAny <CommitmentView>(), It.Is <TransferApprovalStatus>(s => s == transferApprovalStatus)), Times.Once); }
public void ThenFundingCapWarningShouldBeShownWhenApplicable(TransferApprovalStatus status, int totalCost, int fundingCap, bool expectShowWarning) { //Arrange _transferRequest.TransferCost = totalCost; _transferRequest.FundingCap = fundingCap; _transferRequest.Status = status; //Act var result = _sut.MapToTransferRequestViewModel(_transferRequest); //Assert Assert.AreEqual(expectShowWarning, result.ShowFundingCapWarning); }
public async Task TrainingName_IsMapped(TransferApprovalStatus transferApprovalStatus, decimal transferCost, int fundingCap, bool showFundingCapWarning) { // Arrange _getTransferRequestResponse.Status = transferApprovalStatus; _getTransferRequestResponse.TransferCost = transferCost; _getTransferRequestResponse.FundingCap = fundingCap; //Act var result = await _mapper.Map(_request); //Assert Assert.AreEqual(showFundingCapWarning, result.ShowFundingCapWarning); }
public void CommitmentIsTransferFundedAndStatusesAreInvalid(TransferApprovalStatus transferApprovalStatus, EditStatus editStatus) { var commitment = new CommitmentListItem { AgreementStatus = AgreementStatus.NotAgreed, ApprenticeshipCount = 1, LastAction = LastAction.None, EditStatus = editStatus, TransferSenderId = 1, TransferApprovalStatus = transferApprovalStatus }; Assert.Throws <Exception>(() => commitment.GetStatus()); }
public void ThenCohortTransferRejectionIsIndicated(TransferApprovalStatus status, bool expectRejectionIndicated) { var apprenticeship = new Apprenticeship(); var commitment = new CommitmentView { TransferSender = new TransferSender { TransferApprovalStatus = status } }; var viewModel = Sut.MapToApprenticeshipViewModel(apprenticeship, commitment); Assert.AreEqual(expectRejectionIndicated, viewModel.IsInTransferRejectedCohort); }
public void Arrange() { _mediator = new Mock <IMediator>(); _mediator.Setup(m => m.SendAsync(It.IsAny <SendNotificationCommand>())) .Callback <IAsyncRequest <Unit> >(c => _sendNotificationCommand = c as SendNotificationCommand) .Returns(Task.FromResult(new Unit())); _hashingService = new Mock <IHashingService>(); _employermailNotificationService = new EmployerEmailNotificationService(_mediator.Object, Mock.Of <ILog>(), _hashingService.Object); _exampleCommitmentView = new CommitmentView { EmployerLastUpdateInfo = new LastUpdateInfo { EmailAddress = EmployersEmailAddress }, EmployerAccountId = EmployerAccountId, LegalEntityName = EmployerName, Reference = CohortReference, TransferSender = new TransferSender { Name = SenderName } }; _transferApprovalStatus = TransferApprovalStatus.Approved; _tokens = new Dictionary <string, string> { { "cohort_reference", CohortReference }, { "employer_name", EmployerName }, { "sender_name", SenderName }, { "employer_hashed_account", HashedEmployerAccountId }, }; _act = async() => await _employermailNotificationService.SendSenderApprovedOrRejectedCommitmentNotification(_exampleCommitmentView, _transferApprovalStatus); }
public void Arrange() { _configuration = new EmployerCommitmentsServiceConfiguration { CommitmentNotification = new CommitmentNotificationConfiguration { SendEmail = true } }; _providerEmailService = new Mock <IProviderEmailService>(); _providerEmailService.Setup(x => x.SendEmailToAllProviderRecipients(It.IsAny <long>(), It.IsAny <string>(), It.IsAny <EmailMessage>())) .Callback <long, string, EmailMessage>((l, s, m) => _sentEmailMessage = m) .Returns(Task.CompletedTask); _providerEmailNotificationService = new ProviderEmailNotificationService(_providerEmailService.Object, Mock.Of <ILog>(), Mock.Of <IHashingService>(), _configuration); _exampleCommitmentView = new CommitmentView { Reference = CohortReference, ProviderId = ProviderId, ProviderLastUpdateInfo = new LastUpdateInfo { EmailAddress = ProviderLastUpdatedByEmail } }; _transferApprovalStatus = TransferApprovalStatus.Approved; _tokens = new Dictionary <string, string> { { "cohort_reference", CohortReference }, { "ukprn", ProviderId.ToString() } }; _act = async() => await _providerEmailNotificationService.SendSenderApprovedOrRejectedCommitmentNotification(_exampleCommitmentView, _transferApprovalStatus); }
public void ShouldReturnARequestStatus(TransferApprovalStatus transferApprovalStatus, EditStatus editStatus, RequestStatus requestStatus) { var commitment = new CommitmentView { TransferSender = new TransferSender { Id = 1, Name = "Name", TransferApprovalStatus = transferApprovalStatus }, AgreementStatus = AgreementStatus.BothAgreed, EditStatus = editStatus, Apprenticeships = new List <Apprenticeship> { new Apprenticeship(), new Apprenticeship() }, Messages = new List <MessageView>() }; _mockMediator = GetMediator(commitment); SetUpOrchestrator(); var result = _orchestrator.GetCommitmentDetails(1L, "ABBA213").Result; result.Status.Should().Be(requestStatus); }
public void ThenMappingATransferRequestWithAppenticesMapsFieldsCorrectly(TransferApprovalStatus status, string statusDescription) { _transferRequest.Status = status; var result = _sut.MapToTransferRequestViewModel(_transferRequest); Assert.AreEqual($"PRI{_transferRequest.SendingEmployerAccountId}", result.HashedTransferSenderAccountId); Assert.AreEqual($"PUB{_transferRequest.SendingEmployerAccountId}", result.PublicHashedTransferSenderAccountId); Assert.AreEqual($"PRI{_transferRequest.ReceivingEmployerAccountId}", result.HashedTransferReceiverAccountId); Assert.AreEqual($"PUB{_transferRequest.ReceivingEmployerAccountId}", result.PublicHashedTransferReceiverAccountId); Assert.AreEqual($"PRI{_transferRequest.CommitmentId}", result.HashedCohortReference); Assert.AreEqual("LegalEntityName", result.LegalEntityName); Assert.AreEqual(10999m, result.TotalCost); Assert.AreEqual(2, result.TrainingList.Count); Assert.AreEqual("Course1", result.TrainingList[0].CourseTitle); Assert.AreEqual(2, result.TrainingList[0].ApprenticeshipCount); Assert.AreEqual("Course1 (2 Apprentices)", result.TrainingList[0].SummaryDescription); Assert.AreEqual("Course2", result.TrainingList[1].CourseTitle); Assert.AreEqual(21, result.TrainingList[1].ApprenticeshipCount); Assert.AreEqual("Course2 (21 Apprentices)", result.TrainingList[1].SummaryDescription); Assert.AreEqual(statusDescription, result.TransferApprovalStatusDesc); Assert.AreEqual("tester", result.TransferApprovalSetBy); Assert.AreEqual(new DateTime(2018, 3, 1), result.TransferApprovalSetOn); Assert.AreEqual(20000, result.FundingCap); }
public void CommitmentIsTransferFundedAndInValidState(RequestStatus expectedResult, EditStatus editStatus, TransferApprovalStatus transferApprovalStatus) { var commitment = new CommitmentListItem { AgreementStatus = AgreementStatus.NotAgreed, ApprenticeshipCount = 1, LastAction = LastAction.None, EditStatus = editStatus, TransferSenderId = 1, TransferApprovalStatus = transferApprovalStatus }; var status = commitment.GetStatus(); Assert.AreEqual(expectedResult, status); }
public async Task WhenCallingRejectOnTransferRequest_ThenTransferApprovalStatusHandledCorrectly(TransferApprovalStatus status, bool shouldThrowException) { _fixture .WithTransferRequestAndCohortInDatabase() .WithTransferApprovalStatus(status); if (shouldThrowException) { Assert.ThrowsAsync <InvalidOperationException>(async() => await _fixture.Act()); } else { await _fixture.Act(); } }
public void ThenThrowErrorIfTranferIsAlreadyApprovedOrRejected(TransferApprovalStatus status) { _repositoryCommitment.TransferSender.TransferApprovalStatus = status; Assert.CatchAsync <InvalidRequestException>(async() => await _sut.Handle(_command)); }
public void ThenTransferSenderFieldsAreMappedCorrectly(CallerType callerType, bool canEmployerApprove, bool canProviderApprove, TransferApprovalStatus transferStatus) { var commitment = new Commitment { TransferSenderId = 1, TransferSenderName = "Transfer Sender Org", TransferApprovalStatus = transferStatus, TransferApprovalActionedOn = new DateTime(2018, 09, 09), TransferApprovalActionedByEmployerName = "Name", ProviderCanApproveCommitment = canProviderApprove, EmployerCanApproveCommitment = canEmployerApprove, }; var result = _mapper.MapFrom(commitment, callerType); Assert.AreEqual(1, result.TransferSender.Id); Assert.AreEqual("Transfer Sender Org", result.TransferSender.Name); Assert.AreEqual(transferStatus, (TransferApprovalStatus)result.TransferSender.TransferApprovalStatus); Assert.AreEqual(new DateTime(2018, 09, 09), result.TransferSender.TransferApprovalSetOn); Assert.AreEqual("Name", result.TransferSender.TransferApprovalSetBy); Assert.AreEqual(true, result.CanBeApproved); }
public async Task ThenIfTheCohortIsFundedByATransferThenDeleteButtonShouldBeHidden(TransferApprovalStatus status) { CommitmentView.AgreementStatus = AgreementStatus.BothAgreed; CommitmentView.EditStatus = EditStatus.EmployerOnly; CommitmentView.TransferSender = new TransferSender { Id = 123, TransferApprovalStatus = status }; var result = await EmployerCommitmentOrchestrator.GetCommitmentDetails("HashedAccId", "HashedCmtId", "ExtUserId"); Assert.IsTrue(result.Data.HideDeleteButton); }
public WhenSendingCohortToOtherPartyTestsFixture SetTransferApprovalStatus(TransferApprovalStatus status) { Cohort.Set(x => x.TransferApprovalStatus, status); return(this); }
public WhenApprovingCohortFixture SetTransferApprovalStatus(TransferApprovalStatus status) { Cohort.Set(x => x.TransferApprovalStatus, status); return(this); }
public RejectTransferRequestCommandHandlerTestsFixture WithTransferApprovalStatus(TransferApprovalStatus status) { _transferRequest.Status = status; return(this); }