1 /*
2 * Copyright (c) 2021-2024 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 #include "power_mode_module_native_test.h"
17
18 using namespace testing::ext;
19 using namespace OHOS::PowerMgr;
20 using namespace OHOS;
21 using namespace std;
22
SetUpTestCase()23 void PowerModeModuleNativeTest::SetUpTestCase()
24 {
25 }
26
TearDownTestCase()27 void PowerModeModuleNativeTest::TearDownTestCase()
28 {
29 }
30
SetUp()31 void PowerModeModuleNativeTest::SetUp()
32 {
33 }
34
TearDown()35 void PowerModeModuleNativeTest::TearDown()
36 {
37 }
38
OnPowerModeChanged(PowerMode mode)39 void PowerModeTestCallback::OnPowerModeChanged(PowerMode mode)
40 {
41 POWER_HILOGD(LABEL_TEST, "PowerModeTestCallback::OnPowerModeChanged.");
42 }
43
44 namespace {
45 using ModeActionPolicy = std::function<void(bool)>;
46
47 /**
48 * @tc.name: PowerModeModuleNativeTest001
49 * @tc.desc: test callback in PowerModeModule
50 */
HWTEST_F(PowerModeModuleNativeTest, PowerModeModuleNativeTest001, TestSize.Level0)51 HWTEST_F (PowerModeModuleNativeTest, PowerModeModuleNativeTest001, TestSize.Level0)
52 {
53 POWER_HILOGD(LABEL_TEST, "PowerModeModuleNativeTest001 start.");
54 shared_ptr<PowerModeModule> powerModeModuleTest = make_shared<PowerModeModule>();
55 powerModeModuleTest->mode_ = PowerMode::PERFORMANCE_MODE;
56 powerModeModuleTest->PublishPowerModeEvent();
57 powerModeModuleTest->mode_ = PowerMode::EXTREME_POWER_SAVE_MODE;
58 powerModeModuleTest->PublishPowerModeEvent();
59 powerModeModuleTest->mode_ = static_cast<PowerMode>(POWERMODE);
60 powerModeModuleTest->PublishPowerModeEvent();
61
62 sptr<IPowerModeCallback> object = new PowerModeTestCallback();
63 powerModeModuleTest->AddPowerModeCallback(object);
64 powerModeModuleTest->Prepare();
65 powerModeModuleTest->AddPowerModeCallback(nullptr);
66 powerModeModuleTest->DelPowerModeCallback(object);
67 powerModeModuleTest->DelPowerModeCallback(nullptr);
68
69 powerModeModuleTest->callbackMgr_ = nullptr;
70 powerModeModuleTest->Prepare();
71 powerModeModuleTest->AddPowerModeCallback(object);
72 powerModeModuleTest->DelPowerModeCallback(object);
73 powerModeModuleTest->started_ = true;
74 PowerMode mode = PowerMode::PERFORMANCE_MODE;
75 powerModeModuleTest->EnableMode(mode, true);
76
77 powerModeModuleTest->mode_ = PowerMode::PERFORMANCE_MODE;
78 powerModeModuleTest->SetModeItem(mode);
79 EXPECT_EQ(mode, powerModeModuleTest->GetModeItem());
80 mode = static_cast<PowerMode>(POWERMODE);
81 powerModeModuleTest->SetModeItem(mode);
82
83 shared_ptr<PowerModeModule::CallbackManager> powerModeModuleManager =
84 make_shared<PowerModeModule::CallbackManager>();
85 powerModeModuleManager->OnRemoteDied(nullptr);
86
87 POWER_HILOGD(LABEL_TEST, "PowerModeModuleNativeTest001 end.");
88 }
89
90 /**
91 * @tc.name: PowerModePolicyNativeTest001
92 * @tc.desc: test GetPowerMode in PowerModePolicy
93 * @tc.type: FUNC
94 */
HWTEST_F(PowerModeModuleNativeTest, PowerModePolicyNativeTest001, TestSize.Level0)95 HWTEST_F (PowerModeModuleNativeTest, PowerModePolicyNativeTest001, TestSize.Level0)
96 {
97 POWER_HILOGD(LABEL_TEST, "PowerModePolicyNativeTest001 start.");
98 PowerModePolicy *powerModePolicyTest = new PowerModePolicy();
99 EXPECT_TRUE(powerModePolicyTest->GetPowerModeValuePolicy(MODEITEM) == INIT_VALUE_FALSE);
100 EXPECT_TRUE(powerModePolicyTest->GetPolicyFromMap(MODEITEM) == INIT_VALUE_FALSE);
101 powerModePolicyTest->ReadPowerModePolicy(READODE);
102 powerModePolicyTest->ComparePowerModePolicy();
103 ModeActionPolicy action;
104 powerModePolicyTest->AddAction(MODEITEM, action);
105
106 POWER_HILOGD(LABEL_TEST, "PowerModePolicyNativeTest001 end.");
107 }
108 }
109