Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
 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)
     });
 }
Ejemplo n.º 6
0
        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);
        }