• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 "assistant.h"
22 #include "file_access_extension_info.h"
23 #include "file_access_framework_errno.h"
24 #include "file_access_service_proxy.h"
25 #include "file_access_service_mock.h"
26 #include "if_system_ability_manager_mock.h"
27 #include "iservice_registry.h"
28 
OnRemoteRequest(unsigned int,OHOS::MessageParcel &,OHOS::MessageParcel &,OHOS::MessageOption &)29 int32_t OHOS::SystemAbilityLoadCallbackStub::OnRemoteRequest(unsigned int, OHOS::MessageParcel&, OHOS::MessageParcel&,
30     OHOS::MessageOption&)
31 {
32     return 0;
33 }
34 
35 namespace OHOS::FileAccessFwk {
36 using namespace std;
37 using namespace testing;
38 using namespace testing::ext;
39 
FileAccessServiceStub()40 FileAccessServiceStub::FileAccessServiceStub() {}
41 
~FileAccessServiceStub()42 FileAccessServiceStub::~FileAccessServiceStub() {}
43 
OnRemoteRequest(unsigned int,OHOS::MessageParcel &,OHOS::MessageParcel &,OHOS::MessageOption &)44 int32_t FileAccessServiceStub::OnRemoteRequest(unsigned int, OHOS::MessageParcel&, OHOS::MessageParcel&,
45     OHOS::MessageOption&)
46 {
47     return 0;
48 }
49 
50 class IFileAccessObserverMock : public IFileAccessObserver {
51 public:
52     MOCK_METHOD1(OnChange, void(NotifyMessage &notifyMessage));
53     MOCK_METHOD0(AsObject, sptr<IRemoteObject>());
54 };
55 
56 class FileAccessServiceProxyTest : public testing::Test {
57 public:
SetUpTestCase(void)58     static void SetUpTestCase(void)
59     {
60         Assistant::ins_ = insMoc;
61         SystemAbilityManagerClient::GetInstance().systemAbilityManager_ = sptr<ISystemAbilityManager>(samgr);
62     }
TearDownTestCase()63     static void TearDownTestCase()
64     {
65         insMoc = nullptr;
66         samgr = nullptr;
67         impl = nullptr;
68         Assistant::ins_ = nullptr;
69         SystemAbilityManagerClient::GetInstance().systemAbilityManager_ = nullptr;
70     }
SetUp()71     void SetUp() {}
TearDown()72     void TearDown() {}
73 public:
74     static inline shared_ptr<AssistantMock> insMoc = make_shared<AssistantMock>();
75     static inline sptr<FileAccessServiceMock> impl = sptr<FileAccessServiceMock>(new FileAccessServiceMock());
76     static inline ISystemAbilityManagerMock* samgr = new ISystemAbilityManagerMock();
77 };
78 
79 /**
80  * @tc.number: user_file_service_file_access_service_proxy_GetInstance_0000
81  * @tc.name: file_access_service_proxy_GetInstance_0000
82  * @tc.desc: Test function of GetInstance interface for SUCCESS.
83  * @tc.size: MEDIUM
84  * @tc.type: FUNC
85  * @tc.level Level 3
86  * @tc.require: issuesI8Y05B
87  */
88 HWTEST_F(FileAccessServiceProxyTest, file_access_service_proxy_GetInstance_0000, testing::ext::TestSize.Level1)
89 {
90     GTEST_LOG_(INFO) << "FileAccessServiceProxyTest-begin file_access_service_proxy_GetInstance_0000";
91     try {
92         shared_ptr<FileAccessServiceProxy> proxy = make_shared<FileAccessServiceProxy>(impl);
93         proxy->serviceProxy_ = iface_cast<FileAccessServiceProxy>(impl);
94 
95         auto result = proxy->GetInstance();
96         EXPECT_TRUE(static_cast<IFileAccessServiceBase*>(result.GetRefPtr()) == impl.GetRefPtr());
97     } catch (...) {
98         GTEST_LOG_(ERROR) << "FileAccessServiceProxyTest occurs an exception.";
99     }
100     GTEST_LOG_(INFO) << "FileAccessServiceProxyTest-end file_access_service_proxy_GetInstance_0000";
101 }
102 
103 /**
104  * @tc.number: user_file_service_file_access_service_proxy_GetInstance_0001
105  * @tc.name: file_access_service_proxy_GetInstance_0001
106  * @tc.desc: Test function of GetInstance interface for ERROR because samgr is nullptr.
107  * @tc.size: MEDIUM
108  * @tc.type: FUNC
109  * @tc.level Level 3
110  * @tc.require: issuesI8Y05B
111  */
112 HWTEST_F(FileAccessServiceProxyTest, file_access_service_proxy_GetInstance_0001, testing::ext::TestSize.Level1)
113 {
114     GTEST_LOG_(INFO) << "FileAccessServiceProxyTest-begin file_access_service_proxy_GetInstance_0001";
115     try {
116         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(false));
117 
118         shared_ptr<FileAccessServiceProxy> proxy = make_shared<FileAccessServiceProxy>(nullptr);
119         proxy->serviceProxy_ = nullptr;
120         auto result = proxy->GetInstance();
121         EXPECT_TRUE(result == nullptr);
122     } catch (...) {
123         GTEST_LOG_(ERROR) << "FileAccessServiceProxyTest occurs an exception.";
124     }
125     GTEST_LOG_(INFO) << "FileAccessServiceProxyTest-end file_access_service_proxy_GetInstance_0001";
126 }
127 
128 /**
129  * @tc.number: user_file_service_file_access_service_proxy_GetInstance_0002
130  * @tc.name: file_access_service_proxy_GetInstance_0002
131  * @tc.desc: Test function of GetInstance interface for ERROR because samgr->LoadSystemAbility doesn't return ERR_OK.
132  * @tc.size: MEDIUM
133  * @tc.type: FUNC
134  * @tc.level Level 3
135  * @tc.require: issuesI8Y05B
136  */
137 HWTEST_F(FileAccessServiceProxyTest, file_access_service_proxy_GetInstance_0002, testing::ext::TestSize.Level1)
138 {
139     GTEST_LOG_(INFO) << "FileAccessServiceProxyTest-begin file_access_service_proxy_GetInstance_0002";
140     try {
141         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(true));
142         EXPECT_CALL(*samgr, LoadSystemAbility(An<int32_t>(), An<const sptr<ISystemAbilityLoadCallback>&>()))
143             .WillOnce(Return(E_PERMISSION));
144 
145         shared_ptr<FileAccessServiceProxy> proxy = make_shared<FileAccessServiceProxy>(nullptr);
146         proxy->serviceProxy_ = nullptr;
147         auto result = proxy->GetInstance();
148         EXPECT_TRUE(result == nullptr);
149     } catch (...) {
150         GTEST_LOG_(ERROR) << "FileAccessServiceProxyTest occurs an exception.";
151     }
152     GTEST_LOG_(INFO) << "FileAccessServiceProxyTest-end file_access_service_proxy_GetInstance_0002";
153 }
154 
155 /**
156  * @tc.number: user_file_service_file_access_service_proxy_GetInstance_0003
157  * @tc.name: file_access_service_proxy_GetInstance_0003
158  * @tc.desc: Test function of GetInstance interface for ERROR because wait_for timeout.
159  * @tc.size: MEDIUM
160  * @tc.type: FUNC
161  * @tc.level Level 3
162  * @tc.require: issuesI8Y05B
163  */
164 HWTEST_F(FileAccessServiceProxyTest, file_access_service_proxy_GetInstance_0003, testing::ext::TestSize.Level1)
165 {
166     GTEST_LOG_(INFO) << "FileAccessServiceProxyTest-begin file_access_service_proxy_GetInstance_0003";
167     try {
168         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(true));
169         EXPECT_CALL(*samgr, LoadSystemAbility(An<int32_t>(), An<const sptr<ISystemAbilityLoadCallback>&>()))
170             .WillOnce(Return(ERR_OK));
171 
172         shared_ptr<FileAccessServiceProxy> proxy = make_shared<FileAccessServiceProxy>(nullptr);
173         proxy->serviceProxy_ = nullptr;
174         auto result = proxy->GetInstance();
175         EXPECT_TRUE(result == nullptr);
176     } catch (...) {
177         GTEST_LOG_(ERROR) << "FileAccessServiceProxyTest occurs an exception.";
178     }
179     GTEST_LOG_(INFO) << "FileAccessServiceProxyTest-end file_access_service_proxy_GetInstance_0003";
180 }
181 
182 /**
183  * @tc.number: user_file_service_file_access_service_proxy_OnChange_0000
184  * @tc.name: file_access_service_proxy_OnChange_0000
185  * @tc.desc: Test function of OnChange interface for ERROR.
186  * @tc.size: MEDIUM
187  * @tc.type: FUNC
188  * @tc.level Level 3
189  * @tc.require: issuesI8Y05B
190  */
191 HWTEST_F(FileAccessServiceProxyTest, file_access_service_proxy_OnChange_0000, testing::ext::TestSize.Level1)
192 {
193     GTEST_LOG_(INFO) << "FileAccessServiceProxyTest-begin file_access_service_proxy_OnChange_0000";
194     try {
195         shared_ptr<FileAccessServiceProxy> proxy = make_shared<FileAccessServiceProxy>(impl);
196 
197         Uri uri("");
198         NotifyType notifyType = NotifyType::NOTIFY_ADD;
199         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(false));
200         auto result = proxy->OnChange(uri, notifyType);
201         EXPECT_EQ(result, E_IPCS);
202         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(true)).WillOnce(Return(false));
203         result = proxy->OnChange(uri, notifyType);
204         EXPECT_EQ(result, E_IPCS);
205         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(true)).WillOnce(Return(true)).WillOnce(Return(false));
206         result = proxy->OnChange(uri, notifyType);
207         EXPECT_EQ(result, E_IPCS);
208         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(true)).WillOnce(Return(true)).WillOnce(Return(true));
209         EXPECT_CALL(*impl, SendRequest(_, _, _, _)).WillOnce(Return(E_URIS));
210         result = proxy->OnChange(uri, notifyType);
211         EXPECT_EQ(result, E_URIS);
212         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(true)).WillOnce(Return(true)).WillOnce(Return(true))
213             .WillOnce(Return(false));
214         EXPECT_CALL(*insMoc, Int()).WillOnce(Return(ERR_OK));
215         EXPECT_CALL(*impl, SendRequest(_, _, _, _)).WillOnce(Return(ERR_OK));
216         result = proxy->OnChange(uri, notifyType);
217         EXPECT_EQ(result, ERR_OK);
218         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(true)).WillOnce(Return(true)).WillOnce(Return(true))
219             .WillOnce(Return(true));
220         EXPECT_CALL(*insMoc, Int()).WillOnce(Return(E_IPCS));
221         EXPECT_CALL(*impl, SendRequest(_, _, _, _)).WillOnce(Return(ERR_OK));
222         result = proxy->OnChange(uri, notifyType);
223         EXPECT_EQ(result, E_IPCS);
224     } catch (...) {
225         GTEST_LOG_(ERROR) << "FileAccessServiceProxyTest occurs an exception.";
226     }
227     GTEST_LOG_(INFO) << "FileAccessServiceProxyTest-end file_access_service_proxy_OnChange_0000";
228 }
229 
230 /**
231  * @tc.number: user_file_service_file_access_service_proxy_RegisterNotify_0000
232  * @tc.name: file_access_service_proxy_RegisterNotify_0000
233  * @tc.desc: Test function of RegisterNotify interface for ERROR.
234  * @tc.size: MEDIUM
235  * @tc.type: FUNC
236  * @tc.level Level 3
237  * @tc.require: issuesI8Y05B
238  */
239 HWTEST_F(FileAccessServiceProxyTest, file_access_service_proxy_RegisterNotify_0000, testing::ext::TestSize.Level1)
240 {
241     GTEST_LOG_(INFO) << "FileAccessServiceProxyTest-begin file_access_service_proxy_RegisterNotify_0000";
242     try {
243         shared_ptr<FileAccessServiceProxy> proxy = make_shared<FileAccessServiceProxy>(impl);
244 
245         Uri uri("");
246         bool notifyForDescendants = false;
247         shared_ptr<ConnectExtensionInfo> info = nullptr;
248         sptr<IFileAccessObserverMock> observer = sptr<IFileAccessObserverMock>(new IFileAccessObserverMock());
249         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(false));
250         auto result = proxy->RegisterNotify(uri, notifyForDescendants, observer, info);
251         EXPECT_EQ(result, E_IPCS);
252         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(true)).WillOnce(Return(false));
253         result = proxy->RegisterNotify(uri, notifyForDescendants, observer, info);
254         EXPECT_EQ(result, E_IPCS);
255         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(true)).WillOnce(Return(true)).WillOnce(Return(false));
256         EXPECT_CALL(*observer, AsObject()).WillOnce(Return(nullptr));
257         result = proxy->RegisterNotify(uri, notifyForDescendants, observer, info);
258         EXPECT_EQ(result, E_IPCS);
259         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(true)).WillOnce(Return(true)).WillOnce(Return(true))
260             .WillOnce(Return(false));
261         EXPECT_CALL(*observer, AsObject()).WillOnce(Return(nullptr));
262         result = proxy->RegisterNotify(uri, notifyForDescendants, observer, info);
263         EXPECT_EQ(result, E_IPCS);
264         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(true)).WillOnce(Return(true)).WillOnce(Return(true))
265             .WillOnce(Return(true)).WillOnce(Return(true)).WillOnce(Return(true));
266         EXPECT_CALL(*observer, AsObject()).WillOnce(Return(nullptr));
267         EXPECT_CALL(*impl, SendRequest(_, _, _, _)).WillOnce(Return(E_URIS));
268         shared_ptr<ConnectExtensionInfo> info2 = make_shared<ConnectExtensionInfo>();
269         result = proxy->RegisterNotify(uri, notifyForDescendants, observer, info2);
270         EXPECT_EQ(result, E_URIS);
271         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(true)).WillOnce(Return(true)).WillOnce(Return(true))
272             .WillOnce(Return(true)).WillOnce(Return(true)).WillOnce(Return(true)).WillOnce(Return(true));
273         EXPECT_CALL(*insMoc, Int()).WillOnce(Return(ERR_OK));
274         EXPECT_CALL(*observer, AsObject()).WillOnce(Return(nullptr));
275         EXPECT_CALL(*impl, SendRequest(_, _, _, _)).WillOnce(Return(ERR_OK));
276         result = proxy->RegisterNotify(uri, notifyForDescendants, observer, info2);
277         EXPECT_EQ(result, ERR_OK);
278         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(true)).WillOnce(Return(true)).WillOnce(Return(true))
279             .WillOnce(Return(true)).WillOnce(Return(true)).WillOnce(Return(true)).WillOnce(Return(true));
280         EXPECT_CALL(*insMoc, Int()).WillOnce(Return(E_IPCS));
281         EXPECT_CALL(*observer, AsObject()).WillOnce(Return(nullptr));
282         EXPECT_CALL(*impl, SendRequest(_, _, _, _)).WillOnce(Return(ERR_OK));
283         result = proxy->RegisterNotify(uri, notifyForDescendants, observer, info2);
284         EXPECT_EQ(result, E_IPCS);
285     } catch (...) {
286         GTEST_LOG_(ERROR) << "FileAccessServiceProxyTest occurs an exception.";
287     }
288     GTEST_LOG_(INFO) << "FileAccessServiceProxyTest-end file_access_service_proxy_RegisterNotify_0000";
289 }
290 
291 /**
292  * @tc.number: user_file_service_file_access_service_proxy_UnregisterNotifyInternal_0000
293  * @tc.name: file_access_service_proxy_UnregisterNotifyInternal_0000
294  * @tc.desc: Test function of UnregisterNotifyInternal interface for ERROR.
295  * @tc.size: MEDIUM
296  * @tc.type: FUNC
297  * @tc.level Level 3
298  * @tc.require: issuesI8Y05B
299  */
300 HWTEST_F(FileAccessServiceProxyTest, file_access_service_proxy_UnregisterNotifyInternal_0000,
301     testing::ext::TestSize.Level1)
302 {
303     GTEST_LOG_(INFO) << "FileAccessServiceProxyTest-begin file_access_service_proxy_UnregisterNotifyInternal_0000";
304     try {
305         shared_ptr<FileAccessServiceProxy> proxy = make_shared<FileAccessServiceProxy>(impl);
306         MessageParcel data;
307 
308         EXPECT_CALL(*impl, SendRequest(_, _, _, _)).WillOnce(Return(E_URIS));
309         auto result = proxy->UnregisterNotifyInternal(data);
310         EXPECT_EQ(result, E_URIS);
311         EXPECT_CALL(*impl, SendRequest(_, _, _, _)).WillOnce(Return(ERR_OK));
312         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(false));
313         EXPECT_CALL(*insMoc, Int()).WillOnce(Return(ERR_OK));
314         result = proxy->UnregisterNotifyInternal(data);
315         EXPECT_EQ(result, ERR_OK);
316         EXPECT_CALL(*impl, SendRequest(_, _, _, _)).WillOnce(Return(ERR_OK));
317         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(true));
318         EXPECT_CALL(*insMoc, Int()).WillOnce(Return(E_IPCS));
319         result = proxy->UnregisterNotifyInternal(data);
320         EXPECT_EQ(result, E_IPCS);
321     } catch (...) {
322         GTEST_LOG_(ERROR) << "FileAccessServiceProxyTest occurs an exception.";
323     }
324     GTEST_LOG_(INFO) << "FileAccessServiceProxyTest-end file_access_service_proxy_UnregisterNotifyInternal_0000";
325 }
326 
327 /**
328  * @tc.number: user_file_service_file_access_service_proxy_UnregisterNotify_0000
329  * @tc.name: file_access_service_proxy_UnregisterNotify_0000
330  * @tc.desc: Test function of UnregisterNotify interface for ERROR.
331  * @tc.size: MEDIUM
332  * @tc.type: FUNC
333  * @tc.level Level 3
334  * @tc.require: issuesI8Y05B
335  */
336 HWTEST_F(FileAccessServiceProxyTest, file_access_service_proxy_UnregisterNotify_0000,
337     testing::ext::TestSize.Level1)
338 {
339     GTEST_LOG_(INFO) << "FileAccessServiceProxyTest-begin file_access_service_proxy_UnregisterNotify_0000";
340     try {
341         shared_ptr<FileAccessServiceProxy> proxy = make_shared<FileAccessServiceProxy>(impl);
342         Uri uri("");
343         sptr<IFileAccessObserverMock> observer = nullptr;
344         shared_ptr<ConnectExtensionInfo> info = nullptr;
345         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(false));
346         auto result = proxy->UnregisterNotify(uri, observer, info);
347         EXPECT_EQ(result, E_IPCS);
348         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(true)).WillOnce(Return(false));
349         result = proxy->UnregisterNotify(uri, observer, info);
350         EXPECT_EQ(result, E_IPCS);
351         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(true)).WillOnce(Return(true)).WillOnce(Return(false));
352         result = proxy->UnregisterNotify(uri, observer, info);
353         EXPECT_EQ(result, E_IPCS);
354         observer = sptr<IFileAccessObserverMock>(new IFileAccessObserverMock());
355         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(true)).WillOnce(Return(true)).WillOnce(Return(false));
356         result = proxy->UnregisterNotify(uri, observer, info);
357         EXPECT_EQ(result, E_IPCS);
358         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(true)).WillOnce(Return(true)).WillOnce(Return(true))
359             .WillOnce(Return(false));
360         EXPECT_CALL(*observer, AsObject()).WillOnce(Return(nullptr));
361         result = proxy->UnregisterNotify(uri, observer, info);
362         EXPECT_EQ(result, E_IPCS);
363         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(true)).WillOnce(Return(true)).WillOnce(Return(true))
364             .WillOnce(Return(false));
365         EXPECT_CALL(*observer, AsObject()).WillOnce(Return(nullptr));
366         result = proxy->UnregisterNotify(uri, observer, info);
367         EXPECT_EQ(result, E_IPCS);
368     } catch (...) {
369         GTEST_LOG_(ERROR) << "FileAccessServiceProxyTest occurs an exception.";
370     }
371     GTEST_LOG_(INFO) << "FileAccessServiceProxyTest-end file_access_service_proxy_UnregisterNotify_0000";
372 }
373 
374 /**
375  * @tc.number: user_file_service_file_access_service_proxy_GetExensionProxy_0000
376  * @tc.name: file_access_service_proxy_GetExensionProxy_0000
377  * @tc.desc: Test function of GetExensionProxy interface for ERROR.
378  * @tc.size: MEDIUM
379  * @tc.type: FUNC
380  * @tc.level Level 3
381  * @tc.require: issuesI8Y05B
382  */
383 HWTEST_F(FileAccessServiceProxyTest, file_access_service_proxy_GetExensionProxy_0000, testing::ext::TestSize.Level1)
384 {
385     GTEST_LOG_(INFO) << "FileAccessServiceProxyTest-begin file_access_service_proxy_GetExensionProxy_0000";
386     try {
387         shared_ptr<FileAccessServiceProxy> proxy = make_shared<FileAccessServiceProxy>(impl);
388 
389         shared_ptr<ConnectExtensionInfo> info = nullptr;
390         sptr<IFileAccessExtBase> extensionProxy = nullptr;
391         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(false));
392         auto result = proxy->GetExensionProxy(info, extensionProxy);
393         EXPECT_EQ(result, E_IPCS);
394         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(true));
395         result = proxy->GetExensionProxy(info, extensionProxy);
396         EXPECT_EQ(result, E_GETINFO);
397         info = make_shared<ConnectExtensionInfo>();
398         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(true)).WillOnce(Return(false));
399         result = proxy->GetExensionProxy(info, extensionProxy);
400         EXPECT_EQ(result, E_IPCS);
401         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(true)).WillOnce(Return(true)).WillOnce(Return(true));
402         EXPECT_CALL(*impl, SendRequest(_, _, _, _)).WillOnce(Return(E_URIS));
403         result = proxy->GetExensionProxy(info, extensionProxy);
404         EXPECT_EQ(result, E_URIS);
405         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(true)).WillOnce(Return(true)).WillOnce(Return(true))
406             .WillOnce(Return(false));
407         EXPECT_CALL(*insMoc, Int()).WillOnce(Return(ERR_OK));
408         EXPECT_CALL(*impl, SendRequest(_, _, _, _)).WillOnce(Return(ERR_OK));
409         result = proxy->GetExensionProxy(info, extensionProxy);
410         EXPECT_EQ(result, ERR_OK);
411         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(true)).WillOnce(Return(true)).WillOnce(Return(true))
412             .WillOnce(Return(true));
413         EXPECT_CALL(*insMoc, Int()).WillOnce(Return(E_IPCS));
414         EXPECT_CALL(*impl, SendRequest(_, _, _, _)).WillOnce(Return(ERR_OK));
415         result = proxy->GetExensionProxy(info, extensionProxy);
416         EXPECT_EQ(result, E_IPCS);
417         EXPECT_CALL(*insMoc, Bool()).WillOnce(Return(true)).WillOnce(Return(true)).WillOnce(Return(true))
418             .WillOnce(Return(true));
419         EXPECT_CALL(*insMoc, Int()).WillOnce(Return(ERR_OK));
420         EXPECT_CALL(*impl, SendRequest(_, _, _, _)).WillOnce(Return(ERR_OK));
421         result = proxy->GetExensionProxy(info, extensionProxy);
422         EXPECT_EQ(result, E_IPCS);
423     } catch (...) {
424         GTEST_LOG_(ERROR) << "FileAccessServiceProxyTest occurs an exception.";
425     }
426     GTEST_LOG_(INFO) << "FileAccessServiceProxyTest-end file_access_service_proxy_GetExensionProxy_0000";
427 }
428 }