• 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 <memory>
17 
18 #include <gtest/gtest.h>
19 
20 #ifdef GTEST_API_
21 #define private public
22 #endif
23 #include "net_manager_constants.h"
24 #include "net_mgr_log_wrapper.h"
25 #include "net_stats_database_helper.h"
26 #include "net_stats_database_defines.h"
27 #include "net_stats_constants.h"
28 namespace OHOS {
29 namespace NetManagerStandard {
30 using namespace NetStatsDatabaseDefines;
31 using namespace testing::ext;
32 namespace {
33 constexpr const char *NET_STATS_DATABASE_TEST_PATH = "/data/service/el1/public/netmanager/net_stats_test.db";
34 } // namespace
35 class NetStatsDatabaseHelperTest : public testing::Test {
36 public:
37     static void SetUpTestCase();
38     static void TearDownTestCase();
39     void SetUp();
40     void TearDown();
41 };
42 
SetUpTestCase()43 void NetStatsDatabaseHelperTest::SetUpTestCase() {}
44 
TearDownTestCase()45 void NetStatsDatabaseHelperTest::TearDownTestCase() {}
46 
SetUp()47 void NetStatsDatabaseHelperTest::SetUp() {}
48 
TearDown()49 void NetStatsDatabaseHelperTest::TearDown() {}
50 
51 HWTEST_F(NetStatsDatabaseHelperTest, CreateTableTest001, TestSize.Level1)
52 {
53     auto helper = std::make_unique<NetStatsDatabaseHelper>(NET_STATS_DATABASE_TEST_PATH);
54     std::string tableInfo =
55         "ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50)";
56     int32_t ret = helper->CreateTable("testTable", tableInfo);
57     EXPECT_EQ(ret, NETMANAGER_SUCCESS);
58 }
59 
60 HWTEST_F(NetStatsDatabaseHelperTest, CreateTableTest002, TestSize.Level1)
61 {
62     auto helper = std::make_unique<NetStatsDatabaseHelper>(NET_STATS_DATABASE_TEST_PATH);
63     const std::string tableInfo =
64         "UID INTEGER NOT NULL,"
65         "IFace CHAR(50) NOT NULL,"
66         "Date INTEGER NOT NULL,"
67         "RxBytes INTEGER NOT NULL,"
68         "RxPackets INTEGER NOT NULL,"
69         "TxBytes INTEGER NOT NULL,"
70         "TxPackets INTEGER NOT NULL";
71     int32_t ret = helper->CreateTable(UID_TABLE, tableInfo);
72     EXPECT_EQ(ret, NETMANAGER_SUCCESS);
73 }
74 
75 HWTEST_F(NetStatsDatabaseHelperTest, CreateTableTest003, TestSize.Level1)
76 {
77     auto helper = std::make_unique<NetStatsDatabaseHelper>(NET_STATS_DATABASE_TEST_PATH);
78     const std::string tableInfo =
79         "UID INTEGER NOT NULL,"
80         "Date INTEGER NOT NULL,"
81         "RxBytes INTEGER NOT NULL,"
82         "RxPackets INTEGER NOT NULL,"
83         "TxBytes INTEGER NOT NULL,"
84         "TxPackets INTEGER NOT NULL";
85     int32_t ret = helper->CreateTable(IFACE_TABLE, tableInfo);
86     EXPECT_EQ(ret, NETMANAGER_SUCCESS);
87 }
88 
89 HWTEST_F(NetStatsDatabaseHelperTest, InsertDataHelperTest001, TestSize.Level1)
90 {
91     auto helper = std::make_unique<NetStatsDatabaseHelper>(NET_STATS_DATABASE_TEST_PATH);
92     NETMGR_LOG_I("InsertDataHelperTest001");
93     NetStatsInfo info;
94     info.uid_ = 10222;
95     info.iface_ = "eth0";
96     info.date_ = 15254500;
97     info.rxBytes_ = 4455;
98     info.txBytes_ = 8536;
99     info.rxPackets_ = 45122;
100     info.txPackets_ = 144215;
101     int32_t ret = helper->InsertData(UID_TABLE, UID_TABLE_PARAM_LIST, info);
102     EXPECT_EQ(ret, NETMANAGER_SUCCESS);
103     ret = helper->InsertData("", UID_TABLE_PARAM_LIST, info);
104     EXPECT_EQ(ret, NetStatsResultCode::STATS_ERR_WRITE_DATA_FAIL);
105 }
106 
107 HWTEST_F(NetStatsDatabaseHelperTest, SelectDataHelperTest001, TestSize.Level1)
108 {
109     NETMGR_LOG_I("SelectDataHelperTest001");
110     auto helper = std::make_unique<NetStatsDatabaseHelper>(NET_STATS_DATABASE_TEST_PATH);
111     std::vector<NetStatsInfo> infos;
112     int32_t ret = helper->SelectData(infos, UID_TABLE, 0, LONG_MAX);
113     EXPECT_EQ(ret, NETMANAGER_SUCCESS);
114     for (auto const &info : infos) {
115         NETMGR_LOG_I("uid:%{public}d, iface:%{public}s, date:%{public}s", info.uid_, info.iface_.c_str(),
116                      std::to_string(info.date_).c_str());
117     }
118     infos.clear();
119     uint64_t date = 15254400;
120     ret = helper->SelectData(infos, UID_TABLE, date, LONG_MAX);
121     EXPECT_EQ(ret, NETMANAGER_SUCCESS);
122     ret = helper->SelectData(infos, "", date, LONG_MAX);
123     EXPECT_EQ(ret, NetStatsResultCode::STATS_ERR_READ_DATA_FAIL);
124 }
125 
126 HWTEST_F(NetStatsDatabaseHelperTest, SelectDataHelperTest002, TestSize.Level1)
127 {
128     NETMGR_LOG_I("SelectDataHelperTest002");
129     auto helper = std::make_unique<NetStatsDatabaseHelper>(NET_STATS_DATABASE_TEST_PATH);
130     std::vector<NetStatsInfo> infos;
131     uint32_t uid = 100;
132     int32_t ret = helper->SelectData(uid, 0, LONG_MAX, infos);
133     EXPECT_EQ(ret, NETMANAGER_SUCCESS);
134     infos.clear();
135     uint64_t date = 15254400;
136     ret = helper->SelectData(uid, date, LONG_MAX, infos);
137     EXPECT_EQ(ret, NETMANAGER_SUCCESS);
138 }
139 
140 HWTEST_F(NetStatsDatabaseHelperTest, SelectDataHelperTest003, TestSize.Level1)
141 {
142     NETMGR_LOG_I("SelectDataHelperTest003");
143     auto helper = std::make_unique<NetStatsDatabaseHelper>(NET_STATS_DATABASE_TEST_PATH);
144     std::vector<NetStatsInfo> infos;
145     std::string iface = "wlan0";
146     int32_t ret = helper->SelectData(iface, 0, LONG_MAX, infos);
147     EXPECT_EQ(ret, STATS_ERR_READ_DATA_FAIL);
148     infos.clear();
149     uint64_t date = 15254400;
150     ret = helper->SelectData(iface, date, LONG_MAX, infos);
151     EXPECT_EQ(ret, STATS_ERR_READ_DATA_FAIL);
152 }
153 
154 HWTEST_F(NetStatsDatabaseHelperTest, SelectDataHelperTest004, TestSize.Level1)
155 {
156     NETMGR_LOG_I("SelectDataHelperTest004");
157     auto helper = std::make_unique<NetStatsDatabaseHelper>(NET_STATS_DATABASE_TEST_PATH);
158     std::vector<NetStatsInfo> infos;
159     std::string iface = "wlan0";
160     uint32_t uid = 100;
161     int32_t ret = helper->SelectData(iface, uid, 0, LONG_MAX, infos);
162     EXPECT_EQ(ret, NETMANAGER_SUCCESS);
163     infos.clear();
164     uint64_t date = 15254400;
165     ret = helper->SelectData(iface, uid, date, LONG_MAX, infos);
166     EXPECT_EQ(ret, NETMANAGER_SUCCESS);
167 }
168 
169 HWTEST_F(NetStatsDatabaseHelperTest, DeleteDataHelperTest001, TestSize.Level1)
170 {
171     NETMGR_LOG_I("DeleteDataHelperTest001");
172     auto helper = std::make_unique<NetStatsDatabaseHelper>(NET_STATS_DATABASE_TEST_PATH);
173     uint64_t date = 15254400;
174     int32_t ret = helper->DeleteData(UID_TABLE, date, 15254560);
175     std::vector<NetStatsInfo> infos;
176     helper->SelectData(infos, UID_TABLE, 0, LONG_MAX);
177     EXPECT_EQ(ret, NETMANAGER_SUCCESS);
178 }
179 
180 HWTEST_F(NetStatsDatabaseHelperTest, DeleteDataHelperTest002, TestSize.Level1)
181 {
182     NETMGR_LOG_I("DeleteDataHelperTest002");
183     auto helper = std::make_unique<NetStatsDatabaseHelper>(NET_STATS_DATABASE_TEST_PATH);
184     uint32_t uid = 100;
185     int32_t ret = helper->DeleteData(UID_TABLE, uid);
186     EXPECT_EQ(ret, NETMANAGER_SUCCESS);
187 }
188 
189 HWTEST_F(NetStatsDatabaseHelperTest, ClearDataHelperTest001, TestSize.Level1)
190 {
191     auto helper = std::make_unique<NetStatsDatabaseHelper>(NET_STATS_DATABASE_TEST_PATH);
192     std::vector<NetStatsInfo> infos;
193     std::string iface = "wlan0";
194     uint32_t uid = 100;
195     int32_t ret = helper->SelectData(iface, uid, 0, LONG_MAX, infos);
196     EXPECT_EQ(ret, NETMANAGER_SUCCESS);
197     ret = helper->ClearData(UID_TABLE);
198     EXPECT_EQ(ret, NETMANAGER_SUCCESS);
199 }
200 
201 HWTEST_F(NetStatsDatabaseHelperTest, NetStatsDatabaseHelperBranchTest001, TestSize.Level1)
202 {
203     auto helper = std::make_unique<NetStatsDatabaseHelper>("");
204     int32_t ret = helper->Open("");
205     EXPECT_EQ(ret, NETMANAGER_SUCCESS);
206 
207     ret = helper->Close();
208     EXPECT_EQ(ret, NETMANAGER_SUCCESS);
209 
210     int32_t id = 0;
211     ret = helper->BindInt64(id, 0, 0);
212     EXPECT_EQ(ret, STATS_ERR_READ_DATA_FAIL);
213 
214     ret = helper->ClearData("");
215     EXPECT_EQ(ret, NETMANAGER_ERROR);
216 }
217 } // namespace NetManagerStandard
218 } // namespace OHOS
219