Acceptance Test and Unit Test Facilities

I have discussed with @armse to settle on these testing methods:

* Unit test to guide the design.
* Acceptance test to make sure that the implementation respectfully implement the use case.

Please merge so that we can continue working.