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);
        }
Beispiel #3
0
        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);
        }