[x] Implement the alternative flow 3-4b. (You do not have to program any other alternative flows or add any other functionality. You are also not required to code the view, you may replace the user interface with one single class, View, which contains hard-coded calls to the controller. Instead of a database, you can just store the data in the object in the integration layer, which should have been responsible for calling the database if there had been one. The external systems can simply be omitted, but there must be objects responsible for calling them.)
[x] Implement a nice option for the display to System.out
[x] Implement a nice print for receipt to System.out.
[x] Make sure that if the user interface is replaced with hard-coded method calls, the class calling the controller must print everything that is returned by the controller.
[x] Make sure we have pretty java comments for all our methods
[x] Check so solution have high cohesion, low coupling and good encapsulation with a well-defined public interface.
[x] (1p) Write unit tests for two classes. Try to find something more interesting to test than get/set methods. You have to write new test classes, you’re not allowed to use the given tests, that is AmountTest from the textbook and MainTest from the lecture Practice Programming and Unit Testing.
[ ] (2p) Write tests for all classes in the layers controller, model, and integration, except classes that have just getters and constructors that only store values. It is also not required to test that output to System.out is correct, just ignore testing methods that only produce output to System.out.
Basic task: