-
You should be able to interact with the your code via a REPL like IRB or the JavaScript console. (You don't need to implement a command line interface that takes input from STDIN.)
-
Deposits, withdrawal.
-
Account statement (date, amount, balance) printing.
-
Data can be kept in memory (it doesn't need to be stored to a database or anything).
Given a client makes a deposit of 1000 on 10-01-2012 And a deposit of 2000 on 13-01-2012 And a withdrawal of 500 on 14-01-2012 When she prints her bank statement Then she would see:
date || credit || debit || balance
14/01/2012 || || 500.00 || 2500.00
13/01/2012 || 2000.00|| || 3000.00
10/01/2012 || 1000.00|| || 1000.00
I started by diagramming the bank out in full. I came to conclusion that I would need three classes. Following good TDD practice I wrote tests for all of my methods, with nearly complete test coverage. I used the Statement class for storing my transaction history, with Transactions used for creating each record of a transaction that takes place when deposit or withdraw are called, in Account.
-
Clone this repository from GitHub.
-
Navigate in the terminal to the
bank_tech_testdirectory. -
Run
bundlein the terminal to install all the required gems from theGemfile -
Open up your REPL of choice (
pry,irbetc.) and runrequire "./lib/account" -
To make a new account object, input
account = Account.new -
From there you can use any of the methods,
withdraw,depositorprint_statementto use the program.