Move configuration to json
This commit is contained in:
@@ -10,6 +10,11 @@ void tearDown()
|
||||
{
|
||||
}
|
||||
|
||||
std::string singleBlindJson = R"({"shades": [{"radioId": "ABCD","mqttId": "test_shade","friendly_name": "Test Shade"}]})";
|
||||
std::string doubleBlindJson = R"({"shades": [{"radioId": "ABCD","mqttId": "test_shade","friendly_name": "Test Shade"}, {"radioId": "1234","mqttId": "test_shade2","friendly_name": "Test Shade 2"}]})";
|
||||
std::string invalidRadioIdBlindJson = R"({"shades": [{"radioId": "XYZ9","mqttId": "test_shade","friendly_name": "Test Shade"}, {"mqttId": "test_shade","friendly_name": "Test Shade"}, {"radioId": "","mqttId": "test_shade","friendly_name": "Test Shade"}, {"radioId": "ABCDE","mqttId": "test_shade","friendly_name": "Test Shade"}]})";
|
||||
std::string invalidMqttIdBlindJson = R"({"shades": [{"radioId": "ABCD","mqttId": "","friendly_name": "Test Shade"}, {"radioId": "ABCD","friendly_name": "Test Shade"}]})";
|
||||
|
||||
void test_shade_is_configured_with_id_and_friendly_name()
|
||||
{
|
||||
int callbackInvokedCount = 0;
|
||||
@@ -23,71 +28,26 @@ void test_shade_is_configured_with_id_and_friendly_name()
|
||||
TEST_ASSERT_EQUAL_STRING("test_shade", shade.key.c_str());
|
||||
});
|
||||
|
||||
configurator.processIdMessage("hotdog/test_shade/id", "ABCD");
|
||||
configurator.processFriendlyNameMessage("hotdog/test_shade/friendly_name", "Test Shade");
|
||||
configurator.processJson(singleBlindJson);
|
||||
|
||||
TEST_ASSERT_EQUAL_INT(1, callbackInvokedCount);
|
||||
}
|
||||
|
||||
void test_shade_is_configured_again_with_new_friendly_name()
|
||||
void test_multiple_shades_are_configured()
|
||||
{
|
||||
int callbackInvokedCount = 0;
|
||||
|
||||
Configurator configurator = Configurator();
|
||||
configurator.addShadeConfiguredCallback([&] (Shade shade) {
|
||||
callbackInvokedCount++;
|
||||
|
||||
if (callbackInvokedCount == 1) {
|
||||
TEST_ASSERT_EQUAL_STRING("Test Shade", shade.friendlyName.c_str());
|
||||
} else if (callbackInvokedCount == 2) {
|
||||
TEST_ASSERT_EQUAL_STRING("Updated Test Shade", shade.friendlyName.c_str());
|
||||
} else {
|
||||
TEST_ABORT();
|
||||
}
|
||||
TEST_ASSERT_EQUAL_HEX16(0xABCD, shade.ID);
|
||||
TEST_ASSERT_EQUAL_STRING("test_shade", shade.key.c_str());
|
||||
});
|
||||
|
||||
configurator.processIdMessage("hotdog/test_shade/id", "ABCD");
|
||||
configurator.processFriendlyNameMessage("hotdog/test_shade/friendly_name", "Test Shade");
|
||||
|
||||
TEST_ASSERT_EQUAL_INT(1, callbackInvokedCount);
|
||||
|
||||
configurator.processFriendlyNameMessage("hotdog/test_shade/friendly_name", "Updated Test Shade");
|
||||
configurator.processJson(doubleBlindJson);
|
||||
|
||||
TEST_ASSERT_EQUAL_INT(2, callbackInvokedCount);
|
||||
}
|
||||
|
||||
void test_shade_is_configured_again_with_new_id()
|
||||
{
|
||||
int callbackInvokedCount = 0;
|
||||
|
||||
Configurator configurator = Configurator();
|
||||
configurator.addShadeConfiguredCallback([&] (Shade shade) {
|
||||
callbackInvokedCount++;
|
||||
|
||||
TEST_ASSERT_EQUAL_STRING("Test Shade", shade.friendlyName.c_str());
|
||||
if (callbackInvokedCount == 1) {
|
||||
TEST_ASSERT_EQUAL_HEX16(0xABCD, shade.ID);
|
||||
} else if (callbackInvokedCount == 2) {
|
||||
TEST_ASSERT_EQUAL_HEX16(0x9876, shade.ID);
|
||||
} else {
|
||||
TEST_ABORT();
|
||||
}
|
||||
TEST_ASSERT_EQUAL_STRING("test_shade", shade.key.c_str());
|
||||
});
|
||||
|
||||
configurator.processIdMessage("hotdog/test_shade/id", "ABCD");
|
||||
configurator.processFriendlyNameMessage("hotdog/test_shade/friendly_name", "Test Shade");
|
||||
|
||||
TEST_ASSERT_EQUAL_INT(1, callbackInvokedCount);
|
||||
|
||||
configurator.processIdMessage("hotdog/test_shade/id", "9876");
|
||||
|
||||
TEST_ASSERT_EQUAL_INT(2, callbackInvokedCount);
|
||||
}
|
||||
|
||||
void test_shade_is_not_configured_without_friendly_name()
|
||||
void test_invalid_radio_id_is_ignored()
|
||||
{
|
||||
int callbackInvokedCount = 0;
|
||||
|
||||
@@ -96,12 +56,12 @@ void test_shade_is_not_configured_without_friendly_name()
|
||||
callbackInvokedCount++;
|
||||
});
|
||||
|
||||
configurator.processIdMessage("hotdog/test_shade/id", "ABCD");
|
||||
configurator.processJson(invalidRadioIdBlindJson);
|
||||
|
||||
TEST_ASSERT_EQUAL_INT(0, callbackInvokedCount);
|
||||
}
|
||||
|
||||
void test_shade_is_not_configured_without_id()
|
||||
void test_invalid_mqtt_id_is_ignored()
|
||||
{
|
||||
int callbackInvokedCount = 0;
|
||||
|
||||
@@ -110,35 +70,18 @@ void test_shade_is_not_configured_without_id()
|
||||
callbackInvokedCount++;
|
||||
});
|
||||
|
||||
configurator.processFriendlyNameMessage("hotdog/test_shade/friendly_name", "Test Shade");
|
||||
configurator.processJson(invalidMqttIdBlindJson);
|
||||
|
||||
TEST_ASSERT_EQUAL_INT(0, callbackInvokedCount);
|
||||
}
|
||||
|
||||
void test_shade_is_not_configured_with_invalid_id()
|
||||
{
|
||||
int callbackInvokedCount = 0;
|
||||
|
||||
Configurator configurator = Configurator();
|
||||
configurator.addShadeConfiguredCallback([&] (Shade shade) {
|
||||
callbackInvokedCount++;
|
||||
});
|
||||
|
||||
configurator.processIdMessage("hotdog/test_shade/id", "ZZZZ");
|
||||
configurator.processFriendlyNameMessage("hotdog/test_shade/friendly_name", "Test Shade");
|
||||
|
||||
TEST_ASSERT_EQUAL_INT(0, callbackInvokedCount);
|
||||
}
|
||||
|
||||
int runUnityTests(void)
|
||||
{
|
||||
UNITY_BEGIN();
|
||||
RUN_TEST(test_shade_is_configured_with_id_and_friendly_name);
|
||||
RUN_TEST(test_shade_is_configured_again_with_new_friendly_name);
|
||||
RUN_TEST(test_shade_is_configured_again_with_new_id);
|
||||
RUN_TEST(test_shade_is_not_configured_without_friendly_name);
|
||||
RUN_TEST(test_shade_is_not_configured_without_id);
|
||||
RUN_TEST(test_shade_is_not_configured_with_invalid_id);
|
||||
RUN_TEST(test_multiple_shades_are_configured);
|
||||
RUN_TEST(test_invalid_radio_id_is_ignored);
|
||||
RUN_TEST(test_invalid_mqtt_id_is_ignored);
|
||||
return UNITY_END();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user