Для реализации модульного тестирования пришлось реорганизовать архитектуру программной части сервера. Недостатком была потеря времени на реорганизацию, но, благо, кода было не так уж много, чтобы что-то переправлять. Огромным плюсом стало то, что код стал красивее. Например, благодаря подстраиванию под модульные тесты, пришлось создать обработчик принимаемых пакетов, создать дополнительные очереди обработки, дать возможность программисту назначать свои обработчики и т.п. Таким образом, вся процедура проверки была сведена на уровень кода: отдельные вызовы под запуск, останов, передачу данных, их приём, их обработку. Без подстраивания под модульные тесты, вряд ли в проекте сделали бы возможность самому назначать обработчики.