From 6107dd24876fb00ad50d73d18d8de93f65996f39 Mon Sep 17 00:00:00 2001 From: Arsentiy Milchakov Date: Wed, 13 Feb 2019 19:03:21 +0300 Subject: [PATCH] [power manager] Switching from auto to normal scheme is fixed --- map/map_tests/power_manager_tests.cpp | 20 +++++++++++++++++++- map/power_management/power_manager.cpp | 3 --- 2 files changed, 19 insertions(+), 4 deletions(-) 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())