Exemplo n.º 1
0
        public void WithdrawMoreThanBalanceGivesError()
        {
            //Arrange
            Account testAccount = new Account(new Transaction[] {
                new Transaction()
                {
                    ID = 1, Amount = 100, BalanceAccountNumber = 987654
                },
                new Transaction()
                {
                    ID = 2, Amount = -0.05, BalanceAccountNumber = 123456
                }
            })
            {
                AccountNumber = 7
            };
            IBank fakeBank = Mock.Create <IBank>();

            Mock.Arrange(() => fakeBank.GetAccountByNumber(7)).Returns(testAccount).MustBeCalled();

            HomeController controller     = new HomeController(fakeBank);
            double         expectedResult = testAccount.Balance;

            // Act
            ViewResult result = controller.Withdraw(7, 100) as ViewResult;

            Assert.IsNotNull(result);

            Account account      = result.Model as Account;
            string  actualResult = result.ViewBag.ErrorMessage;

            // Assert
            Assert.IsTrue(actualResult.Contains("Insufficient funds."));
            Assert.AreEqual(expectedResult, account.Balance); //No change done to the account
        }
Exemplo n.º 2
0
        public void WithdrawNegGivesError()
        {
            //Arrange
            Account testAccount = new Account(new Transaction[] {
                new Transaction()
                {
                    ID = 1, Amount = 100, BalanceAccountNumber = 987654
                },
                new Transaction()
                {
                    ID = 2, Amount = -0.05, BalanceAccountNumber = 123456
                }
            })
            {
                AccountNumber = 7
            };

            IBank fakeBank = Mock.Create <IBank>();

            Mock.Arrange(() => fakeBank.GetAccountByNumber(7)).Returns(testAccount);

            HomeController controller     = new HomeController(fakeBank);
            double         expectedResult = testAccount.Balance;

            // Act
            ViewResult result       = controller.Withdraw(7, -300.1) as ViewResult;
            Account    account      = result.Model as Account;
            string     actualResult = result.ViewBag.ErrorMessage;

            // Assert
            Assert.IsTrue(actualResult.StartsWith("Cannot withdraw an amount less than or equal 0."));
            Assert.AreEqual(expectedResult, account.Balance); //No change done to the account
        }
Exemplo n.º 3
0
        public void TransactionsGivenValidAccountNrReturnsAccount()
        {
            //Arrange
            Account expectedResult = new Account(new Transaction[] {
                new Transaction()
                {
                    ID = 1, Amount = 100, BalanceAccountNumber = 987654
                },
                new Transaction()
                {
                    ID = 2, Amount = -0.05, BalanceAccountNumber = 123456
                }
            })
            {
                AccountNumber = 7
            };

            IBank fakeBank = Mock.Create <IBank>();

            Mock.Arrange(() => fakeBank.GetAccountByNumber(7)).Returns(expectedResult).MustBeCalled();

            HomeController controller = new HomeController(fakeBank);

            // Act
            ViewResult result       = controller.Transactions(7) as ViewResult;
            Account    actualResult = result.Model as Account;

            // Assert
            Assert.AreEqual(expectedResult, actualResult);
        }
Exemplo n.º 4
0
        public ActionResult Balance(int accountNumber = 0)
        {
            IEnumerable <Account> resultList;

            if (accountNumber != 0)
            {
                resultList = new List <Account>()
                {
                    bank.GetAccountByNumber(accountNumber)
                };
            }
            else
            {
                resultList = bank.GetAllAccounts();
            }

            return(View(resultList));
        }
Exemplo n.º 5
0
        public void TransactionsGivenInValidAccountNrReturnsHttpNotFound()
        {
            //Arrange
            IBank fakeBank = Mock.Create <IBank>();

            Mock.Arrange(() => fakeBank.GetAccountByNumber(-13)).Returns(null as Account);

            HomeController controller = new HomeController(fakeBank);

            // Act
            ActionResult actualResult = controller.Transactions(-13);

            // Assert
            Assert.IsInstanceOfType(actualResult, typeof(HttpNotFoundResult));
        }
Exemplo n.º 6
0
        public void BalanceGiven7ShowsBalanceForAccount7()
        {
            //Arrange
            Account expectedResult = new Account()
            {
                AccountNumber = 7
            };

            IBank fakeBank = Mock.Create <IBank>();

            Mock.Arrange(() => fakeBank.GetAccountByNumber(7)).Returns(expectedResult).MustBeCalled();

            HomeController controller = new HomeController(fakeBank);

            // Act
            ViewResult result       = controller.Balance(7) as ViewResult;
            Account    actualResult = (result.Model as IEnumerable <Account>).First();

            // Assert
            Assert.AreEqual(expectedResult, actualResult);
        }