1 /*
2 * Copyright (c) 2023 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 #include <string>
18 #include <vector>
19 #include <iostream>
20
21 #include "distributed_device_profile_constants.h"
22 #include "distributed_device_profile_log.h"
23 #include "distributed_device_profile_errors.h"
24
25 #include "product_info_dao.h"
26 #include "product_info.h"
27
28 using namespace testing::ext;
29 namespace OHOS {
30 namespace DistributedDeviceProfile {
31 using namespace std;
32 namespace {
33 const std::string TAG = "ProductInfoDaoTest";
34 }
35 class ProductInfoDaoTest : public testing::Test {
36 public:
37 static void SetUpTestCase();
38 static void TearDownTestCase();
39 void SetUp();
40 void TearDown();
41 };
42
SetUpTestCase()43 void ProductInfoDaoTest::SetUpTestCase()
44 {}
45
TearDownTestCase()46 void ProductInfoDaoTest::TearDownTestCase()
47 {}
48
SetUp()49 void ProductInfoDaoTest::SetUp()
50 {}
51
TearDown()52 void ProductInfoDaoTest::TearDown()
53 {}
54
55 /*
56 * @tc.name: Init001
57 * @tc.desc: Init
58 * @tc.type: FUNC
59 * @tc.require:
60 */
61 HWTEST_F(ProductInfoDaoTest, Init001, TestSize.Level1)
62 {
63 int32_t result = ProductInfoDao::GetInstance().Init();
64 EXPECT_EQ(result, DP_SUCCESS);
65 }
66
67 /*
68 * @tc.name: UnInit001
69 * @tc.desc: UnInit
70 * @tc.type: FUNC
71 * @tc.require:
72 */
73 HWTEST_F(ProductInfoDaoTest, UnInit001, TestSize.Level1)
74 {
75 ProductInfoDao::GetInstance().Init();
76 int32_t result = ProductInfoDao::GetInstance().UnInit();
77 EXPECT_EQ(result, DP_SUCCESS);
78 }
79
80 /*
81 * @tc.name: PutProductInfo001
82 * @tc.desc: PutProductInfo
83 * @tc.type: FUNC
84 * @tc.require:
85 */
86 HWTEST_F(ProductInfoDaoTest, PutProductInfo001, TestSize.Level1)
87 {
88 ProductInfoDao::GetInstance().Init();
89 ProductInfo productInfo;
90 int32_t result = ProductInfoDao::GetInstance().PutProductInfo(productInfo);
91 EXPECT_EQ(result, DP_SUCCESS);
92 ProductInfoDao::GetInstance().DeleteProductInfo(productInfo);
93 ProductInfoDao::GetInstance().UnInit();
94 }
95
96 /*
97 * @tc.name: GetProductInfos001
98 * @tc.desc: GetProductInfos
99 * @tc.type: FUNC
100 * @tc.require:
101 */
102 HWTEST_F(ProductInfoDaoTest, GetProductInfos001, TestSize.Level1)
103 {
104 ProductInfoDao::GetInstance().Init();
105 std::vector<std::string> productIds;
106 std::vector<ProductInfo> productInfos;
107 int32_t result = ProductInfoDao::GetInstance().GetProductInfos(productIds, productInfos);
108 EXPECT_EQ(result, DP_INVALID_PARAMS);
109 ProductInfoDao::GetInstance().UnInit();
110 }
111
112 /*
113 * @tc.name: GetProductInfos002
114 * @tc.desc: GetProductInfos
115 * @tc.type: FUNC
116 * @tc.require:
117 */
118 HWTEST_F(ProductInfoDaoTest, GetProductInfos002, TestSize.Level1)
119 {
120 ProductInfoDao::GetInstance().Init();
121 std::vector<std::string> productIds;
122 productIds.emplace_back("11111");
123 std::vector<ProductInfo> productInfos;
124 ProfileDataRdbAdapter::GetInstance().store_ = nullptr;
125 int32_t result = ProductInfoDao::GetInstance().GetProductInfos(productIds, productInfos);
126 EXPECT_EQ(result, DP_GET_RESULTSET_FAIL);
127 ProductInfoDao::GetInstance().UnInit();
128 }
129
130 /*
131 * @tc.name: GetProductInfos003
132 * @tc.desc: GetProductInfos
133 * @tc.type: FUNC
134 * @tc.require:
135 */
136 HWTEST_F(ProductInfoDaoTest, GetProductInfos003, TestSize.Level1)
137 {
138 ProductInfoDao::GetInstance().Init();
139 ProductInfo productInfo;
140 productInfo.SetProductId("11111");
141 ProductInfoDao::GetInstance().PutProductInfo(productInfo);
142 std::vector<std::string> productIds;
143 productIds.emplace_back("11111");
144 std::vector<ProductInfo> productInfos;
145 int32_t result = ProductInfoDao::GetInstance().GetProductInfos(productIds, productInfos);
146 EXPECT_EQ(result, DP_SUCCESS);
147 ProductInfoDao::GetInstance().DeleteProductInfo(productInfo);
148 ProductInfoDao::GetInstance().UnInit();
149 }
150
151 /*
152 * @tc.name: DeleteProductInfo001
153 * @tc.desc: DeleteProductInfo
154 * @tc.type: FUNC
155 * @tc.require:
156 */
157 HWTEST_F(ProductInfoDaoTest, DeleteProductInfo001, TestSize.Level1)
158 {
159 ProductInfoDao::GetInstance().Init();
160 ProductInfo productInfo;
161 productInfo.SetProductId("11111");
162 ProductInfoDao::GetInstance().PutProductInfo(productInfo);
163 int32_t result = ProductInfoDao::GetInstance().DeleteProductInfo(productInfo);
164 EXPECT_EQ(result, DP_SUCCESS);
165 ProductInfoDao::GetInstance().UnInit();
166 }
167
168 /*
169 * @tc.name: DeleteProductInfo002
170 * @tc.desc: DeleteProductInfo
171 * @tc.type: FUNC
172 * @tc.require:
173 */
174 HWTEST_F(ProductInfoDaoTest, DeleteProductInfo002, TestSize.Level1)
175 {
176 ProductInfoDao::GetInstance().UnInit();
177 ProductInfo productInfo;
178 int32_t result = ProductInfoDao::GetInstance().DeleteProductInfo(productInfo);
179 EXPECT_EQ(result, DP_DEL_PRODUCT_INFO_FAIL);
180 ProductInfoDao::GetInstance().UnInit();
181 }
182
183 /*
184 * @tc.name: UpdateProductInfo001
185 * @tc.desc: UpdateProductInfo
186 * @tc.type: FUNC
187 * @tc.require:
188 */
189 HWTEST_F(ProductInfoDaoTest, UpdateProductInfo001, TestSize.Level1)
190 {
191 ProductInfoDao::GetInstance().Init();
192 ProductInfo productInfo;
193 int32_t result = ProductInfoDao::GetInstance().UpdateProductInfo(productInfo);
194 EXPECT_EQ(result, DP_SUCCESS);
195 ProductInfoDao::GetInstance().UnInit();
196 }
197
198 /*
199 * @tc.name: UpdateProductInfo001
200 * @tc.desc: UpdateProductInfo
201 * @tc.type: FUNC
202 * @tc.require:
203 */
204 HWTEST_F(ProductInfoDaoTest, UpdateProductInfo002, TestSize.Level1)
205 {
206 ProductInfoDao::GetInstance().UnInit();
207 ProductInfo productInfo;
208 int32_t result = ProductInfoDao::GetInstance().UpdateProductInfo(productInfo);
209 EXPECT_EQ(result, DP_UPDATE_PRODUCT_INFO_FAIL);
210 }
211
212 /*
213 * @tc.name: CreateTable001
214 * @tc.desc: CreateTable
215 * @tc.type: FUNC
216 * @tc.require:
217 */
218 HWTEST_F(ProductInfoDaoTest, CreateTable001, TestSize.Level1)
219 {
220 ProductInfoDao::GetInstance().Init();
221 int32_t result = ProductInfoDao::GetInstance().CreateTable();
222 EXPECT_EQ(result, DP_SUCCESS);
223 ProductInfoDao::GetInstance().UnInit();
224 }
225
226 /*
227 * @tc.name: CreateTable002
228 * @tc.desc: CreateTable
229 * @tc.type: FUNC
230 * @tc.require:
231 */
232 HWTEST_F(ProductInfoDaoTest, CreateTable002, TestSize.Level1)
233 {
234 ProductInfoDao::GetInstance().UnInit();
235 int32_t result = ProductInfoDao::GetInstance().CreateTable();
236 EXPECT_EQ(result, DP_CREATE_TABLE_FAIL);
237 }
238
239 /*
240 * @tc.name: CreateIndex001
241 * @tc.desc: CreateIndex
242 * @tc.type: FUNC
243 * @tc.require:
244 */
245 HWTEST_F(ProductInfoDaoTest, CreateIndex001, TestSize.Level1)
246 {
247 ProductInfoDao::GetInstance().Init();
248 int32_t result = ProductInfoDao::GetInstance().CreateIndex();
249 EXPECT_EQ(result, DP_SUCCESS);
250 ProductInfoDao::GetInstance().UnInit();
251 }
252
253 /*
254 * @tc.name: CreateQuerySqlAndCondition001
255 * @tc.desc: CreateQuerySqlAndCondition
256 * @tc.type: FUNC
257 * @tc.require:
258 */
259 HWTEST_F(ProductInfoDaoTest, CreateQuerySqlAndCondition001, TestSize.Level1)
260 {
261 ProductInfoDao::GetInstance().Init();
262 std::vector<std::string> productIds;
263 std::string sql = "";
264 std::vector<ValueObject> condition;
265 bool result = ProductInfoDao::GetInstance().CreateQuerySqlAndCondition(productIds, sql, condition);
266 EXPECT_EQ(result, false);
267 ProductInfoDao::GetInstance().UnInit();
268 }
269
270 /*
271 * @tc.name: CreateQuerySqlAndCondition002
272 * @tc.desc: CreateQuerySqlAndCondition
273 * @tc.type: FUNC
274 * @tc.require:
275 */
276 HWTEST_F(ProductInfoDaoTest, CreateQuerySqlAndCondition002, TestSize.Level1)
277 {
278 ProductInfoDao::GetInstance().Init();
279 std::vector<std::string> productIds;
280 productIds.emplace_back("11111");
281 std::string sql = "";
282 std::vector<ValueObject> condition;
283 bool result = ProductInfoDao::GetInstance().CreateQuerySqlAndCondition(productIds, sql, condition);
284 EXPECT_EQ(result, true);
285 ProductInfoDao::GetInstance().UnInit();
286 }
287
288 /*
289 * @tc.name: ProductInfoToEntries001
290 * @tc.desc: ProductInfoToEntries
291 * @tc.type: FUNC
292 * @tc.require:
293 */
294 HWTEST_F(ProductInfoDaoTest, ProductInfoToEntries001, TestSize.Level1)
295 {
296 ProductInfoDao::GetInstance().Init();
297 ProductInfo productInfo;
298 ValuesBucket values;
299 int32_t result = ProductInfoDao::GetInstance().ProductInfoToEntries(productInfo, values);
300 EXPECT_EQ(result, DP_SUCCESS);
301 ProductInfoDao::GetInstance().UnInit();
302 }
303
304 /*
305 * @tc.name: ConvertToProductInfo001
306 * @tc.desc: ProductInfoToEntries
307 * @tc.type: FUNC
308 * @tc.require:
309 */
310 HWTEST_F(ProductInfoDaoTest, ConvertToProductInfo001, TestSize.Level1)
311 {
312 ProductInfoDao::GetInstance().Init();
313 std::shared_ptr<ResultSet> resultSet = nullptr;
314 ProductInfo productInfo;
315 int32_t result = ProductInfoDao::GetInstance().ConvertToProductInfo(resultSet, productInfo);
316 EXPECT_EQ(result, DP_GET_RESULTSET_FAIL);
317 ProductInfoDao::GetInstance().UnInit();
318 }
319
320 /*
321 * @tc.name: ConvertToProductInfo002
322 * @tc.desc: ProductInfoToEntries
323 * @tc.type: FUNC
324 * @tc.require:
325 */
326 HWTEST_F(ProductInfoDaoTest, ConvertToProductInfo002, TestSize.Level1)
327 {
328 ProductInfoDao::GetInstance().Init();
329 std::vector<std::string> productIds;
330 productIds.emplace_back("11111");
331 std::string sql;
332 std::vector<ValueObject> condition;
333 ProductInfoDao::GetInstance().CreateQuerySqlAndCondition(productIds, sql, condition);
334 std::shared_ptr<ResultSet> resultSet = ProfileDataRdbAdapter::GetInstance().Get(sql, condition);
335 ProductInfo productInfo;
336 int32_t result = ProductInfoDao::GetInstance().ConvertToProductInfo(resultSet, productInfo);
337 EXPECT_EQ(result, DP_GET_RESULTSET_FAIL);
338 ProductInfoDao::GetInstance().UnInit();
339 }
340 } // namespace DistributedDeviceProfile
341 } // namespace OHOS