Refactor mock_repo make re-usable
Fix wrong predicate, applying callbacks to right values
Add comprehensive tests