• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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