• 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 <gmock/gmock.h>
17 #include <gtest/gtest.h>
18 #include <memory>
19 
20 #include "album_data_handler.h"
21 #include "dfs_error.h"
22 #include "gallery_file_const.h"
23 #include "medialibrary_db_const.h"
24 #include "medialibrary_type_const.h"
25 #include "rdb_store_mock.h"
26 
27 namespace OHOS::FileManagement::CloudSync::Test {
28 using namespace testing;
29 using namespace testing::ext;
30 using namespace std;
31 using namespace NativeRdb;
32 using namespace DriveKit;
33 const int USER_ID = 100;
34 const std::string BUND_NAME = "com.ohos.photos";
35 class AlbumDataHandlerMock : public AlbumDataHandler {
36 public:
AlbumDataHandlerMock(int32_t userId,const std::string & bundleName,std::shared_ptr<RdbStoreMock> rdb)37     explicit AlbumDataHandlerMock(int32_t userId, const std::string &bundleName, std::shared_ptr<RdbStoreMock> rdb)
38         : AlbumDataHandler(userId, bundleName, rdb, make_shared<bool>(false))
39     {
40     }
41     MOCK_METHOD2(GetDownloadAsset, int32_t(string cloudId,
42                                            vector<DriveKit::DKDownloadAsset> &outAssetsToDownload));
43     MOCK_METHOD1(OnDownloadSuccess, int32_t(const DriveKit::DKDownloadAsset &asset));
44     MOCK_METHOD1(OnDownloadAssets,
45                  int32_t(const std::map<DriveKit::DKDownloadAsset, DriveKit::DKDownloadResult> &resultMap));
46     MOCK_METHOD1(OnDownloadAssets, int32_t(const DKDownloadAsset &asset));
47     MOCK_METHOD1(GetAssetsToDownload, int32_t(std::vector<DriveKit::DKDownloadAsset> &outAssetsToDownload));
48     MOCK_METHOD1(Clean, int32_t(const int action));
49 };
50 class AlbumDataHandlerTest : public testing::Test {
51 public:
52     static void SetUpTestCase(void);
53     static void TearDownTestCase(void);
54     void SetUp();
55     void TearDown();
56 };
57 
SetUpTestCase(void)58 void AlbumDataHandlerTest::SetUpTestCase(void)
59 {
60     GTEST_LOG_(INFO) << "SetUpTestCase";
61 }
62 
TearDownTestCase(void)63 void AlbumDataHandlerTest::TearDownTestCase(void)
64 {
65     GTEST_LOG_(INFO) << "TearDownTestCase";
66 }
67 
SetUp(void)68 void AlbumDataHandlerTest::SetUp(void)
69 {
70     GTEST_LOG_(INFO) << "SetUp";
71 }
72 
TearDown(void)73 void AlbumDataHandlerTest::TearDown(void)
74 {
75     GTEST_LOG_(INFO) << "TearDown";
76 }
77 
78 /**
79  * @tc.name: OnFetchRecords001
80  * @tc.desc: Verify the OnFetchRecords function
81  * @tc.type: FUNC
82  * @tc.require: I6JPKG
83  */
84 HWTEST_F(AlbumDataHandlerTest, OnFetchRecords001, TestSize.Level1)
85 {
86     GTEST_LOG_(INFO) << "OnFetchRecords001 Begin";
87     try {
88         auto rdb = make_shared<RdbStoreMock>();
89         auto albumDataHandlerMock = make_shared<AlbumDataHandlerMock>(USER_ID, BUND_NAME, rdb);
90         shared_ptr<vector<DKRecord>> records = make_shared<vector<DKRecord>>();
91         OnFetchParams onFetchParams;
92         int res = albumDataHandlerMock->OnFetchRecords(records, onFetchParams);
93         EXPECT_EQ(res, E_OK);
94     } catch (...) {
95         EXPECT_TRUE(false);
96         GTEST_LOG_(INFO) << " OnFetchRecords001 ERROR";
97     }
98 
99     GTEST_LOG_(INFO) << "OnFetchRecords001 End";
100 }
101 
102 /**
103  * @tc.name: GetFetchCondition001
104  * @tc.desc: Verify the GetFetchCondition function
105  * @tc.type: FUNC
106  * @tc.require: I6JPKG
107  */
108 HWTEST_F(AlbumDataHandlerTest, GetFetchCondition001, TestSize.Level1)
109 {
110     GTEST_LOG_(INFO) << "GetFetchCondition001 Begin";
111     try {
112         FetchCondition cond;
113         auto rdb = make_shared<RdbStoreMock>();
114         auto albumDataHandlerMock = make_shared<AlbumDataHandlerMock>(USER_ID, BUND_NAME, rdb);
115         albumDataHandlerMock->GetFetchCondition(cond);
116         EXPECT_TRUE(true);
117     } catch (...) {
118         EXPECT_TRUE(false);
119         GTEST_LOG_(INFO) << " GetFetchCondition001 ERROR";
120     }
121 
122     GTEST_LOG_(INFO) << "GetFetchCondition001 End";
123 }
124 
125 /**
126  * @tc.name: GetRetryRecords001
127  * @tc.desc: Verify the GetRetryRecords function
128  * @tc.type: FUNC
129  * @tc.require: I6JPKG
130  */
131 HWTEST_F(AlbumDataHandlerTest, GetRetryRecords001, TestSize.Level1)
132 {
133     GTEST_LOG_(INFO) << "GetRetryRecords001 Begin";
134     try {
135         auto rdb = make_shared<RdbStoreMock>();
136         auto albumDataHandlerMock = make_shared<AlbumDataHandlerMock>(USER_ID, BUND_NAME, rdb);
137         vector<DriveKit::DKRecordId> records;
138         int32_t ret = albumDataHandlerMock->GetRetryRecords(records);
139         EXPECT_EQ(E_OK, ret);
140     } catch (...) {
141         EXPECT_TRUE(false);
142         GTEST_LOG_(INFO) << " GetRetryRecords001 ERROR";
143     }
144 
145     GTEST_LOG_(INFO) << "GetRetryRecords001 End";
146 }
147 
148 /**
149  * @tc.name: GetCreatedRecords001
150  * @tc.desc: Verify the GetCreatedRecords function
151  * @tc.type: FUNC
152  * @tc.require: I6JPKG
153  */
154 HWTEST_F(AlbumDataHandlerTest, GetCreatedRecords001, TestSize.Level1)
155 {
156     GTEST_LOG_(INFO) << "GetCreatedRecords001 Begin";
157     try {
158         auto rdb = make_shared<RdbStoreMock>();
159         auto albumDataHandlerMock = make_shared<AlbumDataHandlerMock>(USER_ID, BUND_NAME, rdb);
160         vector<DriveKit::DKRecord> records;
161         int32_t ret = albumDataHandlerMock->GetCreatedRecords(records);
162         EXPECT_EQ(E_RDB, ret);
163     } catch (...) {
164         EXPECT_TRUE(false);
165         GTEST_LOG_(INFO) << " GetCreatedRecords001 ERROR";
166     }
167 
168     GTEST_LOG_(INFO) << "GetCreatedRecords001 End";
169 }
170 
171 /**
172  * @tc.name: GetDeletedRecords001
173  * @tc.desc: Verify the GetDeletedRecords function
174  * @tc.type: FUNC
175  * @tc.require: I6JPKG
176  */
177 HWTEST_F(AlbumDataHandlerTest, GetDeletedRecords001, TestSize.Level1)
178 {
179     GTEST_LOG_(INFO) << "GetDeletedRecords001 Begin";
180     try {
181         auto rdb = make_shared<RdbStoreMock>();
182         auto albumDataHandlerMock = make_shared<AlbumDataHandlerMock>(USER_ID, BUND_NAME, rdb);
183         vector<DriveKit::DKRecord> records;
184         int32_t ret = albumDataHandlerMock->GetDeletedRecords(records);
185         EXPECT_EQ(E_RDB, ret);
186     } catch (...) {
187         EXPECT_TRUE(false);
188         GTEST_LOG_(INFO) << " GetDeletedRecords001 ERROR";
189     }
190 
191     GTEST_LOG_(INFO) << "GetDeletedRecords001 End";
192 }
193 
194 /**
195  * @tc.name: GetMetaModifiedRecords001
196  * @tc.desc: Verify the GetMetaModifiedRecords function
197  * @tc.type: FUNC
198  * @tc.require: I6JPKG
199  */
200 HWTEST_F(AlbumDataHandlerTest, GetMetaModifiedRecords001, TestSize.Level1)
201 {
202     GTEST_LOG_(INFO) << "GetMetaModifiedRecords001 Begin";
203     try {
204         auto rdb = make_shared<RdbStoreMock>();
205         auto albumDataHandlerMock = make_shared<AlbumDataHandlerMock>(USER_ID, BUND_NAME, rdb);
206         vector<DriveKit::DKRecord> records;
207         int32_t ret = albumDataHandlerMock->GetMetaModifiedRecords(records);
208         EXPECT_EQ(E_RDB, ret);
209     } catch (...) {
210         EXPECT_TRUE(false);
211         GTEST_LOG_(INFO) << " GetMetaModifiedRecords001 ERROR";
212     }
213 
214     GTEST_LOG_(INFO) << "GetMetaModifiedRecords001 End";
215 }
216 
217 /**
218  * @tc.name: OnCreateRecords001
219  * @tc.desc: Verify the OnCreateRecords function
220  * @tc.type: FUNC
221  * @tc.require: I6JPKG
222  */
223 HWTEST_F(AlbumDataHandlerTest, OnCreateRecords001, TestSize.Level1)
224 {
225     GTEST_LOG_(INFO) << "OnCreateRecords001 Begin";
226     try {
227         auto rdb = make_shared<RdbStoreMock>();
228         auto albumDataHandlerMock = make_shared<AlbumDataHandlerMock>(USER_ID, BUND_NAME, rdb);
229         map<DKRecordId, DKRecordOperResult> map;
230         int32_t ret = albumDataHandlerMock->OnCreateRecords(map);
231         EXPECT_EQ(E_OK, ret);
232     } catch (...) {
233         EXPECT_TRUE(false);
234         GTEST_LOG_(INFO) << " OnCreateRecords001 ERROR";
235     }
236 
237     GTEST_LOG_(INFO) << "OnCreateRecords001 End";
238 }
239 
240 /**
241  * @tc.name: OnDeleteRecords001
242  * @tc.desc: Verify the OnDeleteRecords function
243  * @tc.type: FUNC
244  * @tc.require: I6JPKG
245  */
246 HWTEST_F(AlbumDataHandlerTest, OnDeleteRecords001, TestSize.Level1)
247 {
248     GTEST_LOG_(INFO) << "OnDeleteRecords001 Begin";
249     try {
250         auto rdb = make_shared<RdbStoreMock>();
251         auto albumDataHandlerMock = make_shared<AlbumDataHandlerMock>(USER_ID, BUND_NAME, rdb);
252         map<DKRecordId, DKRecordOperResult> map;
253         int32_t ret = albumDataHandlerMock->OnDeleteRecords(map);
254         EXPECT_EQ(E_OK, ret);
255     } catch (...) {
256         EXPECT_TRUE(false);
257         GTEST_LOG_(INFO) << " OnDeleteRecords001 ERROR";
258     }
259 
260     GTEST_LOG_(INFO) << "OnDeleteRecords001 End";
261 }
262 
263 /**
264  * @tc.name: OnModifyMdirtyRecords001
265  * @tc.desc: Verify the OnModifyMdirtyRecords function
266  * @tc.type: FUNC
267  * @tc.require: I6JPKG
268  */
269 HWTEST_F(AlbumDataHandlerTest, OnModifyMdirtyRecords001, TestSize.Level1)
270 {
271     GTEST_LOG_(INFO) << "OnModifyMdirtyRecords001 Begin";
272     try {
273         auto rdb = make_shared<RdbStoreMock>();
274         auto albumDataHandlerMock = make_shared<AlbumDataHandlerMock>(USER_ID, BUND_NAME, rdb);
275         map<DKRecordId, DKRecordOperResult> map;
276         int32_t ret = albumDataHandlerMock->OnModifyMdirtyRecords(map);
277         EXPECT_EQ(E_OK, ret);
278     } catch (...) {
279         EXPECT_TRUE(false);
280         GTEST_LOG_(INFO) << " OnModifyMdirtyRecords001 ERROR";
281     }
282 
283     GTEST_LOG_(INFO) << "OnModifyMdirtyRecords001 End";
284 }
285 } // namespace OHOS::FileManagement::CloudSync::Test