Ответ 1
Тестирование взаимодействия с контейнером OSGi - это, строго говоря, тест интеграции. Для этого вы можете использовать Pax Exam, это немного странно, чтобы получить зависание, но работает очень хорошо (особенно если вы используете maven и/или karaf).
Кроме того, вы можете использовать TinyBundles, который может динамически создавать развертываемые пакеты/фрагменты из вашего теста (очень круто), чтобы издеваться над другими пакетами/фрагменты для обеспечения интеграции между пакетами без создания полноценной среды.
Для тестирования интеграции модулей или небольших масштабов (т.е. без контейнера) вы можете просто издеваться над BundleContext (или использовать DS ComponentContext), если вам это нужно.
Я немного не понимаю ваши вопросы в пунктах. Если есть внутренняя POJO, тогда ваша ответственность заключается в подключении зависимостей через сеттеры, иначе, если она будет доступна в реестре служб OSGi, тогда зависимости будут разрешены инфраструктурой (либо DS, либо ServiceTracker).
Также подклассификация чего-либо, чтобы перезаписать метод-создатель, означает, что вы больше не тестируете оригинальный класс - это запах кода - попробуйте рефакторинг, чтобы он передавался в коде создателя как отдельный класс (конструктор или сеттер), тогда это новый код создателя (создание сокета) может быть протестирован независимо (без учета OSGi или даже класса протокола, где он будет использоваться).