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 }
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 }
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); }
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)); }
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)); }
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); }