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_HILOGI(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 */
51 HWTEST_F (PowerModeModuleNativeTest, PowerModeModuleNativeTest001, TestSize.Level1)
52 {
53 GTEST_LOG_(INFO) << "PowerModeModuleNativeTest001 start.";
54 POWER_HILOGI(LABEL_TEST, "PowerModeModuleNativeTest001 function start!");
55 shared_ptr<PowerModeModule> powerModeModuleTest = make_shared<PowerModeModule>();
56 powerModeModuleTest->mode_ = PowerMode::PERFORMANCE_MODE;
57 powerModeModuleTest->PublishPowerModeEvent();
58 powerModeModuleTest->mode_ = PowerMode::EXTREME_POWER_SAVE_MODE;
59 powerModeModuleTest->PublishPowerModeEvent();
60 powerModeModuleTest->mode_ = static_cast<PowerMode>(POWERMODE);
61 powerModeModuleTest->PublishPowerModeEvent();
62
63 sptr<IPowerModeCallback> object = new PowerModeTestCallback();
64 powerModeModuleTest->AddPowerModeCallback(object);
65 powerModeModuleTest->Prepare();
66 powerModeModuleTest->AddPowerModeCallback(nullptr);
67 powerModeModuleTest->DelPowerModeCallback(object);
68 powerModeModuleTest->DelPowerModeCallback(nullptr);
69
70 powerModeModuleTest->callbackMgr_ = nullptr;
71 powerModeModuleTest->Prepare();
72 powerModeModuleTest->AddPowerModeCallback(object);
73 powerModeModuleTest->DelPowerModeCallback(object);
74 powerModeModuleTest->started_ = true;
75 PowerMode mode = PowerMode::PERFORMANCE_MODE;
76 powerModeModuleTest->EnableMode(mode, true);
77
78 powerModeModuleTest->mode_ = PowerMode::PERFORMANCE_MODE;
79 powerModeModuleTest->SetModeItem(mode);
80 EXPECT_EQ(mode, powerModeModuleTest->GetModeItem());
81 mode = static_cast<PowerMode>(POWERMODE);
82 powerModeModuleTest->SetModeItem(mode);
83 mode = static_cast<PowerMode>(POWERMODE2);
84 powerModeModuleTest->SetModeItem(mode);
85 mode = static_cast<PowerMode>(POWERMODE3);
86 powerModeModuleTest->SetModeItem(mode);
87
88 shared_ptr<PowerModeModule::CallbackManager> powerModeModuleManager =
89 make_shared<PowerModeModule::CallbackManager>();
90 powerModeModuleManager->OnRemoteDied(nullptr);
91
92 POWER_HILOGI(LABEL_TEST, "PowerModeModuleNativeTest001 function end!");
93 GTEST_LOG_(INFO) << "PowerModeModuleNativeTest001 end.";
94 }
95
96 /**
97 * @tc.name: PowerModePolicyNativeTest001
98 * @tc.desc: test GetPowerMode in PowerModePolicy
99 * @tc.type: FUNC
100 */
101 HWTEST_F (PowerModeModuleNativeTest, PowerModePolicyNativeTest001, TestSize.Level1)
102 {
103 GTEST_LOG_(INFO) << "PowerModePolicyNativeTest001 start.";
104 POWER_HILOGI(LABEL_TEST, "PowerModePolicyNativeTest001 function start!");
105 PowerModePolicy *powerModePolicyTest = new PowerModePolicy();
106 EXPECT_TRUE(powerModePolicyTest->GetPowerModeValuePolicy(MODEITEM) == INIT_VALUE_FALSE);
107 EXPECT_TRUE(powerModePolicyTest->GetPolicyFromMap(MODEITEM) == INIT_VALUE_FALSE);
108 powerModePolicyTest->ReadPowerModePolicy(READODE);
109 powerModePolicyTest->ComparePowerModePolicy();
110 ModeActionPolicy action;
111 powerModePolicyTest->AddAction(MODEITEM, action);
112 POWER_HILOGI(LABEL_TEST, "PowerModePolicyNativeTest001 function end!");
113 GTEST_LOG_(INFO) << "PowerModePolicyNativeTest001 end.";
114 }
115 }
116