1 /* 2 * Copyright (c) 2021 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef REBOOT_TEST_H 17 #define REBOOT_TEST_H 18 19 #include <gtest/gtest.h> 20 #include "power_supply_provider.h" 21 #include "battery_thread_test.h" 22 #include "charger_thread.h" 23 24 namespace RebootTest { 25 class RebootTest : public testing::Test { 26 public: 27 static void SetUpTestCase(); 28 static void TearDownTestCase(); 29 void SetUp(); 30 void TearDown(); 31 }; 32 namespace { 33 struct ChargerThreadUnitTest {}; 34 } 35 36 std::unique_ptr<OHOS::HDI::Battery::V1_1::BatteryBacklight> 37 GetBacklightTest(OHOS::HDI::Battery::V1_1::ChargerThread& cthread); 38 39 template<typename Tag, typename PrivateFun, PrivateFun privateFun> 40 class Reboot { GetBacklightTest(OHOS::HDI::Battery::V1_1::ChargerThread & cthread)41 friend std::unique_ptr<OHOS::HDI::Battery::V1_1::BatteryBacklight> GetBacklightTest( 42 OHOS::HDI::Battery::V1_1::ChargerThread& cthread) 43 { 44 return std::move(cthread.*privateFun); 45 } 46 }; 47 48 template class Reboot < 49 ChargerThreadUnitTest, 50 decltype(&OHOS::HDI::Battery::V1_1::ChargerThread::backlight_), 51 &OHOS::HDI::Battery::V1_1::ChargerThread::backlight_ 52 >; 53 } 54 #endif // REBOOT_TEST_H 55