1 /*
2  * Copyright (c) 2022 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 "battery_srv_proxy_mock_test.h"
17 #include "battery_srv_proxy.h"
18 #include "ipc_object_stub.h"
19 #include "mock_remote_object.h"
20 #include "battery_log.h"
21 #ifdef HAS_HIVIEWDFX_HISYSEVENT_PART
22 #include <hisysevent.h>
23 #endif
24 using namespace testing::ext;
25 #ifdef HAS_HIVIEWDFX_HISYSEVENT_PART
26 using namespace OHOS::HiviewDFX;
27 #endif
28 using namespace OHOS::PowerMgr;
29 using namespace OHOS;
30 using namespace std;
31 
32 namespace {
33 std::shared_ptr<BatterySrvProxy> g_proxy;
34 sptr<IRemoteObject> remoteObj;
35 }
36 
SetUpTestCase()37 void BatteryProxyMockTest::SetUpTestCase()
38 {
39 #ifdef ENABLE_REMOTE_INTERFACE
40     remoteObj = new MockRemoteObject();
41 #else
42     remoteObj = new IPCObjectStub();
43 #endif
44     g_proxy = std::make_shared<BatterySrvProxy>(remoteObj);
45 }
46 
TearDownTestCase()47 void BatteryProxyMockTest::TearDownTestCase()
48 {
49     remoteObj = nullptr;
50     g_proxy = nullptr;
51 }
52 
SetUp()53 void BatteryProxyMockTest::SetUp() {}
54 
TearDown()55 void BatteryProxyMockTest::TearDown() {}
56 
57 namespace {
58 /**
59  * @tc.name: BatteryProxyMockTest_001
60  * @tc.desc: test BatterySrvProxy::GetCapacity() when an exception is raised
61  * @tc.type: FUNC
62  * @tc.require: issueI5X13X
63  */
HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_001, TestSize.Level0)64 HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_001, TestSize.Level0)
65 {
66     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_001 start.");
67     int32_t capacity = g_proxy->GetCapacity();
68     EXPECT_TRUE(capacity == INVALID_BATT_INT_VALUE);
69     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_001 end.");
70 }
71 
72 /**
73  * @tc.name: BatteryProxyMockTest_002
74  * @tc.desc: test BatterySrvProxy::GetChargingStatus() when an exception is raised
75  * @tc.type: FUNC
76  * @tc.require: issueI5X13X
77  */
HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_002, TestSize.Level0)78 HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_002, TestSize.Level0)
79 {
80     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_002 start.");
81     BatteryChargeState chargeState = g_proxy->GetChargingStatus();
82     EXPECT_TRUE(chargeState >= BatteryChargeState::CHARGE_STATE_NONE &&
83         chargeState <= BatteryChargeState::CHARGE_STATE_BUTT); // the enum value range of BatteryChargeState
84     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_002 end.");
85 }
86 
87 /**
88  * @tc.name: BatteryProxyMockTest_003
89  * @tc.desc: test BatterySrvProxy::GetHealthStatus() when an exception is raised
90  * @tc.type: FUNC
91  * @tc.require: issueI5X13X
92  */
HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_003, TestSize.Level0)93 HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_003, TestSize.Level0)
94 {
95     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_003 start.");
96     BatteryHealthState healthState = g_proxy->GetHealthStatus();
97     EXPECT_TRUE(healthState >= BatteryHealthState::HEALTH_STATE_UNKNOWN &&
98         healthState <= BatteryHealthState::HEALTH_STATE_BUTT); // the enum value range of BatteryHealthState
99     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_003 end.");
100 }
101 
102 /**
103  * @tc.name: BatteryProxyMockTest_004
104  * @tc.desc: test BatterySrvProxy::GetPluggedType() when an exception is raised
105  * @tc.type: FUNC
106  * @tc.require: issueI5X13X
107  */
HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_004, TestSize.Level0)108 HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_004, TestSize.Level0)
109 {
110     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_004 start.");
111     BatteryPluggedType pluggedType = g_proxy->GetPluggedType();
112     EXPECT_TRUE(pluggedType >= BatteryPluggedType::PLUGGED_TYPE_NONE &&
113         pluggedType <= BatteryPluggedType::PLUGGED_TYPE_BUTT); // the enum value range of BatteryPluggedType
114     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_004 end.");
115 }
116 
117 /**
118  * @tc.name: BatteryProxyMockTest_005
119  * @tc.desc: test BatterySrvProxy::GetPresent() when an exception is raised
120  * @tc.type: FUNC
121  * @tc.require: issueI5X13X
122  */
HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_005, TestSize.Level0)123 HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_005, TestSize.Level0)
124 {
125     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_005 start.");
126     bool isPresent = g_proxy->GetPresent();
127     EXPECT_TRUE(isPresent == INVALID_BATT_BOOL_VALUE);
128     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_005 end.");
129 }
130 
131 /**
132  * @tc.name: BatteryProxyMockTest_006
133  * @tc.desc: test BatterySrvProxy::GetTchnology() when an exception is raised
134  * @tc.type: FUNC
135  * @tc.require: issueI5X13X
136  */
HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_006, TestSize.Level0)137 HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_006, TestSize.Level0)
138 {
139     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_006 start.");
140     std::string technology = g_proxy->GetTechnology();
141     EXPECT_TRUE(technology == INVALID_STRING_VALUE);
142     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_006 end.");
143 }
144 
145 /**
146  * @tc.name: BatteryProxyMockTest_007
147  * @tc.desc: test BatterySrvProxy::GetTotalEnergy() when an exception is raised
148  * @tc.type: FUNC
149  * @tc.require: issueI5X13X
150  */
HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_007, TestSize.Level0)151 HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_007, TestSize.Level0)
152 {
153     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_007 start.");
154     int32_t totalEnergy = g_proxy->GetTotalEnergy();
155     EXPECT_TRUE(totalEnergy == INVALID_BATT_INT_VALUE);
156     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_007 end.");
157 }
158 
159 /**
160  * @tc.name: BatteryProxyMockTest_008
161  * @tc.desc: test BatterySrvProxy::GetCurrentAverage() when an exception is raised
162  * @tc.type: FUNC
163  * @tc.require: issueI5X13X
164  */
HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_008, TestSize.Level0)165 HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_008, TestSize.Level0)
166 {
167     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_008 start.");
168     int32_t currentAverage = g_proxy->GetCurrentAverage();
169     EXPECT_TRUE(currentAverage == INVALID_BATT_INT_VALUE);
170     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_008 end.");
171 }
172 
173 /**
174  * @tc.name: BatteryProxyMockTest_009
175  * @tc.desc: test BatterySrvProxy::GetNowCurrent() when an exception is raised
176  * @tc.type: FUNC
177  * @tc.require: issueI5X13X
178  */
HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_009, TestSize.Level0)179 HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_009, TestSize.Level0)
180 {
181     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_009 start.");
182     int32_t nowCurrent = g_proxy->GetNowCurrent();
183     EXPECT_TRUE(nowCurrent == INVALID_BATT_INT_VALUE);
184     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_009 end.");
185 }
186 
187 /**
188  * @tc.name: BatteryProxyMockTest_010
189  * @tc.desc: test BatterySrvProxy::GetRemainEnergy() when an exception is raised
190  * @tc.type: FUNC
191  * @tc.require: issueI5X13X
192  */
HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_010, TestSize.Level0)193 HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_010, TestSize.Level0)
194 {
195     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_010 start.");
196     int32_t remainEnergy = g_proxy->GetRemainEnergy();
197     EXPECT_TRUE(remainEnergy == INVALID_BATT_INT_VALUE);
198     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_010 end.");
199 }
200 
201 /**
202  * @tc.name: BatteryProxyMockTest_011
203  * @tc.desc: test BatterySrvProxy::GetBatteryTemperature() when an exception is raised
204  * @tc.type: FUNC
205  * @tc.require: issueI5X13X
206  */
HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_011, TestSize.Level0)207 HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_011, TestSize.Level0)
208 {
209     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_011 start.");
210     int32_t temperature = g_proxy->GetBatteryTemperature();
211     EXPECT_TRUE(temperature == INVALID_BATT_TEMP_VALUE);
212     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_011 end.");
213 }
214 
215 /**
216  * @tc.name: BatteryProxyMockTest_012
217  * @tc.desc: test BatterySrvProxy::GetCapacityLevel() when an exception is raised
218  * @tc.type: FUNC
219  * @tc.require: issueI5X13X
220  */
HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_012, TestSize.Level0)221 HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_012, TestSize.Level0)
222 {
223     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_012 start.");
224     BatteryCapacityLevel batteryLevel = g_proxy->GetCapacityLevel();
225     EXPECT_TRUE(batteryLevel >= BatteryCapacityLevel::LEVEL_NONE &&
226         batteryLevel <= BatteryCapacityLevel::LEVEL_RESERVED); // the enum value range of BatteryCapacityLevel
227     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_012 end.");
228 }
229 
230 /**
231  * @tc.name: BatteryProxyMockTest_013
232  * @tc.desc: test BatterySrvProxy::GetRemainingChargeTime() when an exception is raised
233  * @tc.type: FUNC
234  * @tc.require: issueI5X13X
235  */
HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_013, TestSize.Level0)236 HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_013, TestSize.Level0)
237 {
238     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_013 start.");
239     int64_t remainChargeTime = g_proxy->GetRemainingChargeTime();
240     EXPECT_TRUE(remainChargeTime == INVALID_REMAINING_CHARGE_TIME_VALUE);
241     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_013 end.");
242 }
243 
244 /**
245  * @tc.name: BatteryProxyMockTest_014
246  * @tc.desc: test BatterySrvProxy::GetVoltage() when an exception is raised
247  * @tc.type: FUNC
248  * @tc.require: issueI5X13X
249  */
HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_014, TestSize.Level0)250 HWTEST_F(BatteryProxyMockTest, BatteryProxyMockTest_014, TestSize.Level0)
251 {
252     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_014 start.");
253     int32_t voltage = g_proxy->GetVoltage();
254     EXPECT_TRUE(voltage == INVALID_BATT_INT_VALUE);
255     BATTERY_HILOGI(LABEL_TEST, "BatteryProxyMockTest_014 end.");
256 }
257 } // namespace
258