Example #1
0
        public async Task ThenIShouldGetTransferDetails()
        {
            //Assign
            var expectedViewModel = new TransferTransactionDetailsViewModel
            {
                ReceiverAccountName           = "Test Group",
                ReceiverAccountPublicHashedId = "GFH657",
                IsCurrentAccountSender        = true,
                TransferDetails = new List <AccountTransferDetails>()
            };

            var response = new GetTransferTransactionDetailsResponse
            {
                IsCurrentAccountSender        = true,
                ReceiverAccountName           = "Test Group",
                ReceiverAccountPublicHashedId = "GFH657",
                TransferDetails = new List <AccountTransferDetails>()
            };

            _mapper.Setup(x => x.Map <TransferTransactionDetailsViewModel>(response))
            .Returns(expectedViewModel);

            _mediator.Setup(x => x.SendAsync(It.IsAny <GetTransferTransactionDetailsQuery>()))
            .ReturnsAsync(response);

            //Act
            var result = await _controller.TransferDetail(_query);

            //Assert
            var view = result as ViewResult;

            var viewModel = view?.Model as TransferTransactionDetailsViewModel;

            Assert.AreEqual(expectedViewModel, viewModel);
        }
Example #2
0
        public void Assign()
        {
            _db = new Mock <EmployerFinanceDbContext>();

            _periodEnd = new PeriodEnd
            {
                Id                    = 1,
                PeriodEndId           = PeriodEnd,
                AccountDataValidAt    = DateTime.Now.AddDays(-2),
                CalendarPeriodMonth   = 2,
                CalendarPeriodYear    = 2018,
                CommitmentDataValidAt = DateTime.Now.AddDays(-1),
                CompletionDateTime    = DateTime.Now,
                PaymentsForPeriod     = "Test"
            };

            _senderTranferTransaction = new TransactionLineEntity
            {
                AccountId = SenderAccountId,
                TransferSenderAccountId   = SenderAccountId,
                TransferReceiverAccountId = ReceiverAccountId,
                PeriodEnd       = PeriodEnd,
                DateCreated     = DateTime.Now.AddDays(-2),
                TransactionType = TransactionItemType.Transfer
            };

            _recieverTranferTransaction = new TransactionLineEntity
            {
                AccountId = ReceiverAccountId,
                PeriodEnd = PeriodEnd,
                TransferSenderAccountId   = SenderAccountId,
                TransferReceiverAccountId = ReceiverAccountId,
                DateCreated     = DateTime.Now.AddDays(-1),
                TransactionType = TransactionItemType.Transfer
            };

            _publicHashingService = new Mock <IPublicHashingService>();

            _query = new GetTransferTransactionDetailsQuery
            {
                AccountId = ReceiverAccountId,
                TargetAccountPublicHashedId = SenderPublicHashedId,
                PeriodEnd = PeriodEnd
            };

            _response = new GetTransferTransactionDetailsResponse();

            _handler = new GetTransferTransactionDetailsQueryHandler(_db.Object, _publicHashingService.Object);

            _transfers = new List <AccountTransfer>
            {
                new AccountTransfer
                {
                    SenderAccountId     = SenderAccountId,
                    SenderAccountName   = SenderAccountName,
                    ReceiverAccountId   = ReceiverAccountId,
                    ReceiverAccountName = ReceiverAccountName,
                    ApprenticeshipId    = 1,
                    CourseName          = FirstCourseName,
                    Amount    = 123.4567M,
                    PeriodEnd = PeriodEnd
                },
                new AccountTransfer
                {
                    SenderAccountId     = SenderAccountId,
                    SenderAccountName   = SenderAccountName,
                    ReceiverAccountId   = ReceiverAccountId,
                    ReceiverAccountName = ReceiverAccountName,
                    ApprenticeshipId    = 2,
                    CourseName          = SecondCourseName,
                    Amount    = 346.789M,
                    PeriodEnd = PeriodEnd
                },
                new AccountTransfer
                {
                    SenderAccountId     = SenderAccountId,
                    SenderAccountName   = SenderAccountName,
                    ReceiverAccountId   = ReceiverAccountId,
                    ReceiverAccountName = ReceiverAccountName,
                    ApprenticeshipId    = 3,
                    CourseName          = SecondCourseName,
                    Amount    = 234.56M,
                    PeriodEnd = PeriodEnd
                }
            };

            _db.Setup(d => d.SqlQueryAsync <AccountTransfer>(
                          It.IsAny <string>(), SenderAccountId, ReceiverAccountId, PeriodEnd))
            .ReturnsAsync(_transfers);

            _db.Setup(d => d.SqlQueryAsync <AccountTransfer>(
                          It.IsAny <string>(), ReceiverAccountId, SenderAccountId, PeriodEnd))
            .ReturnsAsync(_transfers);

            _db.Setup(x => x.PeriodEnds).Returns(() => new DbSetStub <PeriodEnd>(_periodEnd));

            _db.Setup(x => x.Transactions).Returns(() => new DbSetStub <TransactionLineEntity>(
                                                       _senderTranferTransaction,
                                                       _recieverTranferTransaction));

            _publicHashingService.Setup(x => x.DecodeValue(SenderPublicHashedId))
            .Returns(SenderAccountId);

            _publicHashingService.Setup(x => x.DecodeValue(ReceiverPublicHashedId))
            .Returns(ReceiverAccountId);

            _publicHashingService.Setup(x => x.HashValue(SenderAccountId))
            .Returns(SenderPublicHashedId);

            _publicHashingService.Setup(x => x.HashValue(ReceiverAccountId))
            .Returns(ReceiverPublicHashedId);
        }