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 ¬ifyMessage));
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 }