diff --git a/map/map_tests/power_manager_tests.cpp b/map/map_tests/power_manager_tests.cpp index 23d25cf60b..eeed17f215 100644 --- a/map/map_tests/power_manager_tests.cpp +++ b/map/map_tests/power_manager_tests.cpp @@ -96,9 +96,10 @@ UNIT_TEST(PowerManager_SetFacility) TEST_EQUAL(subscriber.m_onShemeEvents.size(), 0, ()); } -UNIT_TEST(PowerManager_SetConfig) +UNIT_TEST(PowerManager_SetScheme) { ScopedFile sf("power_manager_config", ScopedFile::Mode::DoNotCreate); + Platform::ThreadRunner m_runner; PowerManager manager; SubscriberForTesting subscriber; @@ -161,6 +162,23 @@ UNIT_TEST(PowerManager_SetConfig) TEST_EQUAL(subscriber.m_onFacilityEvents[4].m_state, true, ()); TEST_EQUAL(subscriber.m_onFacilityEvents[5].m_facility, Facility::UgcUploading, ()); TEST_EQUAL(subscriber.m_onFacilityEvents[5].m_state, true, ()); + + subscriber.m_onShemeEvents.clear(); + subscriber.m_onFacilityEvents.clear(); + + manager.SetScheme(Scheme::Auto); + + TEST_EQUAL(subscriber.m_onShemeEvents.size(), 1, ()); + TEST_EQUAL(subscriber.m_onShemeEvents[0], Scheme::Auto, ()); + + subscriber.m_onShemeEvents.clear(); + subscriber.m_onFacilityEvents.clear(); + + manager.SetScheme(Scheme::Normal); + + TEST_EQUAL(subscriber.m_onShemeEvents.size(), 1, ()); + TEST_EQUAL(subscriber.m_onShemeEvents[0], Scheme::Normal, ()); + TEST_EQUAL(subscriber.m_onFacilityEvents.size(), 0, ()); } UNIT_TEST(PowerManager_OnBatteryLevelChanged) diff --git a/map/power_management/power_manager.cpp b/map/power_management/power_manager.cpp index a1716ac832..91f5632815 100644 --- a/map/power_management/power_manager.cpp +++ b/map/power_management/power_manager.cpp @@ -122,9 +122,6 @@ void PowerManager::SetScheme(Scheme const scheme) auto actualState = GetFacilitiesState(scheme); - if (m_config.m_facilities == actualState) - return; - std::swap(m_config.m_facilities, actualState); if (!Save())