• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 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 <gtest/gtest.h>
17 
18 #include "net_manager_constants.h"
19 #include "vpn_database_defines.h"
20 
21 #ifdef GTEST_API_
22 #define private public
23 #endif
24 
25 #include "vpn_database_helper.h"
26 
27 namespace OHOS {
28 namespace NetManagerStandard {
29 using namespace testing::ext;
30 
31 constexpr int32_t OLD_VERSION = 1;
32 constexpr int32_t NEW_VERSION = 2;
33 
34 class VpnDatabaseHelperTest : public testing::Test {
35 public:
36     static inline auto &vpnDataHelper_ = VpnDatabaseHelper::GetInstance();
37 };
38 
39 HWTEST_F(VpnDatabaseHelperTest, OnCreate001, TestSize.Level1)
40 {
41     auto dbCallBack = new (std::nothrow) VpnDataBaseCallBack();
42     std::string vpnDatabaseName = VpnDatabaseDefines::VPN_DATABASE_PATH + VpnDatabaseDefines::VPN_DB_NAME;
43     int32_t errCode = OHOS::NativeRdb::E_OK;
44     OHOS::NativeRdb::RdbStoreConfig config(vpnDatabaseName);
45     config.SetSecurityLevel(NativeRdb::SecurityLevel::S1);
46     VpnDataBaseCallBack sqliteOpenHelperCallback;
47     std::shared_ptr<OHOS::NativeRdb::RdbStore> store_ =
48         OHOS::NativeRdb::RdbHelper::GetRdbStore(config, OLD_VERSION, sqliteOpenHelperCallback, errCode);
49     int32_t ret = dbCallBack->OnCreate(*(store_));
50     EXPECT_EQ(ret, NETMANAGER_EXT_SUCCESS);
51 }
52 
53 HWTEST_F(VpnDatabaseHelperTest, OnUpgrade001, TestSize.Level1)
54 {
55     auto dbCallBack = new (std::nothrow) VpnDataBaseCallBack();
56     std::string vpnDatabaseName = VpnDatabaseDefines::VPN_DATABASE_PATH + VpnDatabaseDefines::VPN_DB_NAME;
57     int32_t errCode = OHOS::NativeRdb::E_OK;
58     OHOS::NativeRdb::RdbStoreConfig config(vpnDatabaseName);
59     config.SetSecurityLevel(NativeRdb::SecurityLevel::S1);
60     VpnDataBaseCallBack sqliteOpenHelperCallback;
61     std::shared_ptr<OHOS::NativeRdb::RdbStore> store_ =
62         OHOS::NativeRdb::RdbHelper::GetRdbStore(config, NEW_VERSION, sqliteOpenHelperCallback, errCode);
63     int32_t ret = dbCallBack->OnUpgrade(*(store_), OLD_VERSION, NEW_VERSION);
64     EXPECT_EQ(ret, NETMANAGER_EXT_SUCCESS);
65 }
66 
67 HWTEST_F(VpnDatabaseHelperTest, OnDowngrade001, TestSize.Level1)
68 {
69     auto dbCallBack = new (std::nothrow) VpnDataBaseCallBack();
70     std::string vpnDatabaseName = VpnDatabaseDefines::VPN_DATABASE_PATH + VpnDatabaseDefines::VPN_DB_NAME;
71     int32_t errCode = OHOS::NativeRdb::E_OK;
72     OHOS::NativeRdb::RdbStoreConfig config(vpnDatabaseName);
73     config.SetSecurityLevel(NativeRdb::SecurityLevel::S1);
74     VpnDataBaseCallBack sqliteOpenHelperCallback;
75     std::shared_ptr<OHOS::NativeRdb::RdbStore> store_ =
76         OHOS::NativeRdb::RdbHelper::GetRdbStore(config, NEW_VERSION, sqliteOpenHelperCallback, errCode);
77     int32_t ret = dbCallBack->OnDowngrade(*(store_), OLD_VERSION, NEW_VERSION);
78     EXPECT_EQ(ret, NETMANAGER_EXT_SUCCESS);
79 }
80 
81 HWTEST_F(VpnDatabaseHelperTest, IsVpnInfoExists001, TestSize.Level1)
82 {
83     std::string vpnId = "0000";
84     EXPECT_EQ(vpnDataHelper_.IsVpnInfoExists(vpnId), false);
85 }
86 
87 HWTEST_F(VpnDatabaseHelperTest, IsVpnInfoExists002, TestSize.Level1)
88 {
89     std::string vpnId = "1234";
90     sptr<VpnDataBean> vpnBean = new (std::nothrow) VpnDataBean();
91     if (vpnBean == nullptr) {
92         return;
93     }
94     vpnBean->vpnId_ = "1234";
95     vpnBean->userId_ = 100;
96     vpnBean->vpnType_ = 1;
97     vpnBean->vpnName_ = "name";
98     vpnBean->vpnAddress_ = "1.1.1.1";
99     vpnBean->isLegacy_ = 1;
100     vpnBean->saveLogin_ = 1;
101     vpnDataHelper_.InsertData(vpnBean);
102     EXPECT_EQ(vpnDataHelper_.IsVpnInfoExists(vpnId), true);
103 }
104 
105 HWTEST_F(VpnDatabaseHelperTest, InsertData001, TestSize.Level1)
106 {
107     sptr<VpnDataBean> vpnBean = nullptr;
108     EXPECT_EQ(vpnDataHelper_.InsertData(vpnBean), NETMANAGER_EXT_ERR_INVALID_PARAMETER);
109 }
110 
111 HWTEST_F(VpnDatabaseHelperTest, InsertData002, TestSize.Level1)
112 {
113     sptr<VpnDataBean> vpnBean = new (std::nothrow) VpnDataBean();
114     ASSERT_NE(vpnBean, nullptr);
115     vpnBean->vpnId_ = "1234";
116     vpnBean->userId_ = 100;
117     vpnBean->vpnType_ = 1;
118     vpnBean->vpnName_ = "name";
119     vpnBean->vpnAddress_ = "1.1.1.1";
120     vpnBean->isLegacy_ = 1;
121     vpnBean->saveLogin_ = 1;
122     vpnDataHelper_.DeleteVpnData("1234");
123     EXPECT_EQ(vpnDataHelper_.InsertData(vpnBean), NETMANAGER_EXT_SUCCESS);
124 }
125 
126 HWTEST_F(VpnDatabaseHelperTest, InsertOrUpdateData001, TestSize.Level1)
127 {
128     sptr<VpnDataBean> vpnBean = nullptr;
129     EXPECT_EQ(vpnDataHelper_.InsertOrUpdateData(vpnBean), NETMANAGER_EXT_ERR_INVALID_PARAMETER);
130 }
131 
132 HWTEST_F(VpnDatabaseHelperTest, InsertOrUpdateData002, TestSize.Level1)
133 {
134     sptr<VpnDataBean> vpnBean = new (std::nothrow) VpnDataBean();
135     ASSERT_NE(vpnBean, nullptr);
136     vpnBean->vpnId_ = "1234";
137     vpnBean->userId_ = 100;
138     vpnBean->vpnType_ = 1;
139     vpnBean->vpnName_ = "name";
140     vpnBean->vpnAddress_ = "1.1.1.1";
141     vpnBean->isLegacy_ = 1;
142     vpnBean->saveLogin_ = 1;
143     EXPECT_EQ(vpnDataHelper_.InsertOrUpdateData(vpnBean), NETMANAGER_EXT_SUCCESS);
144 }
145 
146 HWTEST_F(VpnDatabaseHelperTest, QueryVpnData001, TestSize.Level1)
147 {
148     std::string vpnId;
149     sptr<VpnDataBean> vpnBean = nullptr;
150     EXPECT_EQ(vpnDataHelper_.QueryVpnData(vpnBean, vpnId), NETMANAGER_EXT_ERR_INVALID_PARAMETER);
151     vpnBean = new (std::nothrow) VpnDataBean();
152     ASSERT_NE(vpnBean, nullptr);
153     EXPECT_EQ(vpnDataHelper_.QueryVpnData(vpnBean, vpnId), NETMANAGER_EXT_ERR_INVALID_PARAMETER);
154     vpnId = "1234";
155     vpnBean->vpnId_ = "1234";
156     vpnBean->userId_ = 100;
157     vpnBean->vpnType_ = 1;
158     vpnBean->vpnName_ = "name";
159     vpnBean->vpnAddress_ = "1.1.1.1";
160     vpnBean->isLegacy_ = 1;
161     vpnBean->saveLogin_ = 1;
162     vpnDataHelper_.InsertData(vpnBean);
163     EXPECT_EQ(vpnDataHelper_.QueryVpnData(vpnBean, vpnId), NETMANAGER_EXT_SUCCESS);
164 }
165 
166 HWTEST_F(VpnDatabaseHelperTest, QueryAllData001, TestSize.Level1)
167 {
168     std::vector<SysVpnConfig> list;
169     int32_t userId = 100;
170     EXPECT_EQ(vpnDataHelper_.QueryAllData(list, userId), NETMANAGER_EXT_SUCCESS);
171 }
172 
173 HWTEST_F(VpnDatabaseHelperTest, DeleteVpnData001, TestSize.Level1)
174 {
175     std::string vpnId;
176     EXPECT_EQ(vpnDataHelper_.DeleteVpnData(vpnId), NETMANAGER_EXT_ERR_INVALID_PARAMETER);
177     vpnId = "1234";
178     sptr<VpnDataBean> vpnBean = new (std::nothrow) VpnDataBean();
179     if (vpnBean == nullptr) {
180         return;
181     }
182     vpnBean->vpnId_ = "1234";
183     vpnBean->userId_ = 100;
184     vpnBean->vpnType_ = 1;
185     vpnBean->vpnName_ = "name";
186     vpnBean->vpnAddress_ = "1.1.1.1";
187     vpnBean->isLegacy_ = 1;
188     vpnBean->saveLogin_ = 1;
189     vpnDataHelper_.InsertData(vpnBean);
190     EXPECT_EQ(vpnDataHelper_.DeleteVpnData(vpnId), NETMANAGER_EXT_SUCCESS);
191 }
192 
193 HWTEST_F(VpnDatabaseHelperTest, UpdateData001, TestSize.Level1)
194 {
195     sptr<VpnDataBean> vpnBean = new (std::nothrow) VpnDataBean();
196     if (vpnBean == nullptr) {
197         return;
198     }
199     vpnBean->vpnId_ = "1234";
200     vpnBean->userId_ = 100;
201     vpnBean->vpnType_ = 1;
202     vpnBean->vpnName_ = "name";
203     vpnBean->vpnAddress_ = "1.1.1.1";
204     vpnBean->isLegacy_ = 1;
205     vpnBean->saveLogin_ = 1;
206     vpnDataHelper_.InsertData(vpnBean);
207 
208     vpnBean = nullptr;
209     EXPECT_EQ(vpnDataHelper_.UpdateData(vpnBean), NETMANAGER_EXT_ERR_INVALID_PARAMETER);
210     vpnBean = new (std::nothrow) VpnDataBean();
211     ASSERT_NE(vpnBean, nullptr);
212     vpnBean->vpnId_ = "1234";
213     vpnBean->userId_ = 100;
214     vpnBean->vpnType_ = 1;
215     vpnBean->vpnName_ = "name_update";
216     vpnBean->vpnAddress_ = "2.2.2.2";
217     vpnBean->isLegacy_ = 1;
218     vpnBean->saveLogin_ = 1;
219     EXPECT_EQ(vpnDataHelper_.UpdateData(vpnBean), NETMANAGER_EXT_SUCCESS);
220 }
221 
222 HWTEST_F(VpnDatabaseHelperTest, NoStore001, TestSize.Level1)
223 {
224     std::shared_ptr<OHOS::NativeRdb::RdbStore> tmp = vpnDataHelper_.store_;
225     vpnDataHelper_.store_ = nullptr;
226     sptr<VpnDataBean> vpnBean = new (std::nothrow) VpnDataBean();
227     ASSERT_NE(vpnBean, nullptr);
228     vpnBean->vpnId_ = "1234";
229     vpnBean->userId_ = 100;
230     vpnBean->vpnType_ = 1;
231     vpnBean->vpnName_ = "name";
232     vpnBean->vpnAddress_ = "1.1.1.1";
233     vpnBean->isLegacy_ = 1;
234     vpnBean->saveLogin_ = 1;
235     EXPECT_EQ(vpnDataHelper_.InsertData(vpnBean), NETMANAGER_EXT_ERR_OPERATION_FAILED);
236     EXPECT_EQ(vpnDataHelper_.UpdateData(vpnBean), NETMANAGER_EXT_ERR_OPERATION_FAILED);
237     EXPECT_EQ(vpnDataHelper_.QueryVpnData(vpnBean, vpnBean->vpnId_), NETMANAGER_EXT_ERR_OPERATION_FAILED);
238     std::vector<SysVpnConfig> list;
239     EXPECT_EQ(vpnDataHelper_.QueryAllData(list, vpnBean->userId_), NETMANAGER_EXT_ERR_OPERATION_FAILED);
240     EXPECT_EQ(vpnDataHelper_.DeleteVpnData(vpnBean->vpnId_), NETMANAGER_EXT_ERR_OPERATION_FAILED);
241     vpnDataHelper_.store_ = tmp;
242 }
243 } // namespace NetManagerStandard
244 } // namespace OHOS