Example #1
0
        public void TransferHandler_Execute_AccountNotFoundException()
        {
            var accountHandler = new Moq.Mock <IAccountHandler>();

            var ammount       = new Models.Money();
            var origin        = new Models.Account();
            var destiny       = new Models.Account();
            var transactionId = Guid.NewGuid();

            var transaction = new Models.Transfer()
            {
                Ammount = ammount,
                Origin  = origin,
                Destiny = destiny
            };

            accountHandler
            .Setup(a => a.BlockAmmount(origin, ammount))
            .Returns(transactionId);

            accountHandler
            .Setup(a => a.SendMoney(destiny, ammount, transactionId))
            .Throws(new AccountNotFoundException());

            var    transferHandler = new TransferHandler(accountHandler.Object);
            Action throwException  = () => transferHandler.Execute(transaction);

            Assert.Throws <AccountNotFoundException>(throwException);

            accountHandler.Verify(a => a.BlockAmmount(origin, ammount), Moq.Times.Once);
            accountHandler.Verify(a => a.SendMoney(destiny, ammount, transactionId), Moq.Times.Once);
            accountHandler.Verify(a => a.ConfirmTransaction(transactionId), Moq.Times.Never);
            accountHandler.Verify(a => a.RevertTransaction(transactionId), Moq.Times.Once);
        }
Example #2
0
        public void TransferHandler_Execute_NotEnoughMoneyException()
        {
            var accountHandler = new Moq.Mock <IAccountHandler>();

            var ammount = new Models.Money();
            var origin  = new Models.Account();

            var transaction = new Models.Transfer()
            {
                Ammount = ammount,
                Origin  = origin,
                Destiny = new Models.Account()
            };

            accountHandler
            .Setup(a => a.BlockAmmount(origin, ammount))
            .Throws(new NotEnoughMoneyException());

            var    transferHandler = new TransferHandler(accountHandler.Object);
            Action throwException  = () => transferHandler.Execute(transaction);

            Assert.Throws <NotEnoughMoneyException>(throwException);

            accountHandler.Verify(a => a.BlockAmmount(origin, ammount), Moq.Times.Once);
            accountHandler.Verify(a => a.SendMoney(Moq.It.IsAny <Models.Account>(), Moq.It.IsAny <Models.Money>(), Moq.It.IsAny <Guid>()), Moq.Times.Never);
            accountHandler.Verify(a => a.ConfirmTransaction(Moq.It.IsAny <Guid>()), Moq.Times.Never);
            accountHandler.Verify(a => a.RevertTransaction(Moq.It.IsAny <Guid>()), Moq.Times.Never);
        }
Example #3
0
        public IActionResult Transfer(TransferViewModel model)
        {
            if (ModelState.IsValid)
            {
                var command = new TransferCommand
                {
                    AccountId_Sender   = model.AccountIdSender,
                    AccountId_Reciever = model.AccountIdReciever,
                    Amount             = model.Amount
                };

                var query = new TransferHandler(new BankContext()).Handler(command);

                if (query.IsCompletedSuccessfully)
                {
                    TempData["Success"] = $"{model.Amount.ToString("C")} transferred from {model.BalanceSender} to {model.AccountIdReciever}";
                    return(View());
                }
                else
                {
                    TempData["Error"] = $"Transfer failed";
                    return(View());
                }
            }

            return(NotFound());
        }
Example #4
0
        public void TransferHandler_Execute_Succesfull()
        {
            var accountHandler = new Moq.Mock <IAccountHandler>();

            var ammount       = new Models.Money();
            var origin        = new Models.Account();
            var destiny       = new Models.Account();
            var transactionId = Guid.NewGuid();

            var transaction = new Models.Transfer()
            {
                Ammount = ammount,
                Origin  = origin,
                Destiny = destiny
            };

            accountHandler
            .Setup(a => a.BlockAmmount(origin, ammount))
            .Returns(transactionId);

            var transferHandler         = new TransferHandler(accountHandler.Object);
            var proccessedTransactionId = transferHandler.Execute(transaction);

            Assert.Equal(transactionId, proccessedTransactionId);

            accountHandler.Verify(a => a.BlockAmmount(origin, ammount), Moq.Times.Once);
            accountHandler.Verify(a => a.SendMoney(destiny, ammount, transactionId), Moq.Times.Once);
            accountHandler.Verify(a => a.ConfirmTransaction(transactionId), Moq.Times.Once);
            accountHandler.Verify(a => a.RevertTransaction(Moq.It.IsAny <Guid>()), Moq.Times.Never);
        }
Example #5
0
        public IActionResult TransferNoney(TransferMoney transferMoney)
        {
            var transferHandler = new TransferHandler(new AccountService());
            var id = Convert.ToInt32(HttpContext.User.Claims.First(c => c.Type == "id").Value);

            transferHandler.Handle(transferMoney, id);
            return(Ok());
        }
Example #6
0
        /// <summary>Starts and shows progress for an upload.</summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected override void MainBWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            TransferHandler.UploadAsync(RemoteFile, LocalFile, Overwrite);

            while (TransferHandler.Busy)
            {
                MainBWorker.ReportProgress(Convert.ToInt32(TransferHandler.Progress * 100));
                Thread.Sleep(100);
            }
        }
Example #7
0
        private OperationHandler initializeChain()
        {
            //init from end to beginning of chain
            var takeLoanHandler           = new TakeLoanHandler(null);
            var openLoanAccountHandler    = new OpenLoanAccountHandler(takeLoanHandler);
            var openDepositAccountHandler = new OpenDepositAccountHandler(openLoanAccountHandler);
            var openDebitAccountHandler   = new OpenDebitAccountHandler(openDepositAccountHandler);
            var openAccountHandler        = new OpenAccountHandler(openDebitAccountHandler);
            var chargeInstallmentHandler  = new ChargeInstallmentHandler(openAccountHandler);
            var transferHandler           = new TransferHandler(chargeInstallmentHandler);

            return(transferHandler); //first handler
        }
Example #8
0
        public void VerifyCorrectBalanceAfterTransfer(decimal fromBalance, decimal toBalance, decimal amount)
        {
            var db = new MockDb();
            var transactionHandler = new TransferHandler(db);

            var fromAccount = new Account()
            {
                Balance = fromBalance
            };
            var toAccount = new Account()
            {
                Balance = toBalance
            };

            transactionHandler.Transfer(fromAccount, toAccount, amount);

            Assert.True(fromAccount.Balance == fromBalance - amount);
            Assert.True(toAccount.Balance == toBalance + amount);
        }
Example #9
0
        public void ExecuteExceptionsTest(long amountParam, int accountListIdx, int toAccountIdx, string errorMsg)
        {
            var transfer    = new Mock <Transfer>();
            var bank        = new Mock <Bank>();
            var accountList = GetAccountList(accountListIdx);

            bank.Setup(t => t.getAccounts()).Returns(accountList);
            bank.Setup(t => t.accountPrefix).Returns("B");
            transfer.Setup(t => t.Money).Returns(new Money(amountParam));
            transfer.SetupGet(t => t.Bank).Returns(bank.Object);
            transfer.Setup(t => t.FromAccount).Returns(accountList.ElementAtOrDefault(0));
            transfer.Setup(t => t.ToAccountNumber).Returns(GetAccountList(2)[toAccountIdx].AccountNumber.ToString);

            var transferHandler = new TransferHandler(null);

            Assert.Throws(Is.TypeOf <Exception>()
                          .And.Message.EqualTo(errorMsg),
                          () => transferHandler.handle(transfer.Object));
        }
Example #10
0
        public ActionResult CreateTransfer(ShoesTransferViewModel model, FormCollection form)
        {
            TransferHandler handler = new TransferHandler();
            TransferRecord  record  = new TransferRecord()
            {
                outlet_Id      = model.transferRecord.outlet_Id,
                dateOfTransfer = model.transferRecord.dateOfTransfer
            };

            habib.TransferRecords.Add(record);
            habib.SaveChanges();
            int outletId = Convert.ToInt32(model.transferRecord.outlet_Id);

            record.shoesTransfered = handler.TransferShoes(record.transfer_Id, outletId, model.shoes, model.sizes, model.colors, model.qty);

            habib.SaveChanges();


            return(View("OutletSelect"));
        }
Example #11
0
        public void ShouldntBeAbleToWithdrawMoreThanBalanceYo(decimal fromBalance, decimal toBalance, decimal amount)
        {
            var db = new MockDb();
            var transactionHandler = new TransferHandler(db);

            var fromAccount = new Account()
            {
                Balance = fromBalance
            };
            var toAccount = new Account()
            {
                Balance = toBalance
            };

            var result = transactionHandler.Transfer(fromAccount, toAccount, amount);

            //Assert.Throws<InvalidTransactionException>(() => transactionHandler.Transfer(fromAccount, toAccount, amount));
            Assert.False(result.IsSuccessful);
            Assert.True(fromAccount.Balance == fromBalance);
        }
Example #12
0
        private static void Exchange()
        {
            Console.WriteLine("Schimb Valutar:");
            Console.WriteLine("Dati moneda curenta: (max. 3 litere)");
            string fCurrency = Console.ReadLine();

            Console.WriteLine("Dati moneda in care doriti sa se faca schimbul valutar: (max. 3 litere)");
            string tCurrency = Console.ReadLine();

            Console.WriteLine("Dati suma pe care doriti sa o cumparati:");
            bool      ok           = Double.TryParse(Console.ReadLine(), out double val);
            ECurrency fromCurrency = ECurrency.NO_CURRENCY;
            ECurrency toCurrency   = ECurrency.NO_CURRENCY;

            ProcessInput(fCurrency, ref fromCurrency, tCurrency, ref toCurrency);
            if (ok)
            {
                TransferHandler handler = new TransferHandler();
                handler.CashOut(fromCurrency, toCurrency, val);
            }
        }
Example #13
0
        public void Transfer_InsufficientFunds()
        {
            var options = new DbContextOptionsBuilder <BankContext>()
                          .UseInMemoryDatabase(databaseName: "NegativeAmount")
                          .Options;

            using (var context = new BankContext(options))
            {
                var sender = new Account
                {
                    AccountId = 4,
                    Frequency = "Daily",
                    Balance   = 500
                };

                var reciever = new Account
                {
                    AccountId = 5,
                    Frequency = "Daily"
                };

                context.Accounts.AddRange(sender, reciever);
                context.SaveChanges();
            }

            using (var context = new BankContext(options))
            {
                var command = new TransferCommand()
                {
                    AccountId_Sender   = 4,
                    AccountId_Reciever = 5,
                    Amount             = 1000
                };

                var handler = new TransferHandler(context);
                Assert.ThrowsAsync <InsufficientFundsException>(() => handler.Handler(command));
            }
        }
Example #14
0
 public virtual T ReloadToken(string transferId)
 {
     return(TransferHandler.ReloadToken(transferId));
 }
Example #15
0
 public virtual TransferStatus GetTransferStatus(string transferId)
 {
     return(TransferHandler.GetTransferStatus(transferId));
 }
Example #16
0
 public virtual TransferStatus CancelTransfer(string transferId, AbortReason reason)
 {
     return(TransferHandler.CancelTransfer(transferId, reason));
 }
Example #17
0
 public virtual TransferStatus CompleteTransfer(string transferId)
 {
     return(TransferHandler.CompleteTransfer(transferId));
 }
Example #18
0
 public virtual OperationResult PauseTransfer(string transferId)
 {
     TransferHandler.PauseTransfer(transferId);
     return(new OperationResult.OK());
 }
        public static int TransferAsyncAll(int size, Action<object> process)
        {
            var scanResults = ConnectionManager.RemoteClient.Search<Object>(s => s
                .Index(SrcIndexName)
                .Type(SrcIndexType)
                .From(0)
                .Size(size)
                .MatchAll()
                .SearchType(SearchType.Scan)
                .Scroll(ScrollTime)
            );
            if (scanResults == null) return 0;
            TransferHandler handler = new TransferHandler(TransferCall);
            AnsycState state = new AnsycState
            {
                Handler = handler,
                Process = process

            };
            if (string.IsNullOrEmpty(scanResults.ScrollId)) return 0;
            handler.BeginInvoke(scanResults.ScrollId, process, TransferCallback, state);
            return Convert.ToInt32(scanResults.Total);
        }
        public static int TransferAsync(int size, DateTime from,DateTime to,Action<object> process)
        {
            //from = from.AddHours(-8);
            //to = to.AddHours(-8);
            var scanResults = ConnectionManager.RemoteClient.Search<Object>(s => s
                .Index(SrcIndexName)
                .Type(SrcIndexType)
                .From(0)
                .Size(size)
                .Query(q=>q.Range(r=>r.OnField("TimeStamp").Greater(from).LowerOrEquals(to)))
                .SearchType(SearchType.Scan)
                .Scroll(ScrollTime)
            );
            if (scanResults == null) return 0;
            TransferHandler handler = new TransferHandler(TransferCall);
            AnsycState state = new AnsycState
            {
                Handler = handler,
                Process = process

            };
            if (string.IsNullOrEmpty(scanResults.ScrollId)) return 0;
            handler.BeginInvoke(scanResults.ScrollId, process, TransferCallback, state);
            return Convert.ToInt32(scanResults.Total);
        }
 private void recreateOriginalText()
 {
     TransferHandler.MBM2XML("F:\\smt4_jpn\\RomFS");
     TransferHandler.XML2PO("F:\\smt4_jpn\\RomFS");
 }
 public TransactionController(TransferHandler transferHandler)
 {
     _transferHandler = transferHandler;
 }