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 = UID_TABLE_CREATE_PARAM;
64 int32_t ret = helper->CreateTable(UID_TABLE, tableInfo);
65 EXPECT_EQ(ret, NETMANAGER_SUCCESS);
66 }
67
68 HWTEST_F(NetStatsDatabaseHelperTest, CreateTableTest003, TestSize.Level1)
69 {
70 auto helper = std::make_unique<NetStatsDatabaseHelper>(NET_STATS_DATABASE_TEST_PATH);
71 const std::string tableInfo = IFACE_TABLE_CREATE_PARAM;
72 int32_t ret = helper->CreateTable(IFACE_TABLE, tableInfo);
73 EXPECT_EQ(ret, NETMANAGER_SUCCESS);
74 }
75
76 HWTEST_F(NetStatsDatabaseHelperTest, CreateTableTest004, TestSize.Level1)
77 {
78 auto helper = std::make_unique<NetStatsDatabaseHelper>(NET_STATS_DATABASE_TEST_PATH);
79 const std::string tableInfo = UID_SIM_TABLE_CREATE_PARAM;
80 int32_t ret = helper->CreateTable(UID_SIM_TABLE, tableInfo);
81 EXPECT_EQ(ret, NETMANAGER_SUCCESS);
82 }
83
84 HWTEST_F(NetStatsDatabaseHelperTest, InsertDataHelperTest001, TestSize.Level1)
85 {
86 auto helper = std::make_unique<NetStatsDatabaseHelper>(NET_STATS_DATABASE_TEST_PATH);
87 NETMGR_LOG_I("InsertDataHelperTest001");
88 NetStatsInfo info;
89 info.uid_ = 10222;
90 info.iface_ = "eth0";
91 info.date_ = 15254500;
92 info.rxBytes_ = 4455;
93 info.txBytes_ = 8536;
94 info.rxPackets_ = 45122;
95 info.txPackets_ = 144215;
96 int32_t ret = helper->InsertData(UID_TABLE, UID_TABLE_PARAM_LIST, info);
97 EXPECT_EQ(ret, NETMANAGER_SUCCESS);
98 ret = helper->InsertData("", UID_TABLE_PARAM_LIST, info);
99 EXPECT_EQ(ret, NetStatsResultCode::STATS_ERR_WRITE_DATA_FAIL);
100
101 ret = helper->InsertData(UID_SIM_TABLE, UID_SIM_TABLE_PARAM_LIST, info);
102 EXPECT_EQ(ret, NETMANAGER_SUCCESS);
103 ret = helper->InsertData("", UID_SIM_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, NETMANAGER_SUCCESS);
148 infos.clear();
149 uint64_t date = 15254400;
150 ret = helper->SelectData(iface, date, LONG_MAX, infos);
151 EXPECT_EQ(ret, NETMANAGER_SUCCESS);
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, QueryDataDataHelperTest001, TestSize.Level1)
170 {
171 NETMGR_LOG_I("QueryDataDataHelperTest001");
172 auto helper = std::make_unique<NetStatsDatabaseHelper>(NET_STATS_DATABASE_TEST_PATH);
173 std::vector<NetStatsInfo> infos;
174 std::string ident = "2";
175 int32_t ret = helper->QueryData(UID_TABLE, ident, 0, LONG_MAX, infos);
176 EXPECT_EQ(ret, NETMANAGER_SUCCESS);
177 infos.clear();
178 uint64_t date = 15254400;
179 ret = helper->QueryData(UID_TABLE, ident, date, LONG_MAX, infos);
180 EXPECT_EQ(ret, NETMANAGER_SUCCESS);
181 ret = helper->QueryData("", ident, 0, LONG_MAX, infos);
182 EXPECT_EQ(ret, STATS_ERR_READ_DATA_FAIL);
183 }
184
185 HWTEST_F(NetStatsDatabaseHelperTest, QueryDataDataHelperTest002, TestSize.Level1)
186 {
187 NETMGR_LOG_I("QueryDataDataHelperTest002");
188 auto helper = std::make_unique<NetStatsDatabaseHelper>(NET_STATS_DATABASE_TEST_PATH);
189 std::vector<NetStatsInfo> infos;
190 uint32_t uid = 200022;
191 std::string ident = "2";
192 int32_t ret = helper->QueryData(UID_TABLE, uid, ident, 0, LONG_MAX, infos);
193 EXPECT_EQ(ret, NETMANAGER_SUCCESS);
194 infos.clear();
195 uint64_t date = 15254400;
196 ret = helper->QueryData(UID_TABLE, uid, ident, date, LONG_MAX, infos);
197 EXPECT_EQ(ret, NETMANAGER_SUCCESS);
198 ret = helper->QueryData("", uid, ident, 0, LONG_MAX, infos);
199 EXPECT_EQ(ret, STATS_ERR_READ_DATA_FAIL);
200 }
201
202 HWTEST_F(NetStatsDatabaseHelperTest, DeleteDataHelperTest001, TestSize.Level1)
203 {
204 NETMGR_LOG_I("DeleteDataHelperTest001");
205 auto helper = std::make_unique<NetStatsDatabaseHelper>(NET_STATS_DATABASE_TEST_PATH);
206 uint64_t date = 15254400;
207 int32_t ret = helper->DeleteData(UID_TABLE, date, 15254560);
208 std::vector<NetStatsInfo> infos;
209 helper->SelectData(infos, UID_TABLE, 0, LONG_MAX);
210 EXPECT_EQ(ret, NETMANAGER_SUCCESS);
211 }
212
213 HWTEST_F(NetStatsDatabaseHelperTest, DeleteDataHelperTest002, TestSize.Level1)
214 {
215 NETMGR_LOG_I("DeleteDataHelperTest002");
216 auto helper = std::make_unique<NetStatsDatabaseHelper>(NET_STATS_DATABASE_TEST_PATH);
217 uint32_t uid = 100;
218 int32_t ret = helper->DeleteData(UID_TABLE, uid);
219 EXPECT_EQ(ret, NETMANAGER_SUCCESS);
220 }
221
222 HWTEST_F(NetStatsDatabaseHelperTest, ClearDataHelperTest001, TestSize.Level1)
223 {
224 auto helper = std::make_unique<NetStatsDatabaseHelper>(NET_STATS_DATABASE_TEST_PATH);
225 std::vector<NetStatsInfo> infos;
226 std::string iface = "wlan0";
227 uint32_t uid = 100;
228 int32_t ret = helper->SelectData(iface, uid, 0, LONG_MAX, infos);
229 EXPECT_EQ(ret, NETMANAGER_SUCCESS);
230 ret = helper->ClearData(UID_TABLE);
231 EXPECT_EQ(ret, NETMANAGER_SUCCESS);
232 }
233
234 HWTEST_F(NetStatsDatabaseHelperTest, NetStatsDatabaseHelperBranchTest001, TestSize.Level1)
235 {
236 auto helper = std::make_unique<NetStatsDatabaseHelper>("");
237 int32_t ret = helper->Open("");
238 EXPECT_EQ(ret, NETMANAGER_SUCCESS);
239
240 ret = helper->Close();
241 EXPECT_EQ(ret, NETMANAGER_SUCCESS);
242
243 int32_t id = 0;
244 ret = helper->BindInt64(id, 0, 0);
245 EXPECT_EQ(ret, STATS_ERR_READ_DATA_FAIL);
246
247 ret = helper->ClearData("");
248 EXPECT_EQ(ret, NETMANAGER_ERROR);
249 }
250 } // namespace NetManagerStandard
251 } // namespace OHOS
252