public void CreateTransfer_test(string senderUsername, string receiverUsername, int transferType, double amount) { //todo this should be in the TransferController test. If we knew how to test controllers that is... //arrange AccountSqlDAO accountDao = new AccountSqlDAO(connectionString); UserSqlDAO userDao = new UserSqlDAO(connectionString); int senderAccountId = (int)accountDao.GetDefaultAccountIdForUserId(userDao.GetApiUser(senderUsername).UserId); int receiverAccountId = (int)accountDao.GetDefaultAccountIdForUserId(userDao.GetApiUser(receiverUsername).UserId); TransferStatus transferStatus = transferType == (int)TransferType.Send ? TransferStatus.Approved : TransferStatus.Pending; Transfer transferToCreate = new Transfer() { AccountFromId = senderAccountId, AccountToId = receiverAccountId, TransferType = (TransferType)transferType, TransferStatus = transferStatus, Amount = (decimal)amount }; //act Transfer actualTransfer = dao.CreateTransfer(transferToCreate); //assert Assert.IsNotNull(actualTransfer); Assert.AreEqual(transferToCreate.AccountFromId, actualTransfer.AccountFromId); Assert.AreEqual(senderUsername, actualTransfer.UsernameFrom); Assert.AreEqual(transferToCreate.AccountToId, actualTransfer.AccountToId); Assert.AreEqual(receiverUsername, actualTransfer.UsernameTo); Assert.AreEqual(transferToCreate.TransferType, actualTransfer.TransferType); Assert.AreEqual(transferToCreate.TransferStatus, actualTransfer.TransferStatus); Assert.AreEqual(transferToCreate.Amount, actualTransfer.Amount); }
public void CreateTransferTest() { // Arrange Transfer transfer = new Transfer(); transfer.TransferType = TransferType.Send; transfer.TransferStatus = TransferStatus.Approved; transfer.AccountFrom = 1; transfer.AccountTo = 2; transfer.Amount = 20; int maxIdBeforeTransfer = GetMaxTransferId(); // Act bool actualResult = dao.CreateTransfer(transfer); int maxIdAfterTransfer = GetMaxTransferId(); Transfer returnedTranForMaxId = GetTransferByTransferId(maxIdAfterTransfer); // Assert Assert.IsTrue(actualResult); Assert.AreEqual(980, GetBalanceByAccount(returnedTranForMaxId.AccountFrom)); Assert.AreEqual(1020, GetBalanceByAccount(returnedTranForMaxId.AccountTo)); Assert.IsTrue(maxIdAfterTransfer == maxIdBeforeTransfer + 1); Assert.IsTrue(transfer.TransferType == returnedTranForMaxId.TransferType); Assert.IsTrue(transfer.TransferStatus == returnedTranForMaxId.TransferStatus); Assert.IsTrue(transfer.UserNameFrom == returnedTranForMaxId.UserNameFrom); Assert.IsTrue(transfer.UserNameTo == returnedTranForMaxId.UserNameTo); Assert.IsTrue(transfer.Amount == returnedTranForMaxId.Amount); Assert.IsTrue(transfer.AccountFrom == returnedTranForMaxId.AccountFrom); Assert.IsTrue(transfer.AccountTo == returnedTranForMaxId.AccountTo); }
public ActionResult <Transfer> SendMoney(Transfer incomingTransfer) { if (incomingTransfer.Transfer_status_id == 2) { if (AccountDAO.UpdateBalance(0 - incomingTransfer.Amount, incomingTransfer.Account_from)) { if (AccountDAO.UpdateBalance(incomingTransfer.Amount, incomingTransfer.Account_to)) { Transfer result = TransferDAO.CreateTransfer(incomingTransfer); return(Created($"/transfers/{result.Transfer_id}", result)); } } } else { Transfer result = TransferDAO.CreateTransfer(incomingTransfer); return(Created($"/transfers/{result.Transfer_id}", result)); } return(null); }