1. То что ты сейчас сделал называется инверсия зависимостей. В данном случае, ты для каждого внешнего сервиса выделил интерфейс и дополнительно к нему реализацию.
Когда идешь таким путем, то да - получается много компонентов (в данном случае классов/файлов).
2. У меня вопрос к разделению ответственности: зачем в свою сущность передать логин и пароль? (Далее, из предположений пишу) Причем, это пароль именно для сервисной шины, которую ты мокаешь.
Для этого случая, предлагаю вынести все зависимости шины именно в класс реализующий интерфейс этой шины.
В частности:
- login и password (возможно url) станут полями EnterpriseDispatcherService
- реализации твоего интерфейса шины
- эти поля из сущности уйдут, т.к. это просто инфраструктурные вопросы и к функциональности (которую надо протестировать) не имеют отношения
P.S. Под функциональным ты имеешь ввиду юнит-тестирование (скорее всего)