You have a beverages machine with 4 products: soda water, coca coal, orange juice and water. This machine accepts 4 kind of coins: 1$, 50 cents, 10 cents and 1 cent
- show input (i wrote unittests insted)
- user can add money (done)
- check if money is enought (done)
- N products and i'm out of one (done)
- return change (1$, 50 cents, 10 cents and 1 cent) (done)
- run out of money (specific coins? Done)
- machine states (done, but in very simple way. Source pattern is much more extensive)
- Show menu to user in console (no gui), with options to choose from and get product choice and money as input (check #1)
- What happens to machine state when transaction ends (it's switches to default state)
- Change to user (don't get it)