Exemple #1
0
        public void Cannot_execute_WithdrawalService_without_permissions()
        {
            // Arrange
            LogWithNewAdmin(Modules.OfflineDepositRequests, Permissions.View);

            // Act
            Assert.Throws <InsufficientPermissionsException>(() => _withdrawalService.GetWithdrawalsForVerification());
            Assert.Throws <InsufficientPermissionsException>(() => _withdrawalService.GetWithdrawalsForAcceptance());
            Assert.Throws <InsufficientPermissionsException>(() => _withdrawalService.GetWithdrawalsForApproval());
            Assert.Throws <InsufficientPermissionsException>(() => _withdrawalService.GetWithdrawalsCanceled());
            Assert.Throws <InsufficientPermissionsException>(() => _withdrawalService.GetWithdrawalsFailedAutoWagerCheck());
            Assert.Throws <InsufficientPermissionsException>(() => _withdrawalService.GetWithdrawalsOnHold());
            Assert.Throws <InsufficientPermissionsException>(() => _withdrawalService.Request(new OfflineWithdrawRequest()));
            Assert.Throws <InsufficientPermissionsException>(() => _withdrawalService.Verify(new Guid(), "Some remark"));
            Assert.Throws <InsufficientPermissionsException>(() => _withdrawalService.Unverify(new Guid(), "Some remark"));
            Assert.Throws <InsufficientPermissionsException>(() => _withdrawalService.Approve(new Guid(), "Some remark"));
            Assert.Throws <InsufficientPermissionsException>(() => _withdrawalService.Reject(new Guid(), "Some remark"));
            Assert.Throws <InsufficientPermissionsException>(() => _withdrawalService.PassWager(new Guid(), "Some remark"));
            Assert.Throws <InsufficientPermissionsException>(() => _withdrawalService.FailWager(new Guid(), "Some remark"));
            Assert.Throws <InsufficientPermissionsException>(() => _withdrawalService.PassInvestigation(new Guid(), "Some remark"));
            Assert.Throws <InsufficientPermissionsException>(() => _withdrawalService.FailInvestigation(new Guid(), "Some remark"));
            Assert.Throws <InsufficientPermissionsException>(() => _withdrawalService.Accept(new Guid(), "Some remark"));
            Assert.Throws <InsufficientPermissionsException>(() => _withdrawalService.Revert(new Guid(), "Some remark"));
            Assert.Throws <InsufficientPermissionsException>(() => _withdrawalService.Cancel(new Guid(), "Some remark"));
            Assert.Throws <InsufficientPermissionsException>(() => _withdrawalService.SaveExemption(new Exemption()));
        }
Exemple #2
0
        public async Task Can_cancel_withdrawal_request()
        {
            var player = _player;

            _walletRepository.SaveChanges();
            _paymentTestHelper.MakeDeposit(player.Id, 1000);
            await _gamesTestHelper.PlaceAndWinBet(1000, 10000, player.Id);

            Balance.Main = 10000;

            var response = _paymentTestHelper.MakeWithdraw(player.Id, _actorInfoProvider.Actor.UserName);

            _paymentTestHelper.AssertBalance(_player.Id
                                             , total: 10000, playable: 9999, main: 9999, free: 9999, withdrawalLock: 1);

            var cancelRemarkts = TestDataGenerator.GetRandomString(10);

            _withdrawalService.Cancel(response.Id, cancelRemarkts);
            var ow = _withdrawalService.GetWithdrawalsCanceled();

            Assert.IsNotEmpty(ow);
            Assert.AreEqual(1, ow.Count());

            _paymentTestHelper.AssertBalance(_player.Id
                                             , total: 10000, playable: 10000, main: 10000, free: 10000, withdrawalLock: 0);

            var withdraw = _paymentRepository.OfflineWithdraws.FirstOrDefault(x => x.Id == response.Id);

            withdraw.Status.Should().Be(WithdrawalStatus.Canceled);
            withdraw.CanceledTime.Should().BeCloseTo(DateTimeOffset.Now, 60000);
            withdraw.CanceledBy.Should().Be(_actorInfoProvider.Actor.UserName);
            withdraw.Remarks.Should().Be(cancelRemarkts);
        }
 public ActionResult CancelRequest(Guid requestId, string remark)
 {
     try
     {
         _service.Cancel(requestId, remark);
         return(this.Success("app:payment.withdraw.successfullyCanceled"));
     }
     catch (InvalidOperationException exception)
     {
         return(this.Failed(exception));
     }
 }
Exemple #4
0
        private void CancelOfflineWithdrawalRequest(WithdrawalStatus stateToGetInto)
        {
            _paymentTestHelper.MakeDeposit(_player.Id, 2000);
            Balance.Main = 2000;

            var response = _paymentTestHelper.MakeWithdraw(_player.Id, amount: 100);

            _withdrawalService.Revert(response.Id, "Revert to Verification Queue");

            /*
             */
            //Cancel withdrawal request
            if (stateToGetInto == WithdrawalStatus.Canceled)
            {
                _withdrawalService.Cancel(response.Id, "Cancel Withdrawal Request");
            }
            else if (stateToGetInto == WithdrawalStatus.Unverified)
            {
                _withdrawalService.Unverify(response.Id, "Unverify Withdrawal Request");
            }

            //Assert there's nothing in the "On Hold Queue"
            var withdrawalsInTheOnHoldQueue = _withdrawalService.GetWithdrawalsOnHold();

            Assert.IsEmpty(withdrawalsInTheOnHoldQueue);

            //Assert there's nothing in the "Release Queue"
            var withdrawalsInTheReleaseQueue = _withdrawalService.GetWithdrawalsForApproval();

            Assert.IsEmpty(withdrawalsInTheReleaseQueue);

            //Assert there's nothing in the "Acceptance Queue"
            var withdrawalsInTheAccQueue = _withdrawalService.GetWithdrawalsForAcceptance();

            Assert.IsEmpty(withdrawalsInTheAccQueue);

            //Assert there's nothing in the "Verification Queue"
            var withdrawalsInTheVerificationQueue = _withdrawalService.GetWithdrawalsForVerificationQueue();

            Assert.IsEmpty(withdrawalsInTheVerificationQueue);
        }
Exemple #5
0
        public async Task Can_revert_withhold_withdrawal_money_after_withdrawal_canceletion()
        {
            var player = _playerQueries.GetPlayers().ToList().First();

            _walletRepository.SaveChanges();
            _paymentTestHelper.MakeDeposit(player.Id, 1000);
            await _gamesTestHelper.PlaceAndWinBet(1000, 1100, player.Id);

            var offlineWithdrawalRequest = new OfflineWithdrawRequest
            {
                Amount              = 1000,
                NotificationType    = NotificationType.None,
                BankAccountTime     = _paymentRepository.PlayerBankAccounts.First().Created.ToString(),
                BankTime            = _paymentRepository.Banks.First().Created.ToString(),
                PlayerBankAccountId = _paymentRepository
                                      .PlayerBankAccounts
                                      .Include(x => x.Player)
                                      .First(x => x.Player.Id == player.Id)
                                      .Id,
                Remarks     = "asd",
                RequestedBy = _actorInfoProvider.Actor.UserName
            };

            var response = _withdrawalService.Request(offlineWithdrawalRequest);

            var playerBalance = await _walletQueries.GetPlayerBalance(player.Id);

            Assert.AreEqual(100, playerBalance.Free);
            Assert.AreEqual(1000, playerBalance.WithdrawalLock);

            _withdrawalService.Cancel(
                response.Id,
                TestDataGenerator.GetRandomString());

            playerBalance = await _walletQueries.GetPlayerBalance(player.Id);

            Assert.AreEqual(1100, playerBalance.Free);
            Assert.AreEqual(0, playerBalance.WithdrawalLock);
        }