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