Tests refactor

* Removed duplication
* Common dependencies used in every test extracted into `setUp`
* Clear separation for arrange, act and assert
* Improve readability
* Split tests