#include "settings_menu.h" #include #include #include namespace settings = radiantwave::settings; TEST(SystemSettingsMenuTest, ListsTheSystemSettingsInOrder) { const auto entries = settings::systemSettingEntries(); ASSERT_EQ(entries.size(), 7u); EXPECT_EQ(entries[0].label, "Email Address"); EXPECT_EQ(entries[0].id, settings::SystemSettingId::EmailAddress); EXPECT_EQ(entries[1].label, "License Key"); EXPECT_EQ(entries[1].id, settings::SystemSettingId::LicenseKey); EXPECT_EQ(entries[2].label, "System Name"); EXPECT_EQ(entries[2].id, settings::SystemSettingId::SystemName); EXPECT_EQ(entries[3].label, "Schedule"); EXPECT_EQ(entries[3].id, settings::SystemSettingId::Schedule); EXPECT_EQ(entries[4].label, "WiFi Setup"); EXPECT_EQ(entries[4].id, settings::SystemSettingId::WiFiSetup); EXPECT_EQ(entries[5].label, "Time Zone Setup"); EXPECT_EQ(entries[5].id, settings::SystemSettingId::Timezone); EXPECT_EQ(entries[6].label, "Date Format"); EXPECT_EQ(entries[6].id, settings::SystemSettingId::DateFormat); } TEST(SystemSettingsMenuTest, LabelsAreNonEmptyAndUnique) { const auto entries = settings::systemSettingEntries(); std::set labels; std::set ids; for (const auto& entry : entries) { EXPECT_FALSE(entry.label.empty()); labels.insert(entry.label); ids.insert(static_cast(entry.id)); } EXPECT_EQ(labels.size(), entries.size()); EXPECT_EQ(ids.size(), entries.size()); } TEST(SystemSettingsMenuTest, EveryEntryMapsToAKnownPage) { for (const auto& entry : settings::systemSettingEntries()) { switch (entry.id) { case settings::SystemSettingId::EmailAddress: case settings::SystemSettingId::LicenseKey: case settings::SystemSettingId::SystemName: case settings::SystemSettingId::Schedule: case settings::SystemSettingId::WiFiSetup: case settings::SystemSettingId::Timezone: case settings::SystemSettingId::DateFormat: SUCCEED(); break; default: FAIL() << "Unhandled SystemSettingId for label " << entry.label; } } }