homeassistant service discovery: derive node_id when using nested topics (#3088)

* derive correct node_id for homeassistant service discovery in nested topics (fixes #1792)

* explicit use of std::string

* move nodeId creation to separate function
add unit-tests

* add documentation about node_id generation for Home Assistant MQTT Service Discovery
This commit is contained in:
Henry Thasler
2024-06-02 21:00:44 +02:00
committed by GitHub
parent 79543df23b
commit 1300242d4a
5 changed files with 45 additions and 3 deletions

View File

@@ -0,0 +1,22 @@
#include <unity.h>
#include <server_mqtt.h>
void test_createNodeId()
{
std::string topic = "watermeter";
TEST_ASSERT_EQUAL_STRING("watermeter", createNodeId(topic).c_str());
topic = "/watermeter";
TEST_ASSERT_EQUAL_STRING("watermeter", createNodeId(topic).c_str());
topic = "home/test/watermeter";
TEST_ASSERT_EQUAL_STRING("watermeter", createNodeId(topic).c_str());
topic = "home/test/subtopic/something/test/watermeter";
TEST_ASSERT_EQUAL_STRING("watermeter", createNodeId(topic).c_str());
}
void test_mqtt()
{
test_createNodeId();
}