[x] константы PORT_MIN_BOUND и PORT_MAX_BOUND не используются в .h файле, нужно спрятать их в cpp и убрать под static или безымянный namespace, можно обойтись использованием спецификатора constexpr вместо const, но тоже в cpp файле
[x] std::string GetProtocolTitle() const; вынести либо в main, либо в утилитный заголовок
[x] std::map<std::string, Protocol> m_protocolMap; лучше вынести как константу в cpp файл
[x] сообщения исключений не должны содержать \n - это порождает излишнее дублирование
[x] стоит либо не инициализировать, либо инициализировать
string portStr = "";
string protocolStr;
[x] зачем нужна строка unsigned short port = static_cast<unsigned short>(m_protocol); ?
[x] переименовать protocolToLowCase, это не функция, а переменная
[x] завести вспомогательные функции в тестах, для уменьшения дублирования кода, отвечающего за проверки
std::string GetProtocolTitle() const;
вынести либо в main, либо в утилитный заголовокunsigned short port = static_cast<unsigned short>(m_protocol);
?