Unit and Acceptance tests

The unit tests and acceptance tests