1 /*
2 * Copyright (c) 2021 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
17 #include "UTTest_ipc_client_manager.h"
18 #include "device_manager_notify.h"
19 #include "dm_device_info.h"
20 #include "ipc_client_stub.h"
21 #include "ipc_register_listener_req.h"
22 #include "ipc_remote_broker.h"
23 #include "iremote_object.h"
24 #include "iservice_registry.h"
25 #include "dm_constants.h"
26 #include "system_ability_definition.h"
27
28 #include <unistd.h>
29
30 namespace OHOS {
31 namespace DistributedHardware {
SetUp()32 void IpcClientManagerTest::SetUp()
33 {
34 }
35
TearDown()36 void IpcClientManagerTest::TearDown()
37 {
38 }
39
SetUpTestCase()40 void IpcClientManagerTest::SetUpTestCase()
41 {
42 }
43
TearDownTestCase()44 void IpcClientManagerTest::TearDownTestCase()
45 {
46 }
47
48 namespace {
49 /**
50 * @tc.name: ClientInit_001
51 * @tc.desc: 1. new a dmInterface
52 * 2. set IpcClientManager dmInterface_ not null
53 * 3. call ClientInit
54 * 4. check ret is not DM_INIT_FAILED
55 * @tc.type: FUNC
56 * @tc.require: AR000GHSJK
57 */
58 HWTEST_F(IpcClientManagerTest, ClientInit_001, testing::ext::TestSize.Level0)
59 {
60 // 1. new a dmInterface
61 auto samgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
62 auto object = samgr->CheckSystemAbility(DISTRIBUTED_HARDWARE_DEVICEMANAGER_SA_ID);
63 sptr<IpcRemoteBroker> dmInterface = iface_cast<IpcRemoteBroker>(object);
64 // 2. set IpcClientManager dmInterface_ not null
65 std::shared_ptr<IpcClientManager> instance = std::make_shared<IpcClientManager>();
66 instance->dmInterface_ = dmInterface;
67 // 3. call ClientInit
68 int ret = instance->ClientInit();
69 // 4. check ret is not DM_INIT_FAILED
70 ASSERT_NE(ret, DM_INIT_FAILED);
71 }
72
73 /**
74 * @tc.name: ClientInit_002
75 * @tc.desc: 1. new a dmInterface
76 * 2. set IpcClientManager dmInterface_ not null
77 * 3. call ClientInit
78 * 4. check ret is not DM_INIT_FAILED
79 * @tc.type: FUNC
80 * @tc.require: AR000GHSJK
81 */
82 HWTEST_F(IpcClientManagerTest, ClientInit_002, testing::ext::TestSize.Level0)
83 {
84 std::shared_ptr<IpcClientManager> instance = std::make_shared<IpcClientManager>();
85 // 3. call ClientInit
86 int ret = instance->ClientInit();
87 // 4. check ret is not DM_INIT_FAILED
88 ASSERT_NE(ret, DM_INIT_FAILED);
89 }
90
91 /**
92 * @tc.name: Init_001
93 * @tc.desc: 1. new a listener
94 * 2. set a pkgName not null
95 * 3. add listener and pkgName in dmListener_ Map
96 * 4. call Init with pkgName
97 * 5. check ret is not DM_INIT_FAILED
98 * @tc.type: FUNC
99 * @tc.require: AR000GHSJK
100 */
101 HWTEST_F(IpcClientManagerTest, Init_001, testing::ext::TestSize.Level0)
102 {
103 // 1. new a listener
104 sptr<IpcClientStub> listener = sptr<IpcClientStub>(new IpcClientStub());
105 // 2. set a pkgName not null
106 std::string pkgName = "com.ohos.test";
107 std::shared_ptr<IpcClientManager> instance = std::make_shared<IpcClientManager>();
108 // 3. add listener and pkgName in dmListener_ Map
109 instance->dmListener_[pkgName] = listener;
110 // 4. call Init with pkgName
111 int32_t ret = instance->Init(pkgName);
112 // 5. check ret is not DM_INIT_FAILED
113 ASSERT_NE(ret, DM_INIT_FAILED);
114 }
115
116 /**
117 * @tc.name: Init_002
118 * @tc.desc: 1. set pkcName not null
119 * 2. Mock IpcClientServerProxy SendCmd return DM_FAILED
120 * 3. call Init with pkgName
121 * 4. check ret is DM_FAILED
122 * @tc.type: FUNC
123 * @tc.require: AR000GHSJK
124 */
125 HWTEST_F(IpcClientManagerTest, Init_002, testing::ext::TestSize.Level0)
126 {
127 // 1. set pkcName not null
128 std::string pkgName = "com.ohos.test";
129 // 2. Mock IpcClientServerProxy SendCmd return DM_FAILED
130 sptr<IRemoteObject> remoteObject = nullptr;
131 auto mockInstance = new MockIpcClientManager(remoteObject);
132 std::shared_ptr<IpcClientManager> instance = std::make_shared<IpcClientManager>();
133 instance->dmInterface_ = mockInstance;
134 EXPECT_CALL(*mockInstance, SendCmd(testing::_, testing::_, testing::_))
135 .Times(1).WillOnce(testing::Return(DM_FAILED));
136 // 3. call Init with pkgName
137 int32_t ret = instance->Init(pkgName);
138 // 4. check ret is DM_FAILED
139 ASSERT_EQ(ret, DM_FAILED);
140 }
141
142 /**
143 * @tc.name: Init_003
144 * @tc.desc: 1. set pkcName not null
145 * 2. Mock IpcClientServerProxy SendCmd return DM_OK
146 * 3. call Init with pkgName
147 * 4. check ret is DM_OK
148 * @tc.type: FUNC
149 * @tc.require: AR000GHSJK
150 */
151 HWTEST_F(IpcClientManagerTest, Init_003, testing::ext::TestSize.Level0)
152 {
153 // 1. set pkcName not null
154 std::string pkgName = "com.ohos.test";
155 // 2. Mock IpcClientServerProxy SendCmd return DM_OK
156 sptr<IRemoteObject> remoteObject = nullptr;
157 auto mockInstance = new MockIpcClientManager(remoteObject);
158 std::shared_ptr<IpcClientManager> instance = std::make_shared<IpcClientManager>();
159 instance->dmInterface_ = mockInstance;
160 EXPECT_CALL(*mockInstance, SendCmd(testing::_, testing::_, testing::_))
161 .Times(1).WillOnce(testing::Return(DM_OK));
162 // 3. call Init with pkgName
163 int32_t ret = instance->Init(pkgName);
164 // 4. check ret is DM_OK
165 ASSERT_EQ(ret, DM_OK);
166 }
167
168 /**
169 * @tc.name: Init_004
170 * @tc.desc: 1. set pkcName not null
171 * 2. Mock IpcClientServerProxy SendCmd return DM_OK
172 * 3. call Init with pkgName
173 * 4. check ret is DM_OK
174 * @tc.type: FUNC
175 * @tc.require: AR000GHSJK
176 */
177 HWTEST_F(IpcClientManagerTest, Init_004, testing::ext::TestSize.Level0)
178 {
179 // 1. set pkcName not null
180 std::string pkgName = "com.ohos.test";
181 // 2. Mock IpcClientServerProxy SendCmd return DEVICEMANAGER_SERVICE_NOT_READY
182 sptr<IRemoteObject> remoteObject = nullptr;
183 auto mockInstance = new MockIpcClientManager(remoteObject);
184 std::shared_ptr<IpcClientManager> instance = std::make_shared<IpcClientManager>();
185 instance->dmInterface_ = mockInstance;
186 EXPECT_CALL(*mockInstance, SendCmd(testing::_, testing::_, testing::_))
187 .Times(1).WillOnce(testing::Return(DM_SERVICE_NOT_READY));
188 // 3. call Init with pkgName
189 int32_t ret = instance->Init(pkgName);
190 // 4. check ret is DEVICEMANAGER_OK
191 ASSERT_EQ(ret, ret);
192 }
193
194 /**
195 * @tc.name: Init_005
196 * @tc.desc: 1. set pkcName not null
197 * 2. Mock IpcClientServerProxy SendCmd return DM_IPC_FAILED
198 * 3. call Init with pkgName
199 * 4. check ret is DM_IPC_FAILED
200 * @tc.type: FUNC
201 * @tc.require: AR000GHSJK
202 */
203 HWTEST_F(IpcClientManagerTest, Init_005, testing::ext::TestSize.Level0)
204 {
205 // 1. set pkcName not null
206 std::string pkgName = "com.ohos.test";
207 // 2. Mock IpcClientServerProxy SendCmd return DM_OK
208 sptr<IRemoteObject> remoteObject = nullptr;
209 auto mockInstance = new MockIpcClientManager(remoteObject);
210 std::shared_ptr<IpcClientManager> instance = std::make_shared<IpcClientManager>();
211 instance->dmInterface_ = mockInstance;
212 EXPECT_CALL(*mockInstance, SendCmd(testing::_, testing::_, testing::_))
213 .Times(1).WillOnce(testing::Return(DM_IPC_FAILED));
214 // 3. call Init with pkgName
215 int32_t ret = instance->Init(pkgName);
216 // 4. check ret is DM_IPC_FAILED
217 ASSERT_EQ(ret, DM_IPC_FAILED);
218 }
219
220 /**
221 * @tc.name: UnInit_001
222 * @tc.desc: 1. set pkgName null
223 * set IpcClientManager dmInterface_ null
224 * 2. call UnInit with pkgName
225 * 3. check ret is ERR_DM_INPUT_PARA_INVALID
226 * @tc.type: FUNC
227 * @tc.require: AR000GHSJK
228 */
229 HWTEST_F(IpcClientManagerTest, UnInit1, testing::ext::TestSize.Level0)
230 {
231 // 1. set pkgName null
232 std::string pkgName;
233 // set IpcClientManager dmInterface_ null
234 std::shared_ptr<IpcClientManager> instance = std::make_shared<IpcClientManager>();
235 instance->dmInterface_ = nullptr;
236 // 2. call UnInit with pkgName
237 int32_t ret = instance->UnInit(pkgName);
238 // 3. check ret is ERR_DM_INPUT_PARA_INVALID
239 ASSERT_EQ(ret, ERR_DM_INPUT_PARA_INVALID);
240 }
241
242 /**
243 * @tc.name: UnInit_002
244 * @tc.desc: 1. set pkgName not null
245 * 2. Mock IpcClientServerProxy SendCmd return DM_FAILED
246 * 3. set IpcClientManager dmInterface_ not null
247 * 4. set IpcClientManager dmListener_ not null
248 * 5. call UnInit with pkgName
249 * 6. check ret is DM_FAILED
250 * @tc.type: FUNC
251 * @tc.require: AR000GHSJK
252 */
253 HWTEST_F(IpcClientManagerTest, UnInit_002, testing::ext::TestSize.Level0)
254 {
255 // 1. set pkgName not null
256 std::string pkgName = "com.ohos.test";
257 // 2. Mock IpcClientServerProxy SendCmd return DM_FAILED
258 sptr<IRemoteObject> remoteObject = nullptr;
259 auto mockInstance = new MockIpcClientManager(remoteObject);
260 EXPECT_CALL(*mockInstance, SendCmd(testing::_, testing::_, testing::_))
261 .Times(1).WillOnce(testing::Return(DM_FAILED));
262 // 3. set IpcClientManager dmInterface_ not null
263 std::shared_ptr<IpcClientManager> instance = std::make_shared<IpcClientManager>();
264 instance->dmInterface_ = mockInstance;
265 // 4. set IpcClientManager dmListener_ not null
266 sptr<IpcClientStub> listener = sptr<IpcClientStub>(new IpcClientStub());
267 instance->dmListener_[pkgName] = listener;
268 // 5. call UnInit with pkgName
269 int32_t ret = instance->UnInit(pkgName);
270 // 6. check ret is DM_FAILED
271 ASSERT_EQ(ret, DM_FAILED);
272 }
273
274 /**
275 * @tc.name: UnInit_003
276 * @tc.desc: 1. set pkgName not null
277 * 2. Mock IpcClientServerProxy SendCmd return DM_OK
278 * 3. set IpcClientManager dmInterface_ not null
279 * 4. set IpcClientManager dmListener_ not null
280 * 5. call UnInit with pkgName
281 * 6. check ret is DM_OK
282 * @tc.type: FUNC
283 * @tc.require: AR000GHSJK
284 */
285 HWTEST_F(IpcClientManagerTest, UnInit_003, testing::ext::TestSize.Level0)
286 {
287 // 1. set pkgName not null
288 std::string pkgName = "com.ohos.test";
289 // 2. Mock IpcClientServerProxy SendCmd return DM_OK
290 sptr<IRemoteObject> remoteObject = nullptr;
291 auto mockInstance = new MockIpcClientManager(remoteObject);
292 EXPECT_CALL(*mockInstance, SendCmd(testing::_, testing::_, testing::_))
293 .Times(1).WillOnce(testing::Return(DM_OK));
294 // 3. set IpcClientManager dmInterface_ not null
295 std::shared_ptr<IpcClientManager> instance = std::make_shared<IpcClientManager>();
296 instance->dmInterface_ = mockInstance;
297 // 4. set IpcClientManager dmListener_ not null
298 sptr<IpcClientStub> listener = sptr<IpcClientStub>(new IpcClientStub());
299 instance->dmListener_[pkgName] = listener;
300 // 5. call UnInit with pkgName
301 int32_t ret = instance->UnInit(pkgName);
302 // 6. check ret is DM_OK
303 ASSERT_EQ(ret, DM_OK);
304 }
305
306 /**
307 * @tc.name: UnInit_004
308 * @tc.desc: 1. set pkgName not null
309 * 2. Mock IpcClientServerProxy SendCmd return DM_SERVICE_NOT_READY
310 * 3. set IpcClientManager dmInterface_ not null
311 * 4. set IpcClientManager dmListener_ not null
312 * 5. call UnInit with pkgName
313 * 6. check ret is DM_SERVICE_NOT_READY
314 * @tc.type: FUNC
315 * @tc.require: AR000GHSJK
316 */
317 HWTEST_F(IpcClientManagerTest, UnInit_004, testing::ext::TestSize.Level0)
318 {
319 // 1. set pkgName not null
320 std::string pkgName = "com.ohos.test";
321 // 2. Mock IpcClientServerProxy SendCmd return DM_SERVICE_NOT_READY
322 sptr<IRemoteObject> remoteObject = nullptr;
323 auto mockInstance = new MockIpcClientManager(remoteObject);
324 EXPECT_CALL(*mockInstance, SendCmd(testing::_, testing::_, testing::_))
325 .Times(1).WillOnce(testing::Return(DM_SERVICE_NOT_READY));
326 // 3. set IpcClientManager dmInterface_ not null
327 std::shared_ptr<IpcClientManager> instance = std::make_shared<IpcClientManager>();
328 instance->dmInterface_ = mockInstance;
329 // 4. set IpcClientManager dmListener_ not null
330 sptr<IpcClientStub> listener = sptr<IpcClientStub>(new IpcClientStub());
331 instance->dmListener_[pkgName] = listener;
332 // 5. call UnInit with pkgName
333 int32_t ret = instance->UnInit(pkgName);
334 // 6. check ret is DM_SERVICE_NOT_READY
335 ASSERT_EQ(ret, DM_SERVICE_NOT_READY);
336 }
337
338 /**
339 * @tc.name: UnInit_005
340 * @tc.desc: 1. set pkgName not null
341 * 2. Mock IpcClientServerProxy SendCmd return DM_IPC_FAILED
342 * 3. set IpcClientManager dmInterface_ not null
343 * 4. set IpcClientManager dmListener_ not null
344 * 5. call UnInit with pkgName
345 * 6. check ret is DM_IPC_FAILED
346 * @tc.type: FUNC
347 * @tc.require: AR000GHSJK
348 */
349 HWTEST_F(IpcClientManagerTest, UnInit_005, testing::ext::TestSize.Level0)
350 {
351 // 1. set pkgName not null
352 std::string pkgName = "com.ohos.test";
353 // 2. Mock IpcClientServerProxy SendCmd return DM_IPC_FAILED
354 sptr<IRemoteObject> remoteObject = nullptr;
355 auto mockInstance = new MockIpcClientManager(remoteObject);
356 EXPECT_CALL(*mockInstance, SendCmd(testing::_, testing::_, testing::_))
357 .Times(1).WillOnce(testing::Return(DM_IPC_FAILED));
358 // 3. set IpcClientManager dmInterface_ not null
359 std::shared_ptr<IpcClientManager> instance = std::make_shared<IpcClientManager>();
360 instance->dmInterface_ = mockInstance;
361 // 4. set IpcClientManager dmListener_ not null
362 sptr<IpcClientStub> listener = sptr<IpcClientStub>(new IpcClientStub());
363 instance->dmListener_[pkgName] = listener;
364 // 5. call UnInit with pkgName
365 int32_t ret = instance->UnInit(pkgName);
366 // 6. check ret is DM_IPC_FAILED
367 ASSERT_EQ(ret, DM_IPC_FAILED);
368 }
369
370 /**
371 * @tc.name: SendRequest_001
372 * @tc.desc: 1. set pkgName null
373 * 2. set IpcClientManager dmInterface_null
374 * 3. call SendRequest with parameter
375 * 4. check ret is DM_SERVICE_NOT_READY
376 * @tc.type: FUNC
377 * @tc.require: AR000GHSJK
378 */
379 HWTEST_F(IpcClientManagerTest, SendRequest_001, testing::ext::TestSize.Level0)
380 {
381 // 1. set pkgName null
382 std::string pkgName = "";
383 std::shared_ptr<IpcReq> req = std::make_shared<IpcReq>();
384 std::shared_ptr<IpcRsp> rsp = std::make_shared<IpcRsp>();
385 req->SetPkgName(pkgName);
386 // 2. set IpcClientManager dmInterface_null
387 std::shared_ptr<IpcClientManager> instance = std::make_shared<IpcClientManager>();
388 instance->dmInterface_ = nullptr;
389 // 3. call SendRequest with parameter
390 int ret = instance->SendRequest(0, req, rsp);
391 // 4. check ret is DM_SERVICE_NOT_READY
392 ASSERT_EQ(ret, DM_SERVICE_NOT_READY);
393 }
394
395 /**
396 * @tc.name: SendRequest_002
397 * @tc.desc: 1. set pkgName not null
398 * 2. Mock IpcClientServerProxy SendCmd return DM_FAILED
399 * 3. set IpcClientManager dmInterface_ not null
400 * 4. set IpcClientManager dmListener_ not null
401 * 5. call SendRequest with parameter
402 * 6. check ret is DM_FAILED
403 * @tc.type: FUNC
404 * @tc.require: AR000GHSJK
405 */
406 HWTEST_F(IpcClientManagerTest, SendRequest_002, testing::ext::TestSize.Level0)
407 {
408 // 1. set pkgName not null
409 std::string pkgName = "com.ohos.test";
410 std::shared_ptr<IpcReq> req = std::make_shared<IpcReq>();
411 std::shared_ptr<IpcRsp> rsp = std::make_shared<IpcRsp>();
412 req->SetPkgName(pkgName);
413 // 2. Mock IpcClientServerProxy SendCmd return DM_FAILED
414 sptr<IRemoteObject> remoteObject = nullptr;
415 auto mockInstance = new MockIpcClientManager(remoteObject);
416 EXPECT_CALL(*mockInstance, SendCmd(testing::_, testing::_, testing::_))
417 .Times(1).WillOnce(testing::Return(DM_FAILED));
418 std::shared_ptr<IpcClientManager> instance = std::make_shared<IpcClientManager>();
419 // 3. set IpcClientManager dmInterface_ not null
420 instance->dmInterface_ = mockInstance;
421 sptr<IpcClientStub> listener = sptr<IpcClientStub>(new IpcClientStub());
422 // 4. set IpcClientManager dmListener_ not null
423 instance->dmListener_[pkgName] = listener;
424 // 5. call SendRequest with parameter
425 int ret = instance->SendRequest(0, req, rsp);
426 // 6. check ret is DM_FAILED
427 ASSERT_EQ(ret, DM_FAILED);
428 }
429
430 /**
431 * @tc.name: SendRequest_003
432 * @tc.desc: 1. set pkgName not null
433 * 2. Mock IpcClientServerProxy SendCmd return DM_OK
434 * 3. set IpcClientManager dmInterface_ not null
435 * 4. set IpcClientManager dmListener_ not null
436 * 5. call SendRequest with parameter
437 * 6. check ret is DM_OK
438 * @tc.type: FUNC
439 * @tc.require: AR000GHSJK
440 */
441 HWTEST_F(IpcClientManagerTest, SendRequest_003, testing::ext::TestSize.Level0)
442 {
443 // 1. set pkgName not null
444 std::string pkgName = "com.ohos.test";
445 std::shared_ptr<IpcReq> req = std::make_shared<IpcReq>();
446 std::shared_ptr<IpcRsp> rsp = std::make_shared<IpcRsp>();
447 req->SetPkgName(pkgName);
448 // 2. Mock IpcClientServerProxy SendCmd return DM_OK
449 sptr<IRemoteObject> remoteObject = nullptr;
450 auto mockInstance = new MockIpcClientManager(remoteObject);
451 EXPECT_CALL(*mockInstance, SendCmd(testing::_, testing::_, testing::_))
452 .Times(1).WillOnce(testing::Return(DM_OK));
453 std::shared_ptr<IpcClientManager> instance = std::make_shared<IpcClientManager>();
454 // 3. set IpcClientManager dmInterface_ not null
455 instance->dmInterface_ = mockInstance;
456 sptr<IpcClientStub> listener = sptr<IpcClientStub>(new IpcClientStub());
457 // 4. set IpcClientManager dmListener_ not null
458 instance->dmListener_[pkgName] = listener;
459 // 5. call SendRequest with parameter
460 int ret = instance->SendRequest(0, req, rsp);
461 // 6. check ret is DM_OK
462 ASSERT_EQ(ret, DM_OK);
463 }
464
465 /**
466 * @tc.name: SendRequest_004
467 * @tc.desc: 1. set pkgName not null
468 * 2. Mock IpcClientServerProxy SendCmd return DM_SERVICE_NOT_READY
469 * 3. set IpcClientManager dmInterface_ not null
470 * 4. set IpcClientManager dmListener_ not null
471 * 5. call SendRequest with parameter
472 * 6. check ret is DM_SERVICE_NOT_READY
473 * @tc.type: FUNC
474 * @tc.require: AR000GHSJK
475 */
476 HWTEST_F(IpcClientManagerTest, SendRequest_004, testing::ext::TestSize.Level0)
477 {
478 // 1. set pkgName not null
479 std::string pkgName = "com.ohos.test";
480 std::shared_ptr<IpcReq> req = std::make_shared<IpcReq>();
481 std::shared_ptr<IpcRsp> rsp = std::make_shared<IpcRsp>();
482 req->SetPkgName(pkgName);
483 // 2. Mock IpcClientServerProxy SendCmd return DM_SERVICE_NOT_READY
484 sptr<IRemoteObject> remoteObject = nullptr;
485 auto mockInstance = new MockIpcClientManager(remoteObject);
486 EXPECT_CALL(*mockInstance, SendCmd(testing::_, testing::_, testing::_))
487 .Times(1).WillOnce(testing::Return(DM_SERVICE_NOT_READY));
488 std::shared_ptr<IpcClientManager> instance = std::make_shared<IpcClientManager>();
489 // 3. set IpcClientManager dmInterface_ not null
490 instance->dmInterface_ = mockInstance;
491 sptr<IpcClientStub> listener = sptr<IpcClientStub>(new IpcClientStub());
492 // 4. set IpcClientManager dmListener_ not null
493 instance->dmListener_[pkgName] = listener;
494 // 5. call SendRequest with parameter
495 int ret = instance->SendRequest(0, req, rsp);
496 // 6. check ret is DM_SERVICE_NOT_READY
497 ASSERT_EQ(ret, DM_SERVICE_NOT_READY);
498 }
499
500 /**
501 * @tc.name: SendRequest_005
502 * @tc.desc: 1. set pkgName not null
503 * 2. Mock IpcClientServerProxy SendCmd return DM_IPC_FAILED
504 * 3. set IpcClientManager dmInterface_ not null
505 * 4. set IpcClientManager dmListener_ not null
506 * 5. call SendRequest with parameter
507 * 6. check ret is DM_IPC_FAILED
508 * @tc.type: FUNC
509 * @tc.require: AR000GHSJK
510 */
511 HWTEST_F(IpcClientManagerTest, SendRequest_005, testing::ext::TestSize.Level0)
512 {
513 // 1. set pkgName not null
514 std::string pkgName = "com.ohos.test";
515 std::shared_ptr<IpcReq> req = std::make_shared<IpcReq>();
516 std::shared_ptr<IpcRsp> rsp = std::make_shared<IpcRsp>();
517 req->SetPkgName(pkgName);
518 // 2. Mock IpcClientServerProxy SendCmd return DM_IPC_FAILED
519 sptr<IRemoteObject> remoteObject = nullptr;
520 auto mockInstance = new MockIpcClientManager(remoteObject);
521 EXPECT_CALL(*mockInstance, SendCmd(testing::_, testing::_, testing::_))
522 .Times(1).WillOnce(testing::Return(DM_IPC_FAILED));
523 std::shared_ptr<IpcClientManager> instance = std::make_shared<IpcClientManager>();
524 // 3. set IpcClientManager dmInterface_ not null
525 instance->dmInterface_ = mockInstance;
526 sptr<IpcClientStub> listener = sptr<IpcClientStub>(new IpcClientStub());
527 // 4. set IpcClientManager dmListener_ not null
528 instance->dmListener_[pkgName] = listener;
529 // 5. call SendRequest with parameter
530 int ret = instance->SendRequest(0, req, rsp);
531 // 6. check ret is DM_IPC_FAILED
532 ASSERT_EQ(ret, DM_IPC_FAILED);
533 }
534
535 /**
536 * @tc.name: IsInit_001
537 * @tc.desc: 1. set pkgName null
538 * 2. set IpcClientManager dmInterface_null
539 * 3. call IsInit with parameter
540 * 4. check ret is false
541 * @tc.type: FUNC
542 * @tc.require: AR000GHSJK
543 */
544 HWTEST_F(IpcClientManagerTest, IsInit_001, testing::ext::TestSize.Level0)
545 {
546 // 1. set pkgName null
547 std::string pkgName = "";
548 // 2. set IpcClientManager dmInterface_null
549 std::shared_ptr<IpcClientManager> instance = std::make_shared<IpcClientManager>();
550 instance->dmInterface_ = nullptr;
551 // 3. call SendRequest with parameter
552 bool ret = instance->IsInit(pkgName);
553 // 4. check ret is false
554 ASSERT_EQ(ret, false);
555 }
556
557 /**
558 * @tc.name: IsInit_002
559 * @tc.desc: 1. set pkgName not null
560 * 2. set IpcClientManager dmInterface_ not null
561 * 3. call IsInit with parameter
562 * 4. check ret is false
563 * @tc.type: FUNC
564 * @tc.require: AR000GHSJK
565 */
566 HWTEST_F(IpcClientManagerTest, IsInit_002, testing::ext::TestSize.Level0)
567 {
568 // 1. set pkgName null
569 std::string pkgName = "";
570 // 2. set IpcClientManager dmInterface_ not null
571 auto samgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
572 auto object = samgr->CheckSystemAbility(DISTRIBUTED_HARDWARE_DEVICEMANAGER_SA_ID);
573 sptr<IpcRemoteBroker> dmInterface = iface_cast<IpcRemoteBroker>(object);
574 std::shared_ptr<IpcClientManager> instance = std::make_shared<IpcClientManager>();
575 instance->dmInterface_ = dmInterface;
576 // 3. call IsInit with parameter
577 bool ret = instance->IsInit(pkgName);
578 // 4. check ret is false
579 ASSERT_EQ(ret, false);
580 }
581 } // namespace
582 } // namespace DistributedHardware
583 } // namespace OHOS
584