• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 "stats_mock_parcel_test.h"
17 
18 #include <hisysevent.h>
19 
20 #include "ipc_object_stub.h"
21 
22 #include "battery_stats_client.h"
23 #include "battery_stats_proxy.h"
24 
25 using namespace testing::ext;
26 using namespace OHOS::HiviewDFX;
27 using namespace OHOS::PowerMgr;
28 using namespace OHOS;
29 using namespace std;
30 
31 namespace {
32 /**
33  * @tc.name: StatsMockParcelTest_001
34  * @tc.desc: test BatteryStatsClient function
35  * @tc.type: FUNC
36  * @tc.require: issueI5X13X
37  */
38 HWTEST_F (StatsMockParcelTest, StatsMockParcelTest_001, TestSize.Level0)
39 {
40     auto& statsClient = BatteryStatsClient::GetInstance();
41     statsClient.Reset();
42     statsClient.SetOnBattery(true);
43     auto infoList = statsClient.GetBatteryStats();
44     EXPECT_TRUE(infoList.empty());
45     int32_t uid = 1004;
46     EXPECT_EQ(StatsUtils::DEFAULT_VALUE, statsClient.GetAppStatsMah(uid));
47     EXPECT_EQ(StatsUtils::DEFAULT_VALUE, statsClient.GetAppStatsPercent(uid));
48     BatteryStatsInfo::ConsumptionType consumptionType = BatteryStatsInfo::CONSUMPTION_TYPE_APP;
49     EXPECT_EQ(StatsUtils::DEFAULT_VALUE, statsClient.GetPartStatsMah(consumptionType));
50     EXPECT_EQ(StatsUtils::DEFAULT_VALUE, statsClient.GetPartStatsPercent(consumptionType));
51     StatsUtils::StatsType statsType = StatsUtils::STATS_TYPE_PHONE_ACTIVE;
52     EXPECT_EQ(StatsUtils::DEFAULT_VALUE, statsClient.GetTotalTimeSecond(statsType));
53     EXPECT_EQ(StatsUtils::DEFAULT_VALUE, statsClient.GetTotalDataBytes(statsType));
54     std::vector<std::string> dumpArgs;
55     dumpArgs.push_back("-batterystats");
56     EXPECT_EQ("can't connect service", statsClient.Dump(dumpArgs));
57 }
58 
59 /**
60  * @tc.name: StatsMockParcelTest_002
61  * @tc.desc: test BatteryStatsProxy function(IRemoteObject is null)
62  * @tc.type: FUNC
63  * @tc.require: issueI5X13X
64  */
65 HWTEST_F (StatsMockParcelTest, StatsMockParcelTest_002, TestSize.Level0)
66 {
67     std::shared_ptr<BatteryStatsProxy> sptrStatsProxy = std::make_shared<BatteryStatsProxy>(nullptr);
68     sptrStatsProxy->Reset();
69     sptrStatsProxy->SetOnBattery(true);
70     auto infoList = sptrStatsProxy->GetBatteryStats();
71     EXPECT_TRUE(infoList.empty());
72     int32_t uid = 1004;
73     EXPECT_EQ(StatsUtils::DEFAULT_VALUE, sptrStatsProxy->GetAppStatsMah(uid));
74     EXPECT_EQ(StatsUtils::DEFAULT_VALUE, sptrStatsProxy->GetAppStatsPercent(uid));
75     BatteryStatsInfo::ConsumptionType consumptionType = BatteryStatsInfo::CONSUMPTION_TYPE_APP;
76     EXPECT_EQ(StatsUtils::DEFAULT_VALUE, sptrStatsProxy->GetPartStatsMah(consumptionType));
77     EXPECT_EQ(StatsUtils::DEFAULT_VALUE, sptrStatsProxy->GetPartStatsPercent(consumptionType));
78     StatsUtils::StatsType statsType = StatsUtils::STATS_TYPE_PHONE_ACTIVE;
79     EXPECT_EQ(StatsUtils::DEFAULT_VALUE, sptrStatsProxy->GetTotalTimeSecond(statsType, StatsUtils::INVALID_VALUE));
80     EXPECT_EQ(StatsUtils::DEFAULT_VALUE, sptrStatsProxy->GetTotalDataBytes(statsType, StatsUtils::INVALID_VALUE));
81     std::vector<std::string> dumpArgs;
82     dumpArgs.push_back("-batterystats");
83     EXPECT_EQ("remote error", sptrStatsProxy->ShellDump(dumpArgs, dumpArgs.size()));
84 }
85 
86 /**
87  * @tc.name: StatsMockParcelTest_003
88  * @tc.desc: test BatteryStatsProxy function(IRemoteObject is not null)
89  * @tc.type: FUNC
90  * @tc.require: issueI5X13X
91  */
92 HWTEST_F (StatsMockParcelTest, StatsMockParcelTest_003, TestSize.Level0)
93 {
94     sptr<IPCObjectStub> sptrRemoteObj = new IPCObjectStub();
95     std::shared_ptr<BatteryStatsProxy> sptrStatsProxy = std::make_shared<BatteryStatsProxy>(sptrRemoteObj);
96     sptrStatsProxy->Reset();
97     sptrStatsProxy->SetOnBattery(true);
98     auto infoList = sptrStatsProxy->GetBatteryStats();
99     EXPECT_TRUE(infoList.empty());
100     int32_t uid = 1004;
101     EXPECT_EQ(StatsUtils::DEFAULT_VALUE, sptrStatsProxy->GetAppStatsMah(uid));
102     EXPECT_EQ(StatsUtils::DEFAULT_VALUE, sptrStatsProxy->GetAppStatsPercent(uid));
103     BatteryStatsInfo::ConsumptionType consumptionType = BatteryStatsInfo::CONSUMPTION_TYPE_APP;
104     EXPECT_EQ(StatsUtils::DEFAULT_VALUE, sptrStatsProxy->GetPartStatsMah(consumptionType));
105     EXPECT_EQ(StatsUtils::DEFAULT_VALUE, sptrStatsProxy->GetPartStatsPercent(consumptionType));
106     StatsUtils::StatsType statsType = StatsUtils::STATS_TYPE_PHONE_ACTIVE;
107     EXPECT_EQ(StatsUtils::DEFAULT_VALUE, sptrStatsProxy->GetTotalTimeSecond(statsType, StatsUtils::INVALID_VALUE));
108     EXPECT_EQ(StatsUtils::DEFAULT_VALUE, sptrStatsProxy->GetTotalDataBytes(statsType, StatsUtils::INVALID_VALUE));
109     std::vector<std::string> dumpArgs;
110     dumpArgs.push_back("-batterystats");
111     EXPECT_EQ("remote error", sptrStatsProxy->ShellDump(dumpArgs, dumpArgs.size()));
112 }
113 
114 /**
115  * @tc.name: StatsMockParcelTest_004
116  * @tc.desc: test class BatteryStatsInfo function
117  * @tc.type: FUNC
118  * @tc.require: issueI5X13X
119  */
120 HWTEST_F (StatsMockParcelTest, StatsMockParcelTest_004, TestSize.Level0)
121 {
122     std::shared_ptr<BatteryStatsInfo> sptrStatsInfo = std::make_shared<BatteryStatsInfo>();
123     EXPECT_NE(sptrStatsInfo, nullptr);
124     int32_t uid = 1004;
125     int32_t userId = 10005;
126     BatteryStatsInfo::ConsumptionType consumptionType = BatteryStatsInfo::CONSUMPTION_TYPE_APP;
127     double totalPowerMah = 1000.0;
128     sptrStatsInfo->SetUid(uid);
129     sptrStatsInfo->SetUserId(userId);
130     sptrStatsInfo->SetConsumptioType(consumptionType);
131     sptrStatsInfo->SetPower(totalPowerMah);
132     EXPECT_EQ(uid, sptrStatsInfo->GetUid());
133     EXPECT_EQ(userId, sptrStatsInfo->GetUserId());
134     EXPECT_EQ(consumptionType, sptrStatsInfo->GetConsumptionType());
135     EXPECT_EQ(totalPowerMah, sptrStatsInfo->GetPower());
136 
137     Parcel infoParcel = {};
138     EXPECT_FALSE(sptrStatsInfo->Marshalling(infoParcel));
139 }
140 }