public async Task Then_The_Api_Is_Called_With_The_Request_And_The_Application_Is_Returned( GetPledgeApplicationQuery query, GetPledgeApplicationResponse apiResponse, [Frozen] Mock <ILevyTransferMatchingApiClient <LevyTransferMatchingApiConfiguration> > apiClient, GetPledgeApplicationQueryHandler handler ) { apiClient.Setup(x => x.Get <GetPledgeApplicationResponse>(It.Is <GetPledgeApplicationRequest>(x => x.PledgeApplicationId == query.PledgeApplicationId))).ReturnsAsync(apiResponse); var actual = await handler.Handle(query, CancellationToken.None); actual.Should().BeEquivalentTo(apiResponse); }
public async Task <TransferRequestForSenderViewModel> Map(TransferRequestRequest source) { var transferRequestResponse = await _commitmentsApiClient.GetTransferRequestForSender(source.AccountId, source.TransferRequestId); GetPledgeApplicationResponse pledgeApplicationResponse = null; if (transferRequestResponse.PledgeApplicationId.HasValue) { pledgeApplicationResponse = await _approvalsApiClient.GetPledgeApplication(transferRequestResponse.PledgeApplicationId.Value); } var viewModel = Map(transferRequestResponse, pledgeApplicationResponse); return(viewModel); }
public void SetUp() { //Arrange var autoFixture = new Fixture(); _request = autoFixture.Build <TransferRequestRequest>() .With(x => x.AccountHashedId, $"A{AccountIdFirst}") .With(x => x.TransferRequestHashedId, $"A{TransferRequestIdFirst}") .Create(); _getPledgeApplicationId = autoFixture.Create <int>(); _getTransferRequestResponse = autoFixture.Build <GetTransferRequestResponse>() .With(x => x.ReceivingEmployerAccountId, ReceivingEmployerAccountIdFirst) .With(x => x.TransferRequestId, TransferRequestIdFirst) .With(x => x.PledgeApplicationId, _getPledgeApplicationId) .Create(); _mockCommitmentsApiClient = new Mock <ICommitmentsApiClient>(); _mockCommitmentsApiClient.Setup(r => r.GetTransferRequestForSender(It.IsAny <long>(), It.IsAny <long>(), CancellationToken.None)) .ReturnsAsync(_getTransferRequestResponse); _getPledgeApplicationResponse = autoFixture.Create <GetPledgeApplicationResponse>(); _mockApprovalsApiClient = new Mock <IApprovalsApiClient>(); _mockApprovalsApiClient.Setup(r => r.GetPledgeApplication(_getPledgeApplicationId, CancellationToken.None)) .ReturnsAsync(_getPledgeApplicationResponse); _mockEncodingService = new Mock <IEncodingService>(); _mockEncodingService.Setup(t => t.Encode(It.IsAny <long>(), EncodingType.AccountId)) .Returns((long value, EncodingType encodingType) => $"A{value}"); _mockEncodingService.Setup(t => t.Encode(It.IsAny <long>(), EncodingType.PublicAccountId)) .Returns((long value, EncodingType encodingType) => $"P{value}"); _mockEncodingService.Setup(t => t.Encode(It.IsAny <long>(), EncodingType.TransferRequestId)) .Returns((long value, EncodingType encodingType) => $"T{value}"); _mockEncodingService.Setup(t => t.Encode(It.IsAny <long>(), EncodingType.CohortReference)) .Returns((long value, EncodingType encodingType) => $"C{value}"); _mockEncodingService.Setup(t => t.Encode(It.IsAny <long>(), EncodingType.PledgeId)) .Returns((long value, EncodingType encodingType) => $"PL{value}"); _mockEncodingService.Setup(t => t.Encode(It.IsAny <long>(), EncodingType.PledgeApplicationId)) .Returns((long value, EncodingType encodingType) => $"PA{value}"); _mockEncodingService.Setup(t => t.Decode(It.IsAny <string>(), It.IsAny <EncodingType>())) .Returns((string value, EncodingType encodingType) => long.Parse(Regex.Replace(value, "[A-Za-z ]", ""))); _mapper = new TransferRequestForSenderViewModelMapper(_mockCommitmentsApiClient.Object, _mockApprovalsApiClient.Object, _mockEncodingService.Object); }
public async Task When_PledgeApplicationId_Has_Value_Return_False_If_PledgeApplication_Is_Not_Accepted( GetTransferValidityQuery query, GetPledgeApplicationResponse pledgeApplication, [Frozen] Mock <IAccountsApiClient <AccountsConfiguration> > mockAccountsApiClient, [Frozen] Mock <ILevyTransferMatchingApiClient <LevyTransferMatchingApiConfiguration> > mockApiClient, GetTransferValidityQueryHandler handler) { pledgeApplication.ReceiverEmployerAccountId = query.ReceiverId; pledgeApplication.SenderEmployerAccountId = query.SenderId; pledgeApplication.Status = "Declined"; mockApiClient .Setup(client => client.Get <GetPledgeApplicationResponse>(It.IsAny <GetPledgeApplicationRequest>())) .ReturnsAsync(pledgeApplication); var result = await handler.Handle(query, CancellationToken.None); Assert.IsFalse(result.IsValid); }
protected virtual T Map(GetTransferRequestResponse transferRequestResponse, GetPledgeApplicationResponse getPledgeApplicationResponse) { return(new T { HashedCohortReference = _encodingService.Encode(transferRequestResponse.CommitmentId, EncodingType.CohortReference), TrainingList = transferRequestResponse.TrainingList?.Select(MapTrainingCourse).ToList() ?? new List <TrainingCourseSummaryViewModel>(), TransferApprovalStatusDesc = transferRequestResponse.Status.ToString(), TransferApprovalStatus = transferRequestResponse.Status, TransferApprovalSetBy = transferRequestResponse.ApprovedOrRejectedByUserName, TransferApprovalSetOn = transferRequestResponse.ApprovedOrRejectedOn, TotalCost = transferRequestResponse.TransferCost, FundingCap = transferRequestResponse.FundingCap, ShowFundingCapWarning = (transferRequestResponse.Status == TransferApprovalStatus.Pending || transferRequestResponse.Status == TransferApprovalStatus.Approved) && transferRequestResponse.TransferCost < transferRequestResponse.FundingCap, AutoApprovalEnabled = transferRequestResponse.AutoApproval, HashedPledgeId = getPledgeApplicationResponse == null ? string.Empty : _encodingService.Encode(getPledgeApplicationResponse.PledgeId, EncodingType.PledgeId), HashedPledgeApplicationId = !transferRequestResponse.PledgeApplicationId.HasValue ? string.Empty : _encodingService.Encode(transferRequestResponse.PledgeApplicationId.Value, EncodingType.PledgeApplicationId) }); }
protected override TransferRequestForSenderViewModel Map(GetTransferRequestResponse transferRequestResponse, GetPledgeApplicationResponse getPledgeApplicationResponse) { var viewModel = base.Map(transferRequestResponse, getPledgeApplicationResponse); viewModel.TransferReceiverPublicHashedAccountId = _encodingService.Encode(transferRequestResponse.ReceivingEmployerAccountId, EncodingType.PublicAccountId); viewModel.TransferSenderHashedAccountId = _encodingService.Encode(transferRequestResponse.SendingEmployerAccountId, EncodingType.AccountId); viewModel.TransferReceiverName = transferRequestResponse.LegalEntityName; return(viewModel); }