Step #1 in migrating the service controller away from the apiserver.

Start using the API server for listing services.
The trouble with injecting mocks, is you always risk the problem where real code A works great with mock code B, and real code B works great with mock code C, but when you glue real code A to real code B to real code C, you've made some assumption and the mock and reality don't match up.

I'm all in favor of dependency injection when it makes unit tests easier or possible, but in cases like this, where you can do the injection at a lower layer, and the complexity isn't that much greater, I would always vote for injecting at a lower layer.