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 <gmock/gmock.h>
17 #include <gtest/gtest.h>
18 #include <memory>
19 #include <vector>
20 
21 #include "bindable.h"
22 #include "context.h"
23 #include "extension_context.h"
24 #include "ability_context.h"
25 #include "file_access_ext_stub_impl.h"
26 #include "file_access_extension_info.h"
27 #include "file_access_framework_errno.h"
28 #include "file_access_ext_ability_mock.h"
29 #include "uri.h"
30 
31 namespace OHOS::FileAccessFwk {
32 using namespace std;
33 using namespace testing;
34 using namespace testing::ext;
35 using namespace OHOS::AbilityRuntime;
36 
FileAccessExtStub()37 FileAccessExtStub::FileAccessExtStub() {}
38 
~FileAccessExtStub()39 FileAccessExtStub::~FileAccessExtStub() {}
40 
OnRemoteRequest(uint32_t code,MessageParcel & data,MessageParcel & reply,MessageOption & option)41 int FileAccessExtStub::OnRemoteRequest(uint32_t code, MessageParcel& data, MessageParcel& reply,
42     MessageOption& option)
43 {
44     return 0;
45 }
46 
47 class FileAccessExtStubImplTest : public testing::Test {
48 public:
SetUpTestCase(void)49     static void SetUpTestCase(void) {}
TearDownTestCase()50     static void TearDownTestCase() {}
SetUp()51     void SetUp() {}
TearDown()52     void TearDown() {}
53     shared_ptr<FileAccessExtAbilityMock> ability = make_shared<FileAccessExtAbilityMock>();
54 };
55 
56 /**
57  * @tc.number: user_file_service_file_access_ext_stub_impl_OpenFile_0000
58  * @tc.name: file_access_ext_stub_impl_OpenFile_0000
59  * @tc.desc: Test function of OpenFile interface for ERROR because of extension is nullptr.
60  * @tc.size: MEDIUM
61  * @tc.type: FUNC
62  * @tc.level Level 3
63  * @tc.require: issuesI8WZ9U
64  */
65 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_OpenFile_0000, testing::ext::TestSize.Level1)
66 {
67     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_OpenFile_0000";
68     try {
69         int fd;
70         Uri uri("");
71         FileAccessExtStubImpl impl(nullptr, nullptr);
72         int result = impl.OpenFile(uri, WRITE_READ, fd);
73         EXPECT_EQ(result, E_IPCS);
74     } catch (...) {
75         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
76     }
77     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_OpenFile_0000";
78 }
79 
80 /**
81  * @tc.number: user_file_service_file_access_ext_stub_impl_OpenFile_0001
82  * @tc.name: file_access_ext_stub_impl_OpenFile_0001
83  * @tc.desc: Test function of OpenFile interface for SUCCESS.
84  * @tc.size: MEDIUM
85  * @tc.type: FUNC
86  * @tc.level Level 3
87  * @tc.require: issuesI8WZ9U
88  */
89 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_OpenFile_0001, testing::ext::TestSize.Level1)
90 {
91     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_OpenFile_0001";
92     try {
93         EXPECT_CALL(*ability, OpenFile(_, _, _)).WillOnce(Return(OHOS::FileAccessFwk::ERR_OK));
94 
95         int fd;
96         Uri uri("");
97         FileAccessExtStubImpl impl(ability, nullptr);
98         int result = impl.OpenFile(uri, WRITE_READ, fd);
99         EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
100     } catch (...) {
101         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
102     }
103     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_OpenFile_0001";
104 }
105 
106 /**
107  * @tc.number: user_file_service_file_access_ext_stub_impl_CreateFile_0000
108  * @tc.name: file_access_ext_stub_impl_CreateFile_0000
109  * @tc.desc: Test function of CreateFile interface for ERROR because of extension is nullptr.
110  * @tc.size: MEDIUM
111  * @tc.type: FUNC
112  * @tc.level Level 3
113  * @tc.require: issuesI8WZ9U
114  */
115 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_CreateFile_0000, testing::ext::TestSize.Level1)
116 {
117     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_CreateFile_0000";
118     try {
119         Uri uri("");
120         Uri newUri("");
121         string displayName = "";
122         FileAccessExtStubImpl impl(nullptr, nullptr);
123         int result = impl.CreateFile(uri, displayName, newUri);
124         EXPECT_EQ(result, E_IPCS);
125     } catch (...) {
126         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
127     }
128     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_CreateFile_0000";
129 }
130 
131 /**
132  * @tc.number: user_file_service_file_access_ext_stub_impl_CreateFile_0001
133  * @tc.name: file_access_ext_stub_impl_CreateFile_0001
134  * @tc.desc: Test function of CreateFile interface for SUCCESS.
135  * @tc.size: MEDIUM
136  * @tc.type: FUNC
137  * @tc.level Level 3
138  * @tc.require: issuesI8WZ9U
139  */
140 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_CreateFile_0001, testing::ext::TestSize.Level1)
141 {
142     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_CreateFile_0001";
143     try {
144         EXPECT_CALL(*ability, CreateFile(_, _, _)).WillOnce(Return(OHOS::FileAccessFwk::ERR_OK));
145 
146         Uri uri("");
147         Uri newUri("");
148         string displayName = "";
149         FileAccessExtStubImpl impl(ability, nullptr);
150         int result = impl.CreateFile(uri, displayName, newUri);
151         EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
152     } catch (...) {
153         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
154     }
155     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_CreateFile_0001";
156 }
157 
158 /**
159  * @tc.number: user_file_service_file_access_ext_stub_impl_Mkdir_0000
160  * @tc.name: file_access_ext_stub_impl_Mkdir_0000
161  * @tc.desc: Test function of Mkdir interface for ERROR because of extension is nullptr.
162  * @tc.size: MEDIUM
163  * @tc.type: FUNC
164  * @tc.level Level 3
165  * @tc.require: issuesI8WZ9U
166  */
167 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_Mkdir_0000, testing::ext::TestSize.Level1)
168 {
169     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_Mkdir_0000";
170     try {
171         Uri uri("");
172         Uri newUri("");
173         string displayName = "";
174         FileAccessExtStubImpl impl(nullptr, nullptr);
175         int result = impl.Mkdir(uri, displayName, newUri);
176         EXPECT_EQ(result, E_IPCS);
177     } catch (...) {
178         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
179     }
180     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_Mkdir_0000";
181 }
182 
183 /**
184  * @tc.number: user_file_service_file_access_ext_stub_impl_Mkdir_0001
185  * @tc.name: file_access_ext_stub_impl_Mkdir_0001
186  * @tc.desc: Test function of Mkdir interface for SUCCESS.
187  * @tc.size: MEDIUM
188  * @tc.type: FUNC
189  * @tc.level Level 3
190  * @tc.require: issuesI8WZ9U
191  */
192 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_Mkdir_0001, testing::ext::TestSize.Level1)
193 {
194     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_Mkdir_0001";
195     try {
196         EXPECT_CALL(*ability, Mkdir(_, _, _)).WillOnce(Return(OHOS::FileAccessFwk::ERR_OK));
197 
198         Uri uri("");
199         Uri newUri("");
200         string displayName = "";
201         FileAccessExtStubImpl impl(ability, nullptr);
202         int result = impl.Mkdir(uri, displayName, newUri);
203         EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
204     } catch (...) {
205         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
206     }
207     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_Mkdir_0001";
208 }
209 
210 /**
211  * @tc.number: user_file_service_file_access_ext_stub_impl_Delete_0000
212  * @tc.name: file_access_ext_stub_impl_Delete_0000
213  * @tc.desc: Test function of Delete interface for ERROR because of extension is nullptr.
214  * @tc.size: MEDIUM
215  * @tc.type: FUNC
216  * @tc.level Level 3
217  * @tc.require: issuesI8WZ9U
218  */
219 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_Delete_0000, testing::ext::TestSize.Level1)
220 {
221     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_Delete_0000";
222     try {
223         Uri sourceFile("");
224         FileAccessExtStubImpl impl(nullptr, nullptr);
225         int result = impl.Delete(sourceFile);
226         EXPECT_EQ(result, E_IPCS);
227     } catch (...) {
228         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
229     }
230     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_Delete_0000";
231 }
232 
233 /**
234  * @tc.number: user_file_service_file_access_ext_stub_impl_Delete_0001
235  * @tc.name: file_access_ext_stub_impl_Delete_0001
236  * @tc.desc: Test function of Delete interface for SUCCESS.
237  * @tc.size: MEDIUM
238  * @tc.type: FUNC
239  * @tc.level Level 3
240  * @tc.require: issuesI8WZ9U
241  */
242 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_Delete_0001, testing::ext::TestSize.Level1)
243 {
244     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_Delete_0001";
245     try {
246         EXPECT_CALL(*ability, Delete(_)).WillOnce(Return(OHOS::FileAccessFwk::ERR_OK));
247 
248         Uri sourceFile("");
249         FileAccessExtStubImpl impl(ability, nullptr);
250         int result = impl.Delete(sourceFile);
251         EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
252     } catch (...) {
253         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
254     }
255     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_Delete_0001";
256 }
257 
258 /**
259  * @tc.number: user_file_service_file_access_ext_stub_impl_Move_0000
260  * @tc.name: file_access_ext_stub_impl_Move_0000
261  * @tc.desc: Test function of Move interface for ERROR because of extension is nullptr.
262  * @tc.size: MEDIUM
263  * @tc.type: FUNC
264  * @tc.level Level 3
265  * @tc.require: issuesI8WZ9U
266  */
267 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_Move_0000, testing::ext::TestSize.Level1)
268 {
269     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_Move_0000";
270     try {
271         Uri sourceFile("");
272         Uri targetParent("");
273         Uri newFile("");
274         FileAccessExtStubImpl impl(nullptr, nullptr);
275         int result = impl.Move(sourceFile, targetParent, newFile);
276         EXPECT_EQ(result, E_IPCS);
277     } catch (...) {
278         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
279     }
280     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_Move_0000";
281 }
282 
283 /**
284  * @tc.number: user_file_service_file_access_ext_stub_impl_Move_0001
285  * @tc.name: file_access_ext_stub_impl_Move_0001
286  * @tc.desc: Test function of Move interface for SUCCESS.
287  * @tc.size: MEDIUM
288  * @tc.type: FUNC
289  * @tc.level Level 3
290  * @tc.require: issuesI8XFLP
291  */
292 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_Move_0001, testing::ext::TestSize.Level1)
293 {
294     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_Move_0001";
295     try {
296         EXPECT_CALL(*ability, Move(_, _, _)).WillOnce(Return(OHOS::FileAccessFwk::ERR_OK));
297 
298         Uri sourceFile("");
299         Uri targetParent("");
300         Uri newFile("");
301         FileAccessExtStubImpl impl(ability, nullptr);
302         int result = impl.Move(sourceFile, targetParent, newFile);
303         EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
304     } catch (...) {
305         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
306     }
307     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_Move_0001";
308 }
309 
310 /**
311  * @tc.number: user_file_service_file_access_ext_stub_impl_Copy_0000
312  * @tc.name: file_access_ext_stub_impl_Copy_0000
313  * @tc.desc: Test function of Copy interface for ERROR because of extension is nullptr.
314  * @tc.size: MEDIUM
315  * @tc.type: FUNC
316  * @tc.level Level 3
317  * @tc.require: issuesI8XFLP
318  */
319 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_Copy_0000, testing::ext::TestSize.Level1)
320 {
321     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_Copy_0000";
322     try {
323         Uri sourceFile("");
324         Uri destUri("");
325         vector<Result> copyResult;
326         FileAccessExtStubImpl impl(nullptr, nullptr);
327         int result = impl.Copy(sourceFile, destUri, copyResult);
328         EXPECT_EQ(result, E_IPCS);
329     } catch (...) {
330         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
331     }
332     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_Copy_0000";
333 }
334 
335 /**
336  * @tc.number: user_file_service_file_access_ext_stub_impl_Copy_0001
337  * @tc.name: file_access_ext_stub_impl_Copy_0001
338  * @tc.desc: Test function of Copy interface for SUCCESS.
339  * @tc.size: MEDIUM
340  * @tc.type: FUNC
341  * @tc.level Level 3
342  * @tc.require: issuesI8XFLP
343  */
344 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_Copy_0001, testing::ext::TestSize.Level1)
345 {
346     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_Copy_0001";
347     try {
348         EXPECT_CALL(*ability, Copy(_, _, _, _)).WillOnce(Return(OHOS::FileAccessFwk::ERR_OK));
349 
350         Uri sourceFile("");
351         Uri destUri("");
352         vector<Result> copyResult;
353         FileAccessExtStubImpl impl(ability, nullptr);
354         int result = impl.Copy(sourceFile, destUri, copyResult);
355         EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
356     } catch (...) {
357         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
358     }
359     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_Copy_0001";
360 }
361 
362 /**
363  * @tc.number: user_file_service_file_access_ext_stub_impl_CopyFile_0000
364  * @tc.name: file_access_ext_stub_impl_CopyFile_0000
365  * @tc.desc: Test function of CopyFile interface for ERROR because of extension is nullptr.
366  * @tc.size: MEDIUM
367  * @tc.type: FUNC
368  * @tc.level Level 3
369  * @tc.require: issuesI8XFLP
370  */
371 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_CopyFile_0000, testing::ext::TestSize.Level1)
372 {
373     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_CopyFile_0000";
374     try {
375         Uri sourceFile("");
376         Uri destUri("");
377         string fileName;
378         Uri newFileUri("");
379         FileAccessExtStubImpl impl(nullptr, nullptr);
380         int result = impl.CopyFile(sourceFile, destUri, fileName, newFileUri);
381         EXPECT_EQ(result, E_IPCS);
382     } catch (...) {
383         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
384     }
385     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_CopyFile_0000";
386 }
387 
388 /**
389  * @tc.number: user_file_service_file_access_ext_stub_impl_CopyFile_0001
390  * @tc.name: file_access_ext_stub_impl_CopyFile_0001
391  * @tc.desc: Test function of CopyFile interface for SUCCESS.
392  * @tc.size: MEDIUM
393  * @tc.type: FUNC
394  * @tc.level Level 3
395  * @tc.require: issuesI8XFLP
396  */
397 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_CopyFile_0001, testing::ext::TestSize.Level1)
398 {
399     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_CopyFile_0001";
400     try {
401         EXPECT_CALL(*ability, CopyFile(_, _, _, _)).WillOnce(Return(OHOS::FileAccessFwk::ERR_OK));
402 
403         Uri sourceFile("");
404         Uri destUri("");
405         string fileName;
406         Uri newFileUri("");
407         FileAccessExtStubImpl impl(ability, nullptr);
408         int result = impl.CopyFile(sourceFile, destUri, fileName, newFileUri);
409         EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
410     } catch (...) {
411         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
412     }
413     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_CopyFile_0001";
414 }
415 
416 /**
417  * @tc.number: user_file_service_file_access_ext_stub_impl_Rename_0000
418  * @tc.name: file_access_ext_stub_impl_Rename_0000
419  * @tc.desc: Test function of Rename interface for ERROR because of extension is nullptr.
420  * @tc.size: MEDIUM
421  * @tc.type: FUNC
422  * @tc.level Level 3
423  * @tc.require: issuesI8XFLP
424  */
425 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_Rename_0000, testing::ext::TestSize.Level1)
426 {
427     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_Rename_0000";
428     try {
429         Uri sourceFile("");
430         Uri newUri("");
431         string displayName = "";
432         FileAccessExtStubImpl impl(nullptr, nullptr);
433         int result = impl.Rename(sourceFile, displayName, newUri);
434         EXPECT_EQ(result, E_IPCS);
435     } catch (...) {
436         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
437     }
438     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_Rename_0000";
439 }
440 
441 /**
442  * @tc.number: user_file_service_file_access_ext_stub_impl_Rename_0001
443  * @tc.name: file_access_ext_stub_impl_Rename_0001
444  * @tc.desc: Test function of Rename interface for SUCCESS.
445  * @tc.size: MEDIUM
446  * @tc.type: FUNC
447  * @tc.level Level 3
448  * @tc.require: issuesI8XFLP
449  */
450 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_Rename_0001, testing::ext::TestSize.Level1)
451 {
452     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_Rename_0001";
453     try {
454         EXPECT_CALL(*ability, Rename(_, _, _)).WillOnce(Return(OHOS::FileAccessFwk::ERR_OK));
455 
456         Uri sourceFile("");
457         Uri newUri("");
458         string displayName = "";
459         FileAccessExtStubImpl impl(ability, nullptr);
460         int result = impl.Rename(sourceFile, displayName, newUri);
461         EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
462     } catch (...) {
463         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
464     }
465     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_Rename_0001";
466 }
467 
468 /**
469  * @tc.number: user_file_service_file_access_ext_stub_impl_ListFile_0000
470  * @tc.name: file_access_ext_stub_impl_ListFile_0000
471  * @tc.desc: Test function of ListFile interface for ERROR because of extension is nullptr.
472  * @tc.size: MEDIUM
473  * @tc.type: FUNC
474  * @tc.level Level 3
475  * @tc.require: issuesI8XFLP
476  */
477 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_ListFile_0000, testing::ext::TestSize.Level1)
478 {
479     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_ListFile_0000";
480     try {
481         FileInfo fileInfo;
482         int64_t offset = 0;
483         const FileFilter filter;
484         SharedMemoryInfo memInfo;
485         FileAccessExtStubImpl impl(nullptr, nullptr);
486         int result = impl.ListFile(fileInfo, offset, filter, memInfo);
487         EXPECT_EQ(result, E_IPCS);
488     } catch (...) {
489         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
490     }
491     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_ListFile_0000";
492 }
493 
494 /**
495  * @tc.number: user_file_service_file_access_ext_stub_impl_ListFile_0001
496  * @tc.name: file_access_ext_stub_impl_ListFile_0001
497  * @tc.desc: Test function of ListFile interface for SUCCESS.
498  * @tc.size: MEDIUM
499  * @tc.type: FUNC
500  * @tc.level Level 3
501  * @tc.require: issuesI8XFLP
502  */
503 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_ListFile_0001, testing::ext::TestSize.Level1)
504 {
505     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_ListFile_0001";
506     try {
507         EXPECT_CALL(*ability, ListFile(_, _, _, _, _)).WillOnce(Return(EPERM));
508 
509         FileInfo fileInfo;
510         int64_t offset = 0;
511         const FileFilter filter;
512         SharedMemoryInfo memInfo;
513         FileAccessExtStubImpl impl(ability, nullptr);
514         int result = impl.ListFile(fileInfo, offset, filter, memInfo);
515         EXPECT_EQ(result, EPERM);
516     } catch (...) {
517         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
518     }
519     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_ListFile_0001";
520 }
521 
522 /**
523  * @tc.number: user_file_service_file_access_ext_stub_impl_ListFile_0002
524  * @tc.name: file_access_ext_stub_impl_ListFile_0002
525  * @tc.desc: Test function of ListFile interface for SUCCESS.
526  * @tc.size: MEDIUM
527  * @tc.type: FUNC
528  * @tc.level Level 3
529  * @tc.require: issuesI8XFLP
530  */
531 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_ListFile_0002, testing::ext::TestSize.Level1)
532 {
533     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_ListFile_0002";
534     try {
535         EXPECT_CALL(*ability, ListFile(_, _, _, _, _)).WillOnce(Return(OHOS::FileAccessFwk::ERR_OK));
536 
537         FileInfo fileInfo;
538         int64_t offset = 0;
539         const FileFilter filter;
540         SharedMemoryInfo memInfo;
541         FileAccessExtStubImpl impl(ability, nullptr);
542         int result = impl.ListFile(fileInfo, offset, filter, memInfo);
543         EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
544     } catch (...) {
545         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
546     }
547     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_ListFile_0002";
548 }
549 
550 /**
551  * @tc.number: user_file_service_file_access_ext_stub_impl_ScanFile_0000
552  * @tc.name: file_access_ext_stub_impl_ScanFile_0000
553  * @tc.desc: Test function of ScanFile interface for ERROR because of extension is nullptr.
554  * @tc.size: MEDIUM
555  * @tc.type: FUNC
556  * @tc.level Level 3
557  * @tc.require: issuesI8XFLP
558  */
559 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_ScanFile_0000, testing::ext::TestSize.Level1)
560 {
561     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_ScanFile_0000";
562     try {
563         FileInfo fileInfo;
564         int64_t offset = 0;
565         int64_t maxCount = 0;
566         const FileFilter filter;
567         vector<FileInfo> fileInfoVec;
568         FileAccessExtStubImpl impl(nullptr, nullptr);
569         int result = impl.ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec);
570         EXPECT_EQ(result, E_IPCS);
571     } catch (...) {
572         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
573     }
574     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_ScanFile_0000";
575 }
576 
577 /**
578  * @tc.number: user_file_service_file_access_ext_stub_impl_ScanFile_0001
579  * @tc.name: file_access_ext_stub_impl_ScanFile_0001
580  * @tc.desc: Test function of ScanFile interface for SUCCESS.
581  * @tc.size: MEDIUM
582  * @tc.type: FUNC
583  * @tc.level Level 3
584  * @tc.require: issuesI8XFLP
585  */
586 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_ScanFile_0001, testing::ext::TestSize.Level1)
587 {
588     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_ScanFile_0001";
589     try {
590         EXPECT_CALL(*ability, ScanFile(_, _, _, _, _)).WillOnce(Return(OHOS::FileAccessFwk::ERR_OK));
591 
592         FileInfo fileInfo;
593         int64_t offset = 0;
594         int64_t maxCount = 0;
595         const FileFilter filter;
596         vector<FileInfo> fileInfoVec;
597         FileAccessExtStubImpl impl(ability, nullptr);
598         int result = impl.ScanFile(fileInfo, offset, maxCount, filter, fileInfoVec);
599         EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
600     } catch (...) {
601         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
602     }
603     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_ScanFile_0001";
604 }
605 
606 /**
607  * @tc.number: user_file_service_file_access_ext_stub_impl_Query_0000
608  * @tc.name: file_access_ext_stub_impl_Query_0000
609  * @tc.desc: Test function of Query interface for ERROR because of extension is nullptr.
610  * @tc.size: MEDIUM
611  * @tc.type: FUNC
612  * @tc.level Level 3
613  * @tc.require: issuesI8XFLP
614  */
615 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_Query_0000, testing::ext::TestSize.Level1)
616 {
617     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_Query_0000";
618     try {
619         Uri uri("");
620         vector<string> columns;
621         vector<string> results;
622         FileAccessExtStubImpl impl(nullptr, nullptr);
623         int result = impl.Query(uri, columns, results);
624         EXPECT_EQ(result, E_IPCS);
625     } catch (...) {
626         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
627     }
628     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_Query_0000";
629 }
630 
631 /**
632  * @tc.number: user_file_service_file_access_ext_stub_impl_Query_0001
633  * @tc.name: file_access_ext_stub_impl_Query_0001
634  * @tc.desc: Test function of Query interface for SUCCESS.
635  * @tc.size: MEDIUM
636  * @tc.type: FUNC
637  * @tc.level Level 3
638  * @tc.require: issuesI8XFLP
639  */
640 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_Query_0001, testing::ext::TestSize.Level1)
641 {
642     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_Query_0001";
643     try {
644         EXPECT_CALL(*ability, Query(_, _, _)).WillOnce(Return(OHOS::FileAccessFwk::ERR_OK));
645 
646         Uri uri("");
647         vector<string> columns;
648         vector<string> results;
649         FileAccessExtStubImpl impl(ability, nullptr);
650         int result = impl.Query(uri, columns, results);
651         EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
652     } catch (...) {
653         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
654     }
655     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_Query_0001";
656 }
657 
658 /**
659  * @tc.number: user_file_service_file_access_ext_stub_impl_GetFileInfoFromUri_0000
660  * @tc.name: file_access_ext_stub_impl_GetFileInfoFromUri_0000
661  * @tc.desc: Test function of GetFileInfoFromUri interface for ERROR because of extension is nullptr.
662  * @tc.size: MEDIUM
663  * @tc.type: FUNC
664  * @tc.level Level 3
665  * @tc.require: issuesI8XFLP
666  */
667 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_GetFileInfoFromUri_0000, testing::ext::TestSize.Level1)
668 {
669     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_GetFileInfoFromUri_0000";
670     try {
671         Uri selectFile("");
672         FileInfo fileInfo;
673         FileAccessExtStubImpl impl(nullptr, nullptr);
674         int result = impl.GetFileInfoFromUri(selectFile, fileInfo);
675         EXPECT_EQ(result, E_IPCS);
676     } catch (...) {
677         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
678     }
679     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_GetFileInfoFromUri_0000";
680 }
681 
682 /**
683  * @tc.number: user_file_service_file_access_ext_stub_impl_GetFileInfoFromUri_0001
684  * @tc.name: file_access_ext_stub_impl_GetFileInfoFromUri_0001
685  * @tc.desc: Test function of GetFileInfoFromUri interface for SUCCESS.
686  * @tc.size: MEDIUM
687  * @tc.type: FUNC
688  * @tc.level Level 3
689  * @tc.require: issuesI8XN2E
690  */
691 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_GetFileInfoFromUri_0001, testing::ext::TestSize.Level1)
692 {
693     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_GetFileInfoFromUri_0001";
694     try {
695         EXPECT_CALL(*ability, GetFileInfoFromUri(_, _)).WillOnce(Return(OHOS::FileAccessFwk::ERR_OK));
696 
697         Uri selectFile("");
698         FileInfo fileInfo;
699         FileAccessExtStubImpl impl(ability, nullptr);
700         int result = impl.GetFileInfoFromUri(selectFile, fileInfo);
701         EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
702     } catch (...) {
703         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
704     }
705     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_GetFileInfoFromUri_0001";
706 }
707 
708 /**
709  * @tc.number: user_file_service_file_access_ext_stub_impl_GetFileInfoFromRelativePath_0000
710  * @tc.name: file_access_ext_stub_impl_GetFileInfoFromRelativePath_0000
711  * @tc.desc: Test function of GetFileInfoFromRelativePath interface for ERROR because of extension is nullptr.
712  * @tc.size: MEDIUM
713  * @tc.type: FUNC
714  * @tc.level Level 3
715  * @tc.require: issuesI8XN2E
716  */
717 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_GetFileInfoFromRelativePath_0000,
718     testing::ext::TestSize.Level1)
719 {
720     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_GetFileInfoFromRelativePath_0000";
721     try {
722         string selectFile;
723         FileInfo fileInfo;
724         FileAccessExtStubImpl impl(nullptr, nullptr);
725         int result = impl.GetFileInfoFromRelativePath(selectFile, fileInfo);
726         EXPECT_EQ(result, E_IPCS);
727     } catch (...) {
728         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
729     }
730     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_GetFileInfoFromRelativePath_0000";
731 }
732 
733 /**
734  * @tc.number: user_file_service_file_access_ext_stub_impl_GetFileInfoFromRelativePath_0001
735  * @tc.name: file_access_ext_stub_impl_GetFileInfoFromRelativePath_0001
736  * @tc.desc: Test function of GetFileInfoFromRelativePath interface for SUCCESS.
737  * @tc.size: MEDIUM
738  * @tc.type: FUNC
739  * @tc.level Level 3
740  * @tc.require: issuesI8XN2E
741  */
742 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_GetFileInfoFromRelativePath_0001,
743     testing::ext::TestSize.Level1)
744 {
745     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_GetFileInfoFromRelativePath_0001";
746     try {
747         EXPECT_CALL(*ability, GetFileInfoFromRelativePath(_, _)).WillOnce(Return(OHOS::FileAccessFwk::ERR_OK));
748 
749         string selectFile;
750         FileInfo fileInfo;
751         FileAccessExtStubImpl impl(ability, nullptr);
752         int result = impl.GetFileInfoFromRelativePath(selectFile, fileInfo);
753         EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
754     } catch (...) {
755         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
756     }
757     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_GetFileInfoFromRelativePath_0001";
758 }
759 
760 /**
761  * @tc.number: user_file_service_file_access_ext_stub_impl_GetRoots_0000
762  * @tc.name: file_access_ext_stub_impl_GetRoots_0000
763  * @tc.desc: Test function of GetRoots interface for ERROR because of extension is nullptr.
764  * @tc.size: MEDIUM
765  * @tc.type: FUNC
766  * @tc.level Level 3
767  * @tc.require: issuesI8XN2E
768  */
769 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_GetRoots_0000, testing::ext::TestSize.Level1)
770 {
771     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_GetRoots_0000";
772     try {
773         vector<RootInfo> rootInfoVec;
774         FileAccessExtStubImpl impl(nullptr, nullptr);
775         int result = impl.GetRoots(rootInfoVec);
776         EXPECT_EQ(result, E_IPCS);
777     } catch (...) {
778         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
779     }
780     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_GetRoots_0000";
781 }
782 
783 /**
784  * @tc.number: user_file_service_file_access_ext_stub_impl_GetRoots_0001
785  * @tc.name: file_access_ext_stub_impl_GetRoots_0001
786  * @tc.desc: Test function of GetRoots interface for SUCCESS.
787  * @tc.size: MEDIUM
788  * @tc.type: FUNC
789  * @tc.level Level 3
790  * @tc.require: issuesI8XN2E
791  */
792 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_GetRoots_0001, testing::ext::TestSize.Level1)
793 {
794     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_GetRoots_0001";
795     try {
796         EXPECT_CALL(*ability, GetRoots(_)).WillOnce(Return(OHOS::FileAccessFwk::ERR_OK));
797 
798         vector<RootInfo> rootInfoVec;
799         FileAccessExtStubImpl impl(ability, nullptr);
800         int result = impl.GetRoots(rootInfoVec);
801         EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
802     } catch (...) {
803         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
804     }
805     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_GetRoots_0001";
806 }
807 
808 /**
809  * @tc.number: user_file_service_file_access_ext_stub_impl_Access_0000
810  * @tc.name: file_access_ext_stub_impl_Access_0000
811  * @tc.desc: Test function of Access interface for ERROR because of extension is nullptr.
812  * @tc.size: MEDIUM
813  * @tc.type: FUNC
814  * @tc.level Level 3
815  * @tc.require: issuesI8XN2E
816  */
817 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_Access_0000, testing::ext::TestSize.Level1)
818 {
819     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_Access_0000";
820     try {
821         Uri uri("");
822         bool isExist;
823         FileAccessExtStubImpl impl(nullptr, nullptr);
824         int result = impl.Access(uri, isExist);
825         EXPECT_EQ(result, E_IPCS);
826     } catch (...) {
827         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
828     }
829     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_Access_0000";
830 }
831 
832 /**
833  * @tc.number: user_file_service_file_access_ext_stub_impl_Access_0001
834  * @tc.name: file_access_ext_stub_impl_Access_0001
835  * @tc.desc: Test function of Access interface for SUCCESS.
836  * @tc.size: MEDIUM
837  * @tc.type: FUNC
838  * @tc.level Level 3
839  * @tc.require: issuesI8XN2E
840  */
841 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_Access_0001, testing::ext::TestSize.Level1)
842 {
843     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_Access_0001";
844     try {
845         EXPECT_CALL(*ability, Access(_, _)).WillOnce(Return(OHOS::FileAccessFwk::ERR_OK));
846 
847         Uri uri("");
848         bool isExist;
849         FileAccessExtStubImpl impl(ability, nullptr);
850         int result = impl.Access(uri, isExist);
851         EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
852     } catch (...) {
853         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
854     }
855     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_Access_0001";
856 }
857 
858 /**
859  * @tc.number: user_file_service_file_access_ext_stub_impl_StartWatcher_0000
860  * @tc.name: file_access_ext_stub_impl_StartWatcher_0000
861  * @tc.desc: Test function of StartWatcher interface for ERROR because of extension is nullptr.
862  * @tc.size: MEDIUM
863  * @tc.type: FUNC
864  * @tc.level Level 3
865  * @tc.require: issuesI8XN2E
866  */
867 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_StartWatcher_0000, testing::ext::TestSize.Level1)
868 {
869     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_StartWatcher_0000";
870     try {
871         Uri uri("");
872         FileAccessExtStubImpl impl(nullptr, nullptr);
873         int result = impl.StartWatcher(uri);
874         EXPECT_EQ(result, E_IPCS);
875     } catch (...) {
876         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
877     }
878     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_StartWatcher_0000";
879 }
880 
881 /**
882  * @tc.number: user_file_service_file_access_ext_stub_impl_StartWatcher_0001
883  * @tc.name: file_access_ext_stub_impl_StartWatcher_0001
884  * @tc.desc: Test function of StartWatcher interface for SUCCESS.
885  * @tc.size: MEDIUM
886  * @tc.type: FUNC
887  * @tc.level Level 3
888  * @tc.require: issuesI8XN2E
889  */
890 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_StartWatcher_0001, testing::ext::TestSize.Level1)
891 {
892     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_StartWatcher_0001";
893     try {
894         EXPECT_CALL(*ability, StartWatcher(_)).WillOnce(Return(OHOS::FileAccessFwk::ERR_OK));
895 
896         Uri uri("");
897         FileAccessExtStubImpl impl(ability, nullptr);
898         int result = impl.StartWatcher(uri);
899         EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
900     } catch (...) {
901         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
902     }
903     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_StartWatcher_0001";
904 }
905 
906 /**
907  * @tc.number: user_file_service_file_access_ext_stub_impl_StopWatcher_0000
908  * @tc.name: file_access_ext_stub_impl_StopWatcher_0000
909  * @tc.desc: Test function of StopWatcher interface for ERROR because of extension is nullptr.
910  * @tc.size: MEDIUM
911  * @tc.type: FUNC
912  * @tc.level Level 3
913  * @tc.require: issuesI8XN2E
914  */
915 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_StopWatcher_0000, testing::ext::TestSize.Level1)
916 {
917     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_StopWatcher_0000";
918     try {
919         Uri uri("");
920         FileAccessExtStubImpl impl(nullptr, nullptr);
921         int result = impl.StopWatcher(uri);
922         EXPECT_EQ(result, E_IPCS);
923     } catch (...) {
924         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
925     }
926     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_StopWatcher_0000";
927 }
928 
929 /**
930  * @tc.number: user_file_service_file_access_ext_stub_impl_StopWatcher_0001
931  * @tc.name: file_access_ext_stub_impl_StopWatcher_0001
932  * @tc.desc: Test function of StopWatcher interface for SUCCESS.
933  * @tc.size: MEDIUM
934  * @tc.type: FUNC
935  * @tc.level Level 3
936  * @tc.require: issuesI8XN2E
937  */
938 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_StopWatcher_0001, testing::ext::TestSize.Level1)
939 {
940     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_StopWatcher_0001";
941     try {
942         EXPECT_CALL(*ability, StopWatcher(_)).WillOnce(Return(OHOS::FileAccessFwk::ERR_OK));
943 
944         Uri uri("");
945         FileAccessExtStubImpl impl(ability, nullptr);
946         int result = impl.StopWatcher(uri);
947         EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
948     } catch (...) {
949         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
950     }
951     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_StopWatcher_0001";
952 }
953 
954 /**
955  * @tc.number: user_file_service_file_access_ext_stub_impl_MoveItem_0000
956  * @tc.name: file_access_ext_stub_impl_MoveItem_0000
957  * @tc.desc: Test function of MoveItem interface for ERROR because of extension is nullptr.
958  * @tc.size: MEDIUM
959  * @tc.type: FUNC
960  * @tc.level Level 3
961  * @tc.require: issuesI8XN2E
962  */
963 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_MoveItem_0000, testing::ext::TestSize.Level1)
964 {
965     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_MoveItem_0000";
966     try {
967         Uri sourceFile("");
968         Uri targetParent("");
969         vector<Result> moveResult;
970         FileAccessExtStubImpl impl(nullptr, nullptr);
971         int result = impl.MoveItem(sourceFile, targetParent, moveResult);
972         EXPECT_EQ(result, E_IPCS);
973     } catch (...) {
974         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
975     }
976     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_MoveItem_0000";
977 }
978 
979 /**
980  * @tc.number: user_file_service_file_access_ext_stub_impl_MoveItem_0001
981  * @tc.name: file_access_ext_stub_impl_MoveItem_0001
982  * @tc.desc: Test function of MoveItem interface for SUCCESS.
983  * @tc.size: MEDIUM
984  * @tc.type: FUNC
985  * @tc.level Level 3
986  * @tc.require: issuesI8XN2E
987  */
988 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_MoveItem_0001, testing::ext::TestSize.Level1)
989 {
990     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_MoveItem_0001";
991     try {
992         EXPECT_CALL(*ability, MoveItem(_, _, _, _)).WillOnce(Return(OHOS::FileAccessFwk::ERR_OK));
993 
994         Uri sourceFile("");
995         Uri targetParent("");
996         vector<Result> moveResult;
997         FileAccessExtStubImpl impl(ability, nullptr);
998         int result = impl.MoveItem(sourceFile, targetParent, moveResult);
999         EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1000     } catch (...) {
1001         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
1002     }
1003     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_MoveItem_0001";
1004 }
1005 
1006 /**
1007  * @tc.number: user_file_service_file_access_ext_stub_impl_MoveFile_0000
1008  * @tc.name: file_access_ext_stub_impl_MoveFile_0000
1009  * @tc.desc: Test function of MoveFile interface for ERROR because of extension is nullptr.
1010  * @tc.size: MEDIUM
1011  * @tc.type: FUNC
1012  * @tc.level Level 3
1013  * @tc.require: issuesI8XN2E
1014  */
1015 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_MoveFile_0000, testing::ext::TestSize.Level1)
1016 {
1017     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_MoveFile_0000";
1018     try {
1019         Uri sourceFile("");
1020         Uri targetParent("");
1021         string fileName;
1022         Uri newFile("");
1023         FileAccessExtStubImpl impl(nullptr, nullptr);
1024         int result = impl.MoveFile(sourceFile, targetParent, fileName, newFile);
1025         EXPECT_EQ(result, E_IPCS);
1026     } catch (...) {
1027         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
1028     }
1029     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_MoveFile_0000";
1030 }
1031 
1032 /**
1033  * @tc.number: user_file_service_file_access_ext_stub_impl_MoveFile_0001
1034  * @tc.name: file_access_ext_stub_impl_MoveFile_0001
1035  * @tc.desc: Test function of MoveFile interface for SUCCESS.
1036  * @tc.size: MEDIUM
1037  * @tc.type: FUNC
1038  * @tc.level Level 3
1039  * @tc.require: issuesI8XN2E
1040  */
1041 HWTEST_F(FileAccessExtStubImplTest, file_access_ext_stub_impl_MoveFile_0001, testing::ext::TestSize.Level1)
1042 {
1043     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-begin file_access_ext_stub_impl_MoveFile_0001";
1044     try {
1045         EXPECT_CALL(*ability, MoveFile(_, _, _, _)).WillOnce(Return(OHOS::FileAccessFwk::ERR_OK));
1046 
1047         Uri sourceFile("");
1048         Uri targetParent("");
1049         string fileName;
1050         Uri newFile("");
1051         FileAccessExtStubImpl impl(ability, nullptr);
1052         int result = impl.MoveFile(sourceFile, targetParent, fileName, newFile);
1053         EXPECT_EQ(result, OHOS::FileAccessFwk::ERR_OK);
1054     } catch (...) {
1055         GTEST_LOG_(ERROR) << "FileAccessExtStubImplTest occurs an exception.";
1056     }
1057     GTEST_LOG_(INFO) << "FileAccessExtStubImplTest-end file_access_ext_stub_impl_MoveFile_0001";
1058 }
1059 }