public void MakeTransaction_ShouldMakeTransactionBetweenTwoAccounts() { DateTime date = DateTime.UtcNow; var data = new List <UserAccount>() { new UserAccount(1, "Georgi Georgiev", "11/06/2000", "0878444484", "bul Bulgaria 4", "Smolyan", "Smolyan", "Male", "married", null, null, 7500, date.ToString()), new UserAccount(2, "Ivan Ivanov", "22/11/2001", "0878171711", "bul Bulgaria 3", "Smolyan", "Smolyan", "Male", "married", null, null, 5000, date.ToString()) }.AsQueryable(); var mockSet = new Mock <DbSet <UserAccount> >(); mockSet.As <IQueryable <UserAccount> >().Setup(m => m.Provider).Returns(data.Provider); mockSet.As <IQueryable <UserAccount> >().Setup(m => m.Expression).Returns(data.Expression); mockSet.As <IQueryable <UserAccount> >().Setup(m => m.ElementType).Returns(data.ElementType); mockSet.As <IQueryable <UserAccount> >().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator()); var mockContext = new Mock <banking_dbContext>(); mockContext.Setup(c => c.UserAccount).Returns(mockSet.Object); var service = new UserAccountController(mockContext.Object); data.ToList().ForEach(a => service.Add(a)); service.MakeTransaction(100, data.First(), data.Last()); Assert.AreEqual(7400, data.First().Balance); }
//Run when "Transfer" button is clicked. Creates transfer, make operation between accounts and send saves to the database via TransferController. private void btnTransfer_Click(object sender, EventArgs e) { decimal accNo = Convert.ToDecimal(txtTransferFrom.Text); var accSend = accController.Get(accNo).FirstOrDefault(); txtName.Text = accSend.Name; decimal b1 = Convert.ToDecimal(accSend.Balance); decimal totalbal = Convert.ToDecimal(txtTransfer.Text); decimal transferaccNo = Convert.ToDecimal(txtTransferDestination.Text); if (b1 > totalbal) { var accRecieve = accController.Get(transferaccNo).FirstOrDefault(); accController.MakeTransaction(totalbal, accSend, accRecieve); Transfer transfer = new Transfer(); { transfer.AccountNo = Convert.ToDecimal(txtTransferFrom.Text); transfer.ToTransfer = Convert.ToDecimal(txtTransferDestination.Text); transfer.Date = DateTime.UtcNow.ToString(); transfer.Name = txtName.Text; transfer.Balance = Convert.ToDecimal(txtTransfer.Text); } transferController.Add(transfer); MessageBox.Show($"Успешeно преведохте {transfer.Balance}лв. по сметката на {accRecieve.Name}!"); } }