/// <summary> /// Is called to execute a transaction /// </summary> /// <param name="transaction">The transaction to execute</param> /// <returns>True if transaction went well</returns> public bool ExecuteTransaction(Transaction transaction) { var paymentProvider = _paymentProviders.First(p => p.Type == transaction.PaymentType); var transferSuccess = paymentProvider.TransferAmount(transaction.Price, transaction.Description); var transferStatus = paymentProvider.TransactionStatus(); if (transferSuccess && transferStatus) { CashDrawer.Open(); transaction.Status = TransactionStatus.Completed; _paymentDao.Insert(transaction); return(true); } transaction.Status = TransactionStatus.Failed; _paymentDao.Insert(transaction); return(false); }
public void Insert_InsertTransaktionFromDB_CallDalInsert() { _uut.Insert(_fakeTransaction); _fakeDalFacade.Received(1).UnitOfWork.TransactionRepository.Insert(_fakeTransaction); }