public async Task ThenItShouldReturnTransfersFromRepo()
        {
            // Arrange
            var request  = new GetTransfersQueryRequest();
            var response = new GetTransfersQueryResponse
            {
                IsValid = true,
                Result  = new PageOfResults <AccountTransfer>
                {
                    Items = new AccountTransfer[0]
                }
            };

            var entities = new PageOfResults <TransferEntity>();

            _mockTransferRepository.Setup(x => x.GetTransfers(request.PageNumber, request.PageSize, request.SenderAccountId, null, null)).ReturnsAsync(entities);
            _mockMapper.Setup(x => x.Map <PageOfResults <AccountTransfer> >(entities)).Returns(response.Result);

            // Act
            var actualResult = await _getTransfersQueryHandler.Handle(request).ConfigureAwait(false);

            // Assert
            Assert.IsTrue(actualResult.IsValid);
            Assert.AreSame(response.Result, actualResult.Result);
        }
        public async Task ThenItShouldReturnInvalidResponseIfSomethingWrong()
        {
            // Arrange
            var request  = new GetTransfersQueryRequest();
            var response = new GetTransfersQueryResponse
            {
                IsValid   = false,
                Exception = new ApplicationException()
            };

            _mockTransferRepository.Setup(x => x.GetTransfers(request.PageNumber, request.PageSize, request.SenderAccountId, null, null)).Throws(response.Exception);

            // Act
            var actualResult = await _getTransfersQueryHandler.Handle(request).ConfigureAwait(false);

            // Assert
            Assert.IsFalse(actualResult.IsValid);
            Assert.AreSame(response.Exception, actualResult.Exception);
        }