• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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