public void WithdrawWithBalancePositive() { var depositValue = 50.5m; var withdrawValue = 10.2m; var expectedBalance = depositValue - withdrawValue; var hardwareMock = new HardwareMock(number, depositValue, withdrawValue); var serviceMock = new RemoteServiceMock(account); var cashMachine = new cashMachine.CashMachine(hardwareMock, serviceMock); cashMachine.Login(); cashMachine.Deposit(); var result = cashMachine.Withdraw(); var balance = cashMachine.AccountBalance(); hardwareMock.VerifyCalledMethod(HardwareMock.MethodGetValueToWithdraw, null, withdrawValue); serviceMock.VerifyCalledMethod(RemoteServiceMock.MethodPersitAccount, new object[] { account }, null, 2); Assert.AreEqual(string.Format(CourseraTDD.CashMachine.CashMachine.SuccessBalanceMessage, expectedBalance), balance); Assert.AreEqual(CourseraTDD.CashMachine.CashMachine.SuccessWithdrawMessage, result); }
public void RequestEmptyBalance() { var hardwareMock = new HardwareMock(number); var serviceMock = new RemoteServiceMock(account); var cashMachine = new cashMachine.CashMachine(hardwareMock, serviceMock); cashMachine.Login(); var ballance = cashMachine.AccountBalance(); Assert.AreEqual(string.Format(CourseraTDD.CashMachine.CashMachine.SuccessBalanceMessage, 0), ballance); }
public void RequestBalanceWithValue() { var depositValue = 50.5m; var hardwareMock = new HardwareMock(number, depositValue); var serviceMock = new RemoteServiceMock(account); var cashMachine = new cashMachine.CashMachine(hardwareMock, serviceMock); cashMachine.Login(); cashMachine.Deposit(); var ballance = cashMachine.AccountBalance(); Assert.AreEqual(string.Format(CourseraTDD.CashMachine.CashMachine.SuccessBalanceMessage, depositValue), ballance); }
public void RequestBalanceNotAuthenticated() { var cashMachine = new cashMachine.CashMachine(null, null); Assert.Throws <NotAuthorizedException>(() => cashMachine.AccountBalance()); }