• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022-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 "UTTest_dm_pin_holder.h"
17 #include "dm_device_info.h"
18 
19 #include <unistd.h>
20 #include "accesstoken_kit.h"
21 #include "device_manager_notify.h"
22 #include "dm_anonymous.h"
23 #include "dm_constants.h"
24 #include "dm_log.h"
25 #include "ipc_authenticate_device_req.h"
26 #include "ipc_get_info_by_network_req.h"
27 #include "ipc_get_info_by_network_rsp.h"
28 #include "ipc_get_local_device_info_rsp.h"
29 #include "ipc_get_trustdevice_req.h"
30 #include "ipc_get_trustdevice_rsp.h"
31 #include "ipc_req.h"
32 #include "ipc_rsp.h"
33 #include "ipc_set_useroperation_req.h"
34 #include "ipc_skeleton.h"
35 #include "ipc_publish_req.h"
36 #include "ipc_unpublish_req.h"
37 #include "ipc_unauthenticate_device_req.h"
38 #include "nativetoken_kit.h"
39 #include "json_object.h"
40 #include "securec.h"
41 #include "token_setproc.h"
42 #include "pin_holder.h"
43 #include "pinholder_session_callback.h"
44 #include "softbus_error_code.h"
45 
46 namespace OHOS {
47 namespace DistributedHardware {
SetUp()48 void DmPinHolderTest::SetUp()
49 {
50     const int32_t permsNum = 2;
51     const int32_t indexZero = 0;
52     const int32_t indexOne = 1;
53     uint64_t tokenId;
54     const char *perms[permsNum];
55     perms[indexZero] = "ohos.permission.ACCESS_SERVICE_DM";
56     perms[indexOne] = "ohos.permission.DISTRIBUTED_DATASYNC";
57     NativeTokenInfoParams infoInstance = {
58         .dcapsNum = 0,
59         .permsNum = permsNum,
60         .aclsNum = 0,
61         .dcaps = NULL,
62         .perms = perms,
63         .acls = NULL,
64         .processName = "CollaborationFwk",
65         .aplStr = "system_core",
66     };
67     tokenId = GetAccessTokenId(&infoInstance);
68     SetSelfTokenID(tokenId);
69     OHOS::Security::AccessToken::AccessTokenKit::ReloadNativeTokenInfo();
70 }
71 
TearDown()72 void DmPinHolderTest::TearDown()
73 {
74 }
75 
SetUpTestCase()76 void DmPinHolderTest::SetUpTestCase()
77 {
78 }
79 
TearDownTestCase()80 void DmPinHolderTest::TearDownTestCase()
81 {
82 }
83 
OnCreateResult(int32_t result)84 void DmPinHolderCallbackTest::OnCreateResult(int32_t result)
85 {
86     std::cout << "OnCreateResult " << result << std::endl;
87 }
88 
OnDestroyResult(int32_t result)89 void DmPinHolderCallbackTest::OnDestroyResult(int32_t result)
90 {
91     std::cout << "OnDestroyResult " << result << std::endl;
92 }
93 
OnPinHolderDestroy(DmPinType pinType,const std::string & payload)94 void DmPinHolderCallbackTest::OnPinHolderDestroy(DmPinType pinType, const std::string &payload)
95 {
96     std::cout << "OnPinHolderDestroy" << std::endl;
97     std::cout << "pinType: " << pinType << std::endl;
98 }
99 
OnPinHolderCreate(const std::string & deviceId,DmPinType pinType,const std::string & payload)100 void DmPinHolderCallbackTest::OnPinHolderCreate(const std::string &deviceId, DmPinType pinType,
101     const std::string &payload)
102 {
103     std::cout << "OnPinHolderCreate" << std::endl;
104     std::cout << "pinType: " << pinType << std::endl;
105     std::cout << "payload: " << payload << std::endl;
106 }
107 
OnPinHolderEvent(DmPinHolderEvent event,int32_t result,const std::string & content)108 void DmPinHolderCallbackTest::OnPinHolderEvent(DmPinHolderEvent event, int32_t result, const std::string &content)
109 {
110     std::cout << "OnPinHolderEvent" << std::endl;
111     std::cout << "result: " << result << std::endl;
112     std::cout << "content: " << content << std::endl;
113 }
114 
115 constexpr int32_t MSG_TYPE_CREATE_PIN_HOLDER = 600;
116 constexpr int32_t MSG_TYPE_CREATE_PIN_HOLDER_RESP = 601;
117 constexpr int32_t MSG_TYPE_DESTROY_PIN_HOLDER = 650;
118 constexpr int32_t MSG_TYPE_DESTROY_PIN_HOLDER_RESP = 651;
119 constexpr int32_t MSG_TYPE_PIN_HOLDER_CHANGE = 700;
120 constexpr int32_t MSG_TYPE_PIN_HOLDER_CHANGE_RESP = 701;
121 constexpr int32_t MSG_TYPE_PIN_CLOSE_SESSION = 800;
122 constexpr int32_t SESSION_ID = 0;
123 constexpr int32_t RESULT = DM_OK;
124 constexpr int32_t REPLY_SUCCESS = 0;
125 constexpr int32_t REPLY_FAILED = -1;
126 
127 constexpr const char* TAG_PIN_TYPE = "PIN_TYPE";
128 constexpr const char* TAG_PAYLOAD = "PAYLOAD";
129 constexpr const char* TAG_REPLY = "REPLY";
130 constexpr int32_t SESSION_ID_INVALID = -1;
131 const std::string PACKAGE_NAME = "com.ohos.dmtest";
132 const std::string PAY_LOAD = "mock_payLoad";
133 namespace {
134 /**
135  * @tc.name: InitDeviceManager_001
136  * @tc.desc: 1. set packName not null
137  *              set dmInitCallback not null
138  *           2. call DeviceManagerImpl::InitDeviceManager with parameter
139  *           4. check ret is DM_OK
140  * deviceTypeId
141  * @tc.type: FUNC
142  * @tc.require: AR000GHSJK
143  */
144 HWTEST_F(DmPinHolderTest, RegisterPinHolderCallback_101, testing::ext::TestSize.Level0)
145 {
146     // 1. set packName not null
147     std::string packName = "com.ohos.dmtest";
148     // 2. set dmInitCallback not null
149     std::shared_ptr<DmInitCallbackTest> callback = std::make_shared<DmInitCallbackTest>();
150     int32_t ret = DeviceManager::GetInstance().InitDeviceManager(packName, callback);
151 
152     std::shared_ptr<DmPinHolderCallbackTest> pinHolderCallback = std::make_shared<DmPinHolderCallbackTest>();
153     ret = DeviceManager::GetInstance().RegisterPinHolderCallback(packName, pinHolderCallback);
154     // 3. check ret is DM_OK
155     ASSERT_EQ(ret, DM_OK);
156     DeviceManager::GetInstance().UnInitDeviceManager(packName);
157 }
158 
159 HWTEST_F(DmPinHolderTest, RegisterPinHolderCallback_102, testing::ext::TestSize.Level0)
160 {
161     std::string packName = "com.ohos.dmtest";
162     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
163     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
164     pinHolder->session_ = nullptr;
165     int32_t ret = pinHolder->RegisterPinHolderCallback(packName);
166     ASSERT_EQ(ret, ERR_DM_FAILED);
167 }
168 
169 HWTEST_F(DmPinHolderTest, RegisterPinHolderCallback_103, testing::ext::TestSize.Level0)
170 {
171     std::string packName = "com.ohos.dmtest";
172     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
173     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
174     pinHolder->session_ = std::make_shared<PinHolderSession>();
175     int32_t ret = pinHolder->RegisterPinHolderCallback(packName);
176     ASSERT_EQ(ret, DM_OK);
177 }
178 
179 HWTEST_F(DmPinHolderTest, CreatePinholder_101, testing::ext::TestSize.Level0)
180 {
181     std::string packName = "com.ohos.dmtest";
182     std::shared_ptr<DmInitCallbackTest> callback = std::make_shared<DmInitCallbackTest>();
183     int32_t ret = DeviceManager::GetInstance().InitDeviceManager(packName, callback);
184 
185     std::shared_ptr<DmPinHolderCallbackTest> pinHolderCallback = std::make_shared<DmPinHolderCallbackTest>();
186     ret = DeviceManager::GetInstance().RegisterPinHolderCallback(packName, pinHolderCallback);
187     PeerTargetId targetId;
188     DmPinType pinType = NUMBER_PIN_CODE;
189     std::string payload = "";
190     ret = DeviceManager::GetInstance().CreatePinHolder(packName, targetId, pinType, payload);
191     ASSERT_EQ(ret, ERR_DM_INPUT_PARA_INVALID);
192     DeviceManager::GetInstance().UnInitDeviceManager(packName);
193 }
194 
195 HWTEST_F(DmPinHolderTest, CreatePinholder_102, testing::ext::TestSize.Level0)
196 {
197     std::string packName = "com.ohos.dmtest";
198     PeerTargetId targetId;
199     DmPinType pinType = DmPinType::NUMBER_PIN_CODE;
200     std::string payload;
201     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
202     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
203     pinHolder->processInfo_.pkgName = "";
204     pinHolder->processInfo_.userId = 100;
205     int32_t ret = pinHolder->CreatePinHolder(packName, targetId, pinType, payload);
206     ASSERT_EQ(ret, ERR_DM_FAILED);
207 }
208 
209 HWTEST_F(DmPinHolderTest, CreatePinholder_103, testing::ext::TestSize.Level0)
210 {
211     std::string packName = "com.ohos.dmtest";
212     PeerTargetId targetId;
213     DmPinType pinType = DmPinType::NUMBER_PIN_CODE;
214     std::string payload;
215     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
216     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
217     pinHolder->processInfo_.pkgName = "dmtest";
218     pinHolder->processInfo_.userId = 100;
219     int32_t ret = pinHolder->CreatePinHolder(packName, targetId, pinType, payload);
220     ASSERT_EQ(ret, ERR_DM_FAILED);
221 }
222 
223 HWTEST_F(DmPinHolderTest, CreatePinholder_105, testing::ext::TestSize.Level0)
224 {
225     std::string packName = "com.ohos.dmtest";
226     PeerTargetId targetId = {
227         .deviceId = "",
228         .brMac = "",
229         .bleMac = "",
230         .wifiIp = "",
231     };
232 
233     DmPinType pinType = DmPinType::NUMBER_PIN_CODE;
234     std::string payload;
235     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
236     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
237     pinHolder->processInfo_.pkgName = packName;
238     pinHolder->processInfo_.userId = 100;
239     int32_t ret = pinHolder->CreatePinHolder(packName, targetId, pinType, payload);
240     ASSERT_EQ(ret, ERR_DM_INPUT_PARA_INVALID);
241 }
242 
243 HWTEST_F(DmPinHolderTest, CreatePinholder_106, testing::ext::TestSize.Level0)
244 {
245     std::string packName = "com.ohos.dmtest";
246     PeerTargetId targetId = {
247         .deviceId = "deviceId",
248         .brMac = "brMac",
249         .bleMac = "bleMac",
250         .wifiIp = "wifiIp",
251     };
252 
253     DmPinType pinType = DmPinType::NUMBER_PIN_CODE;
254     std::string payload;
255     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
256     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
257     pinHolder->processInfo_.pkgName = packName;
258     pinHolder->processInfo_.userId = 100;
259     pinHolder->listener_ = nullptr;
260     int32_t ret = pinHolder->CreatePinHolder(packName, targetId, pinType, payload);
261     ASSERT_EQ(ret, ERR_DM_FAILED);
262 }
263 
264 HWTEST_F(DmPinHolderTest, CreatePinholder_107, testing::ext::TestSize.Level0)
265 {
266     std::string packName = "com.ohos.dmtest";
267     PeerTargetId targetId = {
268         .deviceId = "deviceId",
269         .brMac = "brMac",
270         .bleMac = "bleMac",
271         .wifiIp = "wifiIp",
272     };
273 
274     DmPinType pinType = DmPinType::NUMBER_PIN_CODE;
275     std::string payload;
276     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
277     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
278     pinHolder->processInfo_.pkgName = packName;
279     pinHolder->processInfo_.userId = 100;
280     pinHolder->session_ = nullptr;
281     int32_t ret = pinHolder->CreatePinHolder(packName, targetId, pinType, payload);
282     ASSERT_EQ(ret, ERR_DM_FAILED);
283 }
284 
285 HWTEST_F(DmPinHolderTest, CreatePinholder_108, testing::ext::TestSize.Level0)
286 {
287     std::string packName = "com.ohos.dmtest";
288     PeerTargetId targetId = {
289         .deviceId = "deviceId",
290         .brMac = "brMac",
291         .bleMac = "bleMac",
292         .wifiIp = "wifiIp",
293     };
294 
295     DmPinType pinType = DmPinType::NUMBER_PIN_CODE;
296     std::string payload;
297     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
298     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
299     pinHolder->processInfo_.pkgName = packName;
300     pinHolder->processInfo_.userId = 100;
301     pinHolder->sourceState_ = SOURCE_CREATE;
302     int32_t ret = pinHolder->CreatePinHolder(packName, targetId, pinType, payload);
303     ASSERT_EQ(ret, ERR_DM_FAILED);
304 }
305 
306 HWTEST_F(DmPinHolderTest, DestroyPinHolder_101, testing::ext::TestSize.Level0)
307 {
308     std::string packName = "com.ohos.dmtest";
309     PeerTargetId targetId = {
310         .deviceId = "deviceId",
311         .brMac = "brMac",
312         .bleMac = "bleMac",
313         .wifiIp = "wifiIp",
314     };
315     DmPinType pinType = DmPinType::NUMBER_PIN_CODE;
316     std::string payload;
317     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
318     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
319     pinHolder->listener_ = nullptr;
320     int32_t ret = pinHolder->DestroyPinHolder(packName, targetId, pinType, payload);
321     ASSERT_EQ(ret, ERR_DM_FAILED);
322 }
323 
324 HWTEST_F(DmPinHolderTest, DestroyPinHolder_102, testing::ext::TestSize.Level0)
325 {
326     std::string packName = "com.ohos.dmtest";
327     PeerTargetId targetId = {
328         .deviceId = "deviceId",
329         .brMac = "brMac",
330         .bleMac = "bleMac",
331         .wifiIp = "wifiIp",
332     };
333     DmPinType pinType = DmPinType::NUMBER_PIN_CODE;
334     std::string payload;
335     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
336     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
337     pinHolder->session_ = nullptr;
338     int32_t ret = pinHolder->DestroyPinHolder(packName, targetId, pinType, payload);
339     ASSERT_EQ(ret, ERR_DM_FAILED);
340 }
341 
342 HWTEST_F(DmPinHolderTest, DestroyPinHolder_103, testing::ext::TestSize.Level0)
343 {
344     std::string packName = "com.ohos.dmtest";
345     PeerTargetId targetId = {
346         .deviceId = "deviceId",
347         .brMac = "brMac",
348         .bleMac = "bleMac",
349         .wifiIp = "wifiIp",
350     };
351     DmPinType pinType = DmPinType::NUMBER_PIN_CODE;
352     std::string payload;
353     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
354     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
355     pinHolder->processInfo_.pkgName = "";
356     pinHolder->processInfo_.userId = 100;
357     int32_t ret = pinHolder->DestroyPinHolder(packName, targetId, pinType, payload);
358     ASSERT_EQ(ret, ERR_DM_FAILED);
359 }
360 
361 HWTEST_F(DmPinHolderTest, DestroyPinHolder_104, testing::ext::TestSize.Level0)
362 {
363     std::string packName = "com.ohos.dmtest";
364     PeerTargetId targetId = {
365         .deviceId = "deviceId",
366         .brMac = "brMac",
367         .bleMac = "bleMac",
368         .wifiIp = "wifiIp",
369     };
370     DmPinType pinType = DmPinType::NUMBER_PIN_CODE;
371     std::string payload;
372     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
373     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
374     pinHolder->processInfo_.pkgName = "dmtest";
375     pinHolder->processInfo_.userId = 100;
376     int32_t ret = pinHolder->DestroyPinHolder(packName, targetId, pinType, payload);
377     ASSERT_EQ(ret, ERR_DM_FAILED);
378 }
379 
380 HWTEST_F(DmPinHolderTest, DestroyPinHolder_105, testing::ext::TestSize.Level0)
381 {
382     std::string packName = "com.ohos.dmtest";
383     PeerTargetId targetId = {
384         .deviceId = "",
385         .brMac = "",
386         .bleMac = "",
387         .wifiIp = "",
388     };
389     DmPinType pinType = DmPinType::NUMBER_PIN_CODE;
390     std::string payload;
391     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
392     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
393     pinHolder->processInfo_.pkgName = packName;
394     pinHolder->processInfo_.userId = 100;
395     int32_t ret = pinHolder->DestroyPinHolder(packName, targetId, pinType, payload);
396     ASSERT_EQ(ret, ERR_DM_INPUT_PARA_INVALID);
397 }
398 
399 HWTEST_F(DmPinHolderTest, DestroyPinHolder_106, testing::ext::TestSize.Level0)
400 {
401     std::string packName = "com.ohos.dmtest";
402     PeerTargetId targetId = {
403         .deviceId = "deviceId",
404         .brMac = "brMac",
405         .bleMac = "bleMac",
406         .wifiIp = "wifiIp",
407     };
408     DmPinType pinType = DmPinType::NUMBER_PIN_CODE;
409     std::string payload;
410     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
411     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
412     pinHolder->processInfo_.pkgName = packName;
413     pinHolder->processInfo_.userId = 100;
414     pinHolder->sessionId_ = 0;
415     pinHolder->sourceState_ = SOURCE_DESTROY;
416     pinHolder->listener_ = std::make_shared<IDeviceManagerServiceListenerTest>();
417     int32_t ret = pinHolder->DestroyPinHolder(packName, targetId, pinType, payload);
418     ASSERT_EQ(ret, ERR_DM_FAILED);
419 }
420 
421 HWTEST_F(DmPinHolderTest, CreateGeneratePinHolderMsg_101, testing::ext::TestSize.Level0)
422 {
423     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
424     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
425     pinHolder->listener_ = nullptr;
426     int32_t ret = pinHolder->CreateGeneratePinHolderMsg();
427     ASSERT_EQ(ret, ERR_DM_FAILED);
428 }
429 
430 HWTEST_F(DmPinHolderTest, CreateGeneratePinHolderMsg_102, testing::ext::TestSize.Level0)
431 {
432     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
433     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
434     pinHolder->session_ = nullptr;
435     int32_t ret = pinHolder->CreateGeneratePinHolderMsg();
436     ASSERT_EQ(ret, ERR_DM_FAILED);
437 }
438 
439 HWTEST_F(DmPinHolderTest, ParseMsgType_101, testing::ext::TestSize.Level0)
440 {
441     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
442     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
443     std::string message;
444     int32_t ret = pinHolder->ParseMsgType(message);
445     ASSERT_EQ(ret, ERR_DM_FAILED);
446 }
447 
448 HWTEST_F(DmPinHolderTest, ProcessCreateMsg_101, testing::ext::TestSize.Level0)
449 {
450     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
451     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
452     std::string message;
453     pinHolder->listener_ = nullptr;
454     pinHolder->ProcessCreateMsg(message);
455     ASSERT_NE(pinHolder->timer_, nullptr);
456 }
457 
458 HWTEST_F(DmPinHolderTest, ProcessCreateMsg_102, testing::ext::TestSize.Level0)
459 {
460     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
461     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
462     std::string message;
463     pinHolder->session_ = nullptr;
464     pinHolder->ProcessCreateMsg(message);
465     ASSERT_NE(pinHolder->timer_, nullptr);
466 }
467 
468 HWTEST_F(DmPinHolderTest, ProcessCreateMsg_103, testing::ext::TestSize.Level0)
469 {
470     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
471     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
472     JsonObject jsonObject;
473     std::string message = SafetyDump(jsonObject);
474     pinHolder->ProcessCreateMsg(message);
475     ASSERT_NE(pinHolder->timer_, nullptr);
476 }
477 
478 HWTEST_F(DmPinHolderTest, ProcessCreateMsg_104, testing::ext::TestSize.Level0)
479 {
480     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
481     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
482     JsonObject jsonObject;
483     jsonObject[TAG_PIN_TYPE] = "TAG_PIN_TYPE";
484     std::string message = SafetyDump(jsonObject);
485     pinHolder->ProcessCreateMsg(message);
486     ASSERT_NE(pinHolder->timer_, nullptr);
487 }
488 
489 HWTEST_F(DmPinHolderTest, ProcessCreateMsg_105, testing::ext::TestSize.Level0)
490 {
491     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
492     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
493     JsonObject jsonObject;
494     jsonObject[TAG_PIN_TYPE] = DmPinType::SUPER_SONIC;
495     jsonObject[TAG_PAYLOAD] = DmPinType::SUPER_SONIC;
496     std::string message = SafetyDump(jsonObject);
497     pinHolder->ProcessCreateMsg(message);
498     ASSERT_NE(pinHolder->timer_, nullptr);
499 }
500 
501 HWTEST_F(DmPinHolderTest, ProcessCreateRespMsg_101, testing::ext::TestSize.Level0)
502 {
503     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
504     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
505     JsonObject jsonObject;
506     std::string message = SafetyDump(jsonObject);
507     pinHolder->ProcessCreateRespMsg(message);
508     ASSERT_NE(pinHolder->timer_, nullptr);
509 }
510 
511 HWTEST_F(DmPinHolderTest, ProcessCreateRespMsg_102, testing::ext::TestSize.Level0)
512 {
513     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
514     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
515     JsonObject jsonObject;
516     jsonObject[TAG_REPLY] = DmPinType::NUMBER_PIN_CODE;
517     std::string message = SafetyDump(jsonObject);
518     pinHolder->listener_ = nullptr;
519     pinHolder->ProcessCreateRespMsg(message);
520     ASSERT_NE(pinHolder->timer_, nullptr);
521 }
522 
523 HWTEST_F(DmPinHolderTest, ProcessCreateRespMsg_103, testing::ext::TestSize.Level0)
524 {
525     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
526     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
527     JsonObject jsonObject;
528     jsonObject[TAG_REPLY] = DmPinType::SUPER_SONIC;
529     std::string message = SafetyDump(jsonObject);
530     pinHolder->session_ = nullptr;
531     pinHolder->ProcessCreateRespMsg(message);
532     ASSERT_NE(pinHolder->timer_, nullptr);
533 }
534 
535 HWTEST_F(DmPinHolderTest, ProcessCreateRespMsg_104, testing::ext::TestSize.Level0)
536 {
537     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
538     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
539     JsonObject jsonObject;
540     jsonObject[TAG_REPLY] = DmPinType::NUMBER_PIN_CODE;
541     std::string message = SafetyDump(jsonObject);
542     pinHolder->session_ = nullptr;
543     pinHolder->ProcessCreateRespMsg(message);
544     ASSERT_NE(pinHolder->timer_, nullptr);
545 }
546 
547 HWTEST_F(DmPinHolderTest, ProcessDestroyMsg_101, testing::ext::TestSize.Level0)
548 {
549     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
550     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
551     std::string message;
552     pinHolder->listener_ = nullptr;
553     pinHolder->ProcessDestroyMsg(message);
554     ASSERT_NE(pinHolder->timer_, nullptr);
555 }
556 
557 HWTEST_F(DmPinHolderTest, ProcessDestroyMsg_102, testing::ext::TestSize.Level0)
558 {
559     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
560     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
561     std::string message;
562     pinHolder->session_ = nullptr;
563     pinHolder->ProcessDestroyMsg(message);
564     ASSERT_NE(pinHolder->timer_, nullptr);
565 }
566 
567 HWTEST_F(DmPinHolderTest, ProcessDestroyMsg_103, testing::ext::TestSize.Level0)
568 {
569     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
570     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
571     JsonObject jsonObject;
572     std::string message = SafetyDump(jsonObject);
573     pinHolder->ProcessDestroyMsg(message);
574     ASSERT_NE(pinHolder->timer_, nullptr);
575 }
576 
577 HWTEST_F(DmPinHolderTest, ProcessDestroyMsg_104, testing::ext::TestSize.Level0)
578 {
579     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
580     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
581     JsonObject jsonObject;
582     jsonObject[TAG_PIN_TYPE] = "TAG_PIN_TYPE";
583     std::string message = SafetyDump(jsonObject);
584     pinHolder->ProcessDestroyMsg(message);
585     ASSERT_NE(pinHolder->timer_, nullptr);
586 }
587 
588 HWTEST_F(DmPinHolderTest, ProcessDestroyMsg_105, testing::ext::TestSize.Level0)
589 {
590     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
591     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
592     JsonObject jsonObject;
593     jsonObject[TAG_PIN_TYPE] = DmPinType::SUPER_SONIC;
594     jsonObject[TAG_PAYLOAD] = DmPinType::SUPER_SONIC;
595     std::string message = SafetyDump(jsonObject);
596     pinHolder->ProcessDestroyMsg(message);
597     ASSERT_NE(pinHolder->timer_, nullptr);
598 }
599 
600 HWTEST_F(DmPinHolderTest, CloseSession_101, testing::ext::TestSize.Level0)
601 {
602     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
603     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
604     std::string name;
605     pinHolder->session_ = nullptr;
606     pinHolder->CloseSession(name);
607     ASSERT_NE(pinHolder->timer_, nullptr);
608 }
609 
610 HWTEST_F(DmPinHolderTest, OnDataReceived_101, testing::ext::TestSize.Level0)
611 {
612     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
613     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
614     int32_t sessionId = 1;
615     JsonObject jsonObject;
616     jsonObject[TAG_MSG_TYPE] = MSG_TYPE_CREATE_PIN_HOLDER;
617     std::string message = SafetyDump(jsonObject);
618     pinHolder->OnDataReceived(sessionId, message);
619     ASSERT_NE(pinHolder->timer_, nullptr);
620 }
621 
622 HWTEST_F(DmPinHolderTest, OnDataReceived_102, testing::ext::TestSize.Level0)
623 {
624     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
625     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
626     int32_t sessionId = 1;
627     JsonObject jsonObject;
628     jsonObject[TAG_MSG_TYPE] = MSG_TYPE_CREATE_PIN_HOLDER_RESP;
629     std::string message = SafetyDump(jsonObject);
630     pinHolder->OnDataReceived(sessionId, message);
631     ASSERT_NE(pinHolder->timer_, nullptr);
632 }
633 
634 HWTEST_F(DmPinHolderTest, OnDataReceived_103, testing::ext::TestSize.Level0)
635 {
636     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
637     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
638     int32_t sessionId = 1;
639     JsonObject jsonObject;
640     jsonObject[TAG_MSG_TYPE] = MSG_TYPE_DESTROY_PIN_HOLDER;
641     std::string message = SafetyDump(jsonObject);
642     pinHolder->OnDataReceived(sessionId, message);
643     ASSERT_NE(pinHolder->timer_, nullptr);
644 }
645 
646 HWTEST_F(DmPinHolderTest, OnDataReceived_104, testing::ext::TestSize.Level0)
647 {
648     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
649     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
650     int32_t sessionId = 1;
651     JsonObject jsonObject;
652     jsonObject[TAG_MSG_TYPE] = MSG_TYPE_DESTROY_PIN_HOLDER_RESP;
653     std::string message = SafetyDump(jsonObject);
654     pinHolder->OnDataReceived(sessionId, message);
655     ASSERT_NE(pinHolder->timer_, nullptr);
656 }
657 
658 HWTEST_F(DmPinHolderTest, OnDataReceived_105, testing::ext::TestSize.Level0)
659 {
660     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
661     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
662     int32_t sessionId = 1;
663     int32_t data = 300;
664     JsonObject jsonObject;
665     jsonObject[TAG_MSG_TYPE] = data;
666     std::string message = SafetyDump(jsonObject);
667     pinHolder->OnDataReceived(sessionId, message);
668     ASSERT_NE(pinHolder->timer_, nullptr);
669 }
670 
671 HWTEST_F(DmPinHolderTest, GetPeerDeviceId_101, testing::ext::TestSize.Level0)
672 {
673     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
674     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
675     int32_t sessionId = 1;
676     std::string udidHash;
677     pinHolder->GetPeerDeviceId(sessionId, udidHash);
678     ASSERT_NE(pinHolder->timer_, nullptr);
679 }
680 
681 HWTEST_F(DmPinHolderTest, OnSessionOpened_101, testing::ext::TestSize.Level0)
682 {
683     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
684     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
685     int32_t sessionId = 1;
686     int32_t sessionSide = 0;
687     int32_t result = 0;
688     pinHolder->OnSessionOpened(sessionId, sessionSide, result);
689     ASSERT_NE(pinHolder->timer_, nullptr);
690 }
691 
692 HWTEST_F(DmPinHolderTest, OnSessionOpened_102, testing::ext::TestSize.Level0)
693 {
694     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
695     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
696     int32_t sessionId = 1;
697     int32_t sessionSide = 1;
698     int32_t result = 1;
699     pinHolder ->listener_ = nullptr;
700     pinHolder->OnSessionOpened(sessionId, sessionSide, result);
701     ASSERT_NE(pinHolder->timer_, nullptr);
702 }
703 
704 
705 HWTEST_F(DmPinHolderTest, CheckTargetIdVaild_101, testing::ext::TestSize.Level0)
706 {
707     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
708     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
709     PeerTargetId targetId = {
710         .deviceId = "",
711         .brMac = "",
712         .bleMac = "",
713         .wifiIp = "",
714     };
715     int32_t ret = pinHolder->CheckTargetIdVaild(targetId);
716     ASSERT_EQ(ret, ERR_DM_INPUT_PARA_INVALID);
717 }
718 
719 HWTEST_F(DmPinHolderTest, CheckTargetIdVaild_102, testing::ext::TestSize.Level0)
720 {
721     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
722     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
723     PeerTargetId targetId = {
724         .deviceId = "deviceId",
725         .brMac = "brMac",
726         .bleMac = "bleMac",
727         .wifiIp = "wifiIp",
728     };
729     int32_t ret = pinHolder->CheckTargetIdVaild(targetId);
730     ASSERT_EQ(ret, DM_OK);
731 }
732 
733 HWTEST_F(DmPinHolderTest, NotifyPinHolderEvent_101, testing::ext::TestSize.Level0)
734 {
735     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
736     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
737     std::string packName = "com.ohos.dmtest";
738     std::string event = "event";
739     int32_t ret = pinHolder->NotifyPinHolderEvent(packName, event);
740     ASSERT_EQ(ret, ERR_DM_FAILED);
741 }
742 
743 HWTEST_F(DmPinHolderTest, OpenSessionServer_101, testing::ext::TestSize.Level0)
744 {
745     std::shared_ptr<PinHolderSession> pinHolderSession = std::make_shared<PinHolderSession>();
746     PeerTargetId targetId = {
747         .deviceId = "deviceId",
748         .brMac = "brMac",
749         .bleMac = "bleMac",
750         .wifiIp = "wifiIp",
751     };
752     int32_t ret = pinHolderSession->OpenSessionServer(targetId);
753     EXPECT_NE(ret, -1);
754 }
755 
756 HWTEST_F(DmPinHolderTest, CloseSessionServer_101, testing::ext::TestSize.Level0)
757 {
758     std::shared_ptr<PinHolderSession> pinHolderSession = std::make_shared<PinHolderSession>();
759     int32_t sessionId = 1;
760     int32_t ret = pinHolderSession->CloseSessionServer(sessionId);
761     EXPECT_EQ(ret, DM_OK);
762 }
763 
764 HWTEST_F(DmPinHolderTest, OnSessionOpened_103, testing::ext::TestSize.Level0)
765 {
766     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
767     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
768     std::shared_ptr<PinHolderSession> pinHolderSession = std::make_shared<PinHolderSession>();
769     pinHolderSession->RegisterSessionCallback(pinHolder);
770     int sessionId = 1;
771     int result = 1;
772     int ret = pinHolderSession->OnSessionOpened(sessionId, result);
773     int closeSessionId = 2;
774     pinHolderSession->OnSessionClosed(closeSessionId);
775     EXPECT_EQ(ret, DM_OK);
776 }
777 
778 HWTEST_F(DmPinHolderTest, SendData_101, testing::ext::TestSize.Level0)
779 {
780     std::shared_ptr<PinHolderSession> pinHolderSession = std::make_shared<PinHolderSession>();
781     int32_t sessionId = 6;
782     std::string message = "123456";
783     int32_t ret = pinHolderSession->SendData(sessionId, message);
784     EXPECT_EQ(ret, ERR_DM_FAILED);
785 }
786 
787 HWTEST_F(DmPinHolderTest, SendData_102, testing::ext::TestSize.Level0)
788 {
789     std::shared_ptr<PinHolderSession> pinHolderSession = std::make_shared<PinHolderSession>();
790     int32_t sessionId = 6;
791     std::string message = R"(
792     {
793         "MSG_TYPE" : "789"
794     }
795     )";
796     int32_t ret = pinHolderSession->SendData(sessionId, message);
797     EXPECT_EQ(ret, ERR_DM_FAILED);
798 }
799 
800 HWTEST_F(DmPinHolderTest, SendData_103, testing::ext::TestSize.Level0)
801 {
802     std::shared_ptr<PinHolderSession> pinHolderSession = std::make_shared<PinHolderSession>();
803     int32_t sessionId = 6;
804     std::string message = R"(
805     {
806         "MSG_TYPE" : 100
807     }
808     )";
809     int32_t ret = pinHolderSession->SendData(sessionId, message);
810     EXPECT_NE(ret, DM_OK);
811 
812     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
813     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
814     pinHolder->session_ = nullptr;
815     pinHolder->ProcessChangeMsg(message);
816 
817     message = R"(
818     {
819         "MSG_TYPE" : 100
820     }}
821     )";
822     pinHolder->session_ = std::make_shared<PinHolderSession>();
823     pinHolder->ProcessChangeMsg(message);
824 
825     message = R"(
826     {
827         "MSG_TYPE" : 100
828     }
829     )";
830     pinHolder->ProcessChangeMsg(message);
831 
832     message = R"(
833     {
834         "PIN_TYPE" : 12
835     }
836     )";
837     pinHolder->sinkState_ = PinHolderState::SINK_INIT;
838     pinHolder->ProcessChangeMsg(message);
839 
840     pinHolder->sinkState_ = PinHolderState::SINK_CREATE;
841     pinHolder->ProcessChangeMsg(message);
842 }
843 
844 HWTEST_F(DmPinHolderTest, GetAddrByTargetId_101, testing::ext::TestSize.Level0)
845 {
846     std::shared_ptr<PinHolderSession> pinHolderSession = std::make_shared<PinHolderSession>();
847     PeerTargetId targetId = {
848         .deviceId = "deviceIdTest",
849         .brMac = "brMacTest",
850         .bleMac = "bleMacTest",
851         .wifiIp = "wifiIpTest",
852         .wifiPort = 369,
853     };
854     ConnectionAddr addr;
855     int32_t ret = pinHolderSession->GetAddrByTargetId(targetId, addr);
856     EXPECT_EQ(ret, DM_OK);
857 
858     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
859     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
860     std::string message = R"(
861     {
862         "MSG_TYPE" : 100
863     }}
864     )";
865     pinHolder->ProcessChangeRespMsg(message);
866 
867     message = R"(
868     {
869         "MSG_TYPE" : 100
870     }
871     )";
872     pinHolder->ProcessChangeRespMsg(message);
873 
874     message = R"(
875     {
876         "REPLY" : 10
877     }
878     )";
879     pinHolder->session_ = nullptr;
880     pinHolder->ProcessChangeRespMsg(message);
881 
882     pinHolder->session_ = std::make_shared<PinHolderSession>();
883     pinHolder->ProcessChangeRespMsg(message);
884 
885     message = R"(
886     {
887         "REPLY" : 0
888     }
889     )";
890     pinHolder->ProcessChangeRespMsg(message);
891 }
892 
893 HWTEST_F(DmPinHolderTest, NotifyPinHolderEvent_102, testing::ext::TestSize.Level0)
894 {
895     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
896     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
897     std::string pkgName = "com.ohos.dmtest";
898     std::string event = "event";
899     pinHolder->session_ = nullptr;
900     int32_t ret = pinHolder->NotifyPinHolderEvent(pkgName, event);
901     ASSERT_EQ(ret, ERR_DM_FAILED);
902 
903     pinHolder->session_ = std::make_shared<PinHolderSession>();
904     pinHolder->processInfo_.pkgName = "";
905     ret = pinHolder->NotifyPinHolderEvent(pkgName, event);
906     ASSERT_EQ(ret, ERR_DM_FAILED);
907 
908     pinHolder->processInfo_.pkgName = "pkgName";
909     pkgName = "pkgName";
910     pinHolder->sessionId_ = -1;
911     ret = pinHolder->NotifyPinHolderEvent(pkgName, event);
912     ASSERT_EQ(ret, ERR_DM_FAILED);
913 
914     pinHolder->sessionId_ = 0;
915     pinHolder->isRemoteSupported_ = false;
916     ret = pinHolder->NotifyPinHolderEvent(pkgName, event);
917     ASSERT_EQ(ret, ERR_DM_BIND_PEER_UNSUPPORTED);
918 
919     pinHolder->isRemoteSupported_ = true;
920     ret = pinHolder->NotifyPinHolderEvent(pkgName, event);
921     ASSERT_EQ(ret, ERR_DM_FAILED);
922 
923     if (pinHolder->timer_ == nullptr) {
924         pinHolder->timer_ = std::make_shared<DmTimer>();
925     }
926     JsonObject jsonObj;
927     jsonObj[TAG_MSG_TYPE] = 1;
928     jsonObj[TAG_PIN_TYPE] = DmPinType::SUPER_SONIC;
929     event = jsonObj.Dump();
930     if (pinHolder->session_ == nullptr) {
931         pinHolder->session_ = std::make_shared<PinHolderSession>();
932     }
933     ret = pinHolder->NotifyPinHolderEvent(pkgName, event);
934     ASSERT_EQ(ret, ERR_DM_FAILED);
935 }
936 
937 HWTEST_F(DmPinHolderTest, CreateMsgScene_101, testing::ext::TestSize.Level0)
938 {
939     JsonObject sourceJson;
940     sourceJson[TAG_MSG_TYPE] = MSG_TYPE_CREATE_PIN_HOLDER;
941     sourceJson[TAG_PIN_TYPE] = DmPinType::QR_CODE;
942     sourceJson[TAG_PAYLOAD] = PAY_LOAD;
943     std::string sourceMessage = SafetyDump(sourceJson);
944 
945     JsonObject sinkJson;
946     sinkJson[TAG_MSG_TYPE] = MSG_TYPE_CREATE_PIN_HOLDER_RESP;
947     sinkJson[TAG_PIN_TYPE] = DmPinType::QR_CODE;
948     sinkJson[TAG_PAYLOAD] = PAY_LOAD;
949     sinkJson[TAG_REPLY] = REPLY_SUCCESS;
950     std::string sinkMessage = SafetyDump(sourceJson);
951 
952     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
953     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
954     pinHolder->OnSessionOpened(SESSION_ID, SESSION_ID_INVALID, RESULT);
955     pinHolder->OnDataReceived(SESSION_ID, sourceMessage);
956 
957     pinHolder->OnDataReceived(SESSION_ID, sinkMessage);
958     pinHolder->OnDataReceived(SESSION_ID, sourceMessage);
959     pinHolder->OnSessionClosed(SESSION_ID);
960     EXPECT_TRUE(pinHolder->isDestroy_.load());
961 }
962 
963 HWTEST_F(DmPinHolderTest, CreateRespMsgScene_101, testing::ext::TestSize.Level2)
964 {
965     JsonObject jsonObject;
966     jsonObject[TAG_MSG_TYPE] = MSG_TYPE_CREATE_PIN_HOLDER_RESP;
967     jsonObject[TAG_PIN_TYPE] = DmPinType::QR_CODE;
968     jsonObject[TAG_PAYLOAD] = PAY_LOAD;
969     jsonObject[TAG_REPLY] = REPLY_FAILED;
970     std::string message = SafetyDump(jsonObject);
971 
972     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
973     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
974     pinHolder->OnSessionOpened(SESSION_ID, SESSION_ID_INVALID, RESULT);
975     pinHolder->OnDataReceived(SESSION_ID, message);
976     pinHolder->OnSessionClosed(SESSION_ID);
977     EXPECT_EQ(pinHolder->sessionId_, SESSION_ID_INVALID);
978 }
979 
980 HWTEST_F(DmPinHolderTest, DestroyMsgScene_101, testing::ext::TestSize.Level0)
981 {
982     JsonObject jsonObject;
983     jsonObject[TAG_MSG_TYPE] = MSG_TYPE_DESTROY_PIN_HOLDER;
984     jsonObject[TAG_PIN_TYPE] = DmPinType::QR_CODE;
985     jsonObject[TAG_PAYLOAD] = PAY_LOAD;
986     std::string message = SafetyDump(jsonObject);
987 
988     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
989     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
990     pinHolder->OnSessionOpened(SESSION_ID, SESSION_ID_INVALID, RESULT);
991     pinHolder->OnDataReceived(SESSION_ID, message);
992     pinHolder->OnSessionClosed(SESSION_ID);
993     EXPECT_TRUE(pinHolder->isDestroy_.load());
994 }
995 
996 HWTEST_F(DmPinHolderTest, DestroyResMsgScene_101, testing::ext::TestSize.Level0)
997 {
998     JsonObject jsonObject;
999     jsonObject[TAG_MSG_TYPE] = MSG_TYPE_DESTROY_PIN_HOLDER_RESP;
1000     jsonObject[TAG_PIN_TYPE] = DmPinType::QR_CODE;
1001     jsonObject[TAG_PAYLOAD] = PAY_LOAD;
1002     std::string message = SafetyDump(jsonObject);
1003 
1004     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
1005     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
1006     pinHolder->OnSessionOpened(SESSION_ID, SESSION_ID_INVALID, RESULT);
1007     pinHolder->OnDataReceived(SESSION_ID, message);
1008     pinHolder->OnSessionClosed(SESSION_ID);
1009     EXPECT_TRUE(pinHolder->isDestroy_.load());
1010 }
1011 
1012 HWTEST_F(DmPinHolderTest, ChangeMsgScene_101, testing::ext::TestSize.Level0)
1013 {
1014     JsonObject jsonObject;
1015     jsonObject[TAG_MSG_TYPE] = MSG_TYPE_PIN_HOLDER_CHANGE;
1016     jsonObject[TAG_PIN_TYPE] = DmPinType::QR_CODE;
1017     jsonObject[TAG_PAYLOAD] = PAY_LOAD;
1018     std::string message = SafetyDump(jsonObject);
1019 
1020     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
1021     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
1022     pinHolder->OnSessionOpened(SESSION_ID, SESSION_ID_INVALID, RESULT);
1023     pinHolder->OnDataReceived(SESSION_ID, message);
1024     pinHolder->OnSessionClosed(SESSION_ID);
1025     EXPECT_TRUE(pinHolder->isDestroy_.load());
1026 }
1027 
1028 HWTEST_F(DmPinHolderTest, ChangeRespMsgScene_101, testing::ext::TestSize.Level0)
1029 {
1030     JsonObject jsonObject;
1031     jsonObject[TAG_MSG_TYPE] = MSG_TYPE_PIN_HOLDER_CHANGE_RESP;
1032     jsonObject[TAG_PIN_TYPE] = DmPinType::QR_CODE;
1033     jsonObject[TAG_PAYLOAD] = PAY_LOAD;
1034     std::string message = SafetyDump(jsonObject);
1035 
1036     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
1037     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
1038     pinHolder->OnSessionOpened(SESSION_ID, SESSION_ID_INVALID, RESULT);
1039     pinHolder->OnDataReceived(SESSION_ID, message);
1040     pinHolder->OnSessionClosed(SESSION_ID);
1041     EXPECT_TRUE(pinHolder->isDestroy_.load());
1042 }
1043 
1044 HWTEST_F(DmPinHolderTest, CloseSessionMsgScene_101, testing::ext::TestSize.Level0)
1045 {
1046     JsonObject jsonObject;
1047     jsonObject[TAG_MSG_TYPE] = MSG_TYPE_PIN_CLOSE_SESSION;
1048     jsonObject[TAG_PIN_TYPE] = DmPinType::QR_CODE;
1049     jsonObject[TAG_PAYLOAD] = PAY_LOAD;
1050     std::string message = SafetyDump(jsonObject);
1051 
1052     std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<IDeviceManagerServiceListenerTest>();
1053     std::shared_ptr<PinHolder> pinHolder = std::make_shared<PinHolder>(listener);
1054     pinHolder->OnSessionOpened(SESSION_ID, SESSION_ID_INVALID, RESULT);
1055     pinHolder->OnDataReceived(SESSION_ID, message);
1056     pinHolder->OnSessionClosed(SESSION_ID);
1057     EXPECT_EQ(pinHolder->sessionId_, SESSION_ID_INVALID);
1058 }
1059 } // namespace
1060 } // namespace DistributedHardware
1061 } // namespace OHOS