179a732c7Sopenharmony_ci/*
279a732c7Sopenharmony_ci * Copyright (c) 2022-2024 Huawei Device Co., Ltd.
379a732c7Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
479a732c7Sopenharmony_ci * you may not use this file except in compliance with the License.
579a732c7Sopenharmony_ci * You may obtain a copy of the License at
679a732c7Sopenharmony_ci *
779a732c7Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0
879a732c7Sopenharmony_ci *
979a732c7Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1079a732c7Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1179a732c7Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1279a732c7Sopenharmony_ci * See the License for the specific language governing permissions and
1379a732c7Sopenharmony_ci * limitations under the License.
1479a732c7Sopenharmony_ci */
1579a732c7Sopenharmony_ci
1679a732c7Sopenharmony_ci#include "UTTest_dm_discovery_manager.h"
1779a732c7Sopenharmony_ci
1879a732c7Sopenharmony_ci#include <iostream>
1979a732c7Sopenharmony_ci#include <string>
2079a732c7Sopenharmony_ci#include <unistd.h>
2179a732c7Sopenharmony_ci
2279a732c7Sopenharmony_ci#include "dm_log.h"
2379a732c7Sopenharmony_ci#include "dm_constants.h"
2479a732c7Sopenharmony_ci#include "dm_anonymous.h"
2579a732c7Sopenharmony_ci#include "ipc_server_listener.h"
2679a732c7Sopenharmony_ci#include "device_manager_service_listener.h"
2779a732c7Sopenharmony_ci#include "softbus_bus_center.h"
2879a732c7Sopenharmony_ci#include "device_manager_service_listener.h"
2979a732c7Sopenharmony_ci#include "softbus_error_code.h"
3079a732c7Sopenharmony_ci
3179a732c7Sopenharmony_cinamespace OHOS {
3279a732c7Sopenharmony_cinamespace DistributedHardware {
3379a732c7Sopenharmony_civoid DmDiscoveryManagerTest::SetUp()
3479a732c7Sopenharmony_ci{
3579a732c7Sopenharmony_ci}
3679a732c7Sopenharmony_ci
3779a732c7Sopenharmony_civoid DmDiscoveryManagerTest::TearDown()
3879a732c7Sopenharmony_ci{
3979a732c7Sopenharmony_ci}
4079a732c7Sopenharmony_ci
4179a732c7Sopenharmony_civoid DmDiscoveryManagerTest::SetUpTestCase()
4279a732c7Sopenharmony_ci{
4379a732c7Sopenharmony_ci}
4479a732c7Sopenharmony_ci
4579a732c7Sopenharmony_civoid DmDiscoveryManagerTest::TearDownTestCase()
4679a732c7Sopenharmony_ci{
4779a732c7Sopenharmony_ci}
4879a732c7Sopenharmony_ci
4979a732c7Sopenharmony_cinamespace {
5079a732c7Sopenharmony_cistd::shared_ptr<SoftbusConnector> softbusConnector_ = std::make_shared<SoftbusConnector>();
5179a732c7Sopenharmony_cistd::shared_ptr<DeviceManagerServiceListener> listener_ = std::make_shared<DeviceManagerServiceListener>();
5279a732c7Sopenharmony_cistd::shared_ptr<HiChainConnector> hiChainConnector_ = std::make_shared<HiChainConnector>();
5379a732c7Sopenharmony_cistd::shared_ptr<DmDiscoveryManager> discoveryMgr_ =
5479a732c7Sopenharmony_ci    std::make_shared<DmDiscoveryManager>(softbusConnector_, listener_, hiChainConnector_);
5579a732c7Sopenharmony_ci
5679a732c7Sopenharmony_ci/**
5779a732c7Sopenharmony_ci * @tc.name: DmDiscoveryManager_001
5879a732c7Sopenharmony_ci * @tc.desc: Test whether the DmDiscoveryManager function can generate a new pointer
5979a732c7Sopenharmony_ci * @tc.type: FUNC
6079a732c7Sopenharmony_ci * @tc.require: AR000GHSJK
6179a732c7Sopenharmony_ci */
6279a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, DmDiscoveryManager_001, testing::ext::TestSize.Level0)
6379a732c7Sopenharmony_ci{
6479a732c7Sopenharmony_ci    std::shared_ptr<DmDiscoveryManager> Test =
6579a732c7Sopenharmony_ci        std::make_shared<DmDiscoveryManager>(softbusConnector_, listener_, hiChainConnector_);
6679a732c7Sopenharmony_ci    ASSERT_NE(Test, nullptr);
6779a732c7Sopenharmony_ci}
6879a732c7Sopenharmony_ci
6979a732c7Sopenharmony_ci/**
7079a732c7Sopenharmony_ci * @tc.name: DmDiscoveryManager_002
7179a732c7Sopenharmony_ci * @tc.desc: Test whether the DmDiscoveryManager function can delete a new pointer
7279a732c7Sopenharmony_ci * @tc.type: FUNC
7379a732c7Sopenharmony_ci * @tc.require: AR000GHSJK
7479a732c7Sopenharmony_ci */
7579a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, DmDiscoveryManager_002, testing::ext::TestSize.Level0)
7679a732c7Sopenharmony_ci{
7779a732c7Sopenharmony_ci    std::shared_ptr<DmDiscoveryManager> Test =
7879a732c7Sopenharmony_ci        std::make_shared<DmDiscoveryManager>(softbusConnector_, listener_, hiChainConnector_);
7979a732c7Sopenharmony_ci    Test.reset();
8079a732c7Sopenharmony_ci    EXPECT_EQ(Test, nullptr);
8179a732c7Sopenharmony_ci}
8279a732c7Sopenharmony_ci
8379a732c7Sopenharmony_ci/**
8479a732c7Sopenharmony_ci * @tc.name:StartDeviceDiscovery_001
8579a732c7Sopenharmony_ci * @tc.desc: keeping pkgame unchanged, call StartDeviceDiscovery once,
8679a732c7Sopenharmony_ci *           extra is not empty and return ERR_DM_INPUT_PARA_INVALID
8779a732c7Sopenharmony_ci * @tc.type: FUNC
8879a732c7Sopenharmony_ci * @tc.require: AR000GHSJK
8979a732c7Sopenharmony_ci */
9079a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, StartDeviceDiscovery_001, testing::ext::TestSize.Level0)
9179a732c7Sopenharmony_ci{
9279a732c7Sopenharmony_ci    std::string pkgName = "com.ohos.helloworld";
9379a732c7Sopenharmony_ci    DmSubscribeInfo subscribeInfo;
9479a732c7Sopenharmony_ci    subscribeInfo.subscribeId = 1;
9579a732c7Sopenharmony_ci    const std::string extra = "com.ohos.test";
9679a732c7Sopenharmony_ci    int32_t ret = discoveryMgr_->StartDeviceDiscovery(pkgName, subscribeInfo, extra);
9779a732c7Sopenharmony_ci    EXPECT_EQ(ret, ERR_DM_INPUT_PARA_INVALID);
9879a732c7Sopenharmony_ci    discoveryMgr_->StopDeviceDiscovery(pkgName, subscribeInfo.subscribeId);
9979a732c7Sopenharmony_ci}
10079a732c7Sopenharmony_ci
10179a732c7Sopenharmony_ci/**
10279a732c7Sopenharmony_ci * @tc.name:StartDeviceDiscovery_002
10379a732c7Sopenharmony_ci * @tc.desc: keeping pkgame unchanged, call StartDeviceDiscovery once,
10479a732c7Sopenharmony_ci *           extra is empty and return ERR_DM_DISCOVERY_REPEATED
10579a732c7Sopenharmony_ci * @tc.type: FUNC
10679a732c7Sopenharmony_ci * @tc.require: AR000GHSJK
10779a732c7Sopenharmony_ci */
10879a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, StartDeviceDiscovery_002, testing::ext::TestSize.Level0)
10979a732c7Sopenharmony_ci{
11079a732c7Sopenharmony_ci    std::string pkgName = "com.ohos.helloworld";
11179a732c7Sopenharmony_ci    DmSubscribeInfo subscribeInfo;
11279a732c7Sopenharmony_ci    subscribeInfo.subscribeId = 1;
11379a732c7Sopenharmony_ci    std::string extra;
11479a732c7Sopenharmony_ci    std::queue<std::string> emptyQueue;
11579a732c7Sopenharmony_ci    discoveryMgr_->discoveryQueue_ = emptyQueue;
11679a732c7Sopenharmony_ci    discoveryMgr_->discoveryQueue_.push(pkgName);
11779a732c7Sopenharmony_ci    int32_t ret = discoveryMgr_->StartDeviceDiscovery(pkgName, subscribeInfo, extra);
11879a732c7Sopenharmony_ci    EXPECT_EQ(ret, ERR_DM_DISCOVERY_REPEATED);
11979a732c7Sopenharmony_ci    discoveryMgr_->StopDeviceDiscovery(pkgName, subscribeInfo.subscribeId);
12079a732c7Sopenharmony_ci}
12179a732c7Sopenharmony_ci
12279a732c7Sopenharmony_ci/**
12379a732c7Sopenharmony_ci * @tc.name:StartDeviceDiscovery_003
12479a732c7Sopenharmony_ci * @tc.desc: keeping pkgame unchanged, call StartDeviceDiscovery once,
12579a732c7Sopenharmony_ci *           extra is empty,  discoveryQueue_ is empty, and return SOFTBUS_INVALID_PARAM
12679a732c7Sopenharmony_ci * @tc.type: FUNC
12779a732c7Sopenharmony_ci * @tc.require: AR000GHSJK
12879a732c7Sopenharmony_ci */
12979a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, StartDeviceDiscovery_003, testing::ext::TestSize.Level0)
13079a732c7Sopenharmony_ci{
13179a732c7Sopenharmony_ci    std::string pkgName = "com.ohos.helloworld";
13279a732c7Sopenharmony_ci    std::string extra;
13379a732c7Sopenharmony_ci    DmSubscribeInfo subscribeInfo;
13479a732c7Sopenharmony_ci    subscribeInfo.subscribeId = 1;
13579a732c7Sopenharmony_ci    std::queue<std::string> emptyQueue;
13679a732c7Sopenharmony_ci    discoveryMgr_->discoveryQueue_ = emptyQueue;
13779a732c7Sopenharmony_ci    int32_t ret = discoveryMgr_->StartDeviceDiscovery(pkgName, subscribeInfo, extra);
13879a732c7Sopenharmony_ci    ASSERT_TRUE(ret == SOFTBUS_INVALID_PARAM || ret == SOFTBUS_NETWORK_NOT_INIT || ret == SOFTBUS_NETWORK_LOOPER_ERR);
13979a732c7Sopenharmony_ci    discoveryMgr_->StopDeviceDiscovery(pkgName, subscribeInfo.subscribeId);
14079a732c7Sopenharmony_ci}
14179a732c7Sopenharmony_ci
14279a732c7Sopenharmony_ci/**
14379a732c7Sopenharmony_ci * @tc.name:StartDeviceDiscovery_004
14479a732c7Sopenharmony_ci * @tc.desc: pkgame changed, call StartDeviceDiscovery once,
14579a732c7Sopenharmony_ci *           discoveryQueue is not empty and return ERR_DM_DISCOVERY_FAILED
14679a732c7Sopenharmony_ci * @tc.type: FUNC
14779a732c7Sopenharmony_ci * @tc.require: AR000GHSJK
14879a732c7Sopenharmony_ci */
14979a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, StartDeviceDiscovery_004, testing::ext::TestSize.Level0)
15079a732c7Sopenharmony_ci{
15179a732c7Sopenharmony_ci    std::string pkgName = "com.ohos.helloworld";
15279a732c7Sopenharmony_ci    uint16_t subscribeId = 1;
15379a732c7Sopenharmony_ci    std::string filterOptions;
15479a732c7Sopenharmony_ci    std::queue<std::string> emptyQueue;
15579a732c7Sopenharmony_ci    discoveryMgr_->discoveryQueue_ = emptyQueue;
15679a732c7Sopenharmony_ci    discoveryMgr_->discoveryQueue_.push(pkgName);
15779a732c7Sopenharmony_ci    int32_t ret = discoveryMgr_->StartDeviceDiscovery(pkgName, subscribeId, filterOptions);
15879a732c7Sopenharmony_ci    ASSERT_EQ(ret, ERR_DM_DISCOVERY_REPEATED);
15979a732c7Sopenharmony_ci    discoveryMgr_->StopDeviceDiscovery(pkgName, subscribeId);
16079a732c7Sopenharmony_ci}
16179a732c7Sopenharmony_ci
16279a732c7Sopenharmony_ci/**
16379a732c7Sopenharmony_ci * @tc.name:StartDeviceDiscovery_005
16479a732c7Sopenharmony_ci * @tc.desc: pkgame changed, call StartDeviceDiscovery once,
16579a732c7Sopenharmony_ci *           discoveryQueue is empty and return SOFTBUS_IPC_ERR
16679a732c7Sopenharmony_ci * @tc.type: FUNC
16779a732c7Sopenharmony_ci * @tc.require: AR000GHSJK
16879a732c7Sopenharmony_ci */
16979a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, StartDeviceDiscovery_005, testing::ext::TestSize.Level0)
17079a732c7Sopenharmony_ci{
17179a732c7Sopenharmony_ci    std::string pkgName = "com.ohos.helloworld";
17279a732c7Sopenharmony_ci    uint16_t subscribeId = 1;
17379a732c7Sopenharmony_ci    std::string filterOptions;
17479a732c7Sopenharmony_ci    std::queue<std::string> emptyQueue;
17579a732c7Sopenharmony_ci    discoveryMgr_->discoveryQueue_ = emptyQueue;
17679a732c7Sopenharmony_ci    int32_t ret = discoveryMgr_->StartDeviceDiscovery(pkgName, subscribeId, filterOptions);
17779a732c7Sopenharmony_ci    ASSERT_TRUE(ret == SOFTBUS_IPC_ERR || ret == SOFTBUS_NETWORK_NOT_INIT || ret == SOFTBUS_NETWORK_LOOPER_ERR);
17879a732c7Sopenharmony_ci    discoveryMgr_->StopDeviceDiscovery(pkgName, subscribeId);
17979a732c7Sopenharmony_ci}
18079a732c7Sopenharmony_ci
18179a732c7Sopenharmony_ci/**
18279a732c7Sopenharmony_ci * @tc.name: StopDeviceDiscovery_001
18379a732c7Sopenharmony_ci * @tc.desc: return ERR_DM_INPUT_PARA_INVALID
18479a732c7Sopenharmony_ci * @tc.type: FUNC
18579a732c7Sopenharmony_ci * @tc.require: AR000GHSJK
18679a732c7Sopenharmony_ci */
18779a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, StopDeviceDiscovery_001, testing::ext::TestSize.Level0)
18879a732c7Sopenharmony_ci{
18979a732c7Sopenharmony_ci    std::string pkgName;
19079a732c7Sopenharmony_ci    uint16_t subscribeId = 1;
19179a732c7Sopenharmony_ci    int32_t ret = discoveryMgr_->StopDeviceDiscovery(pkgName, subscribeId);
19279a732c7Sopenharmony_ci    EXPECT_EQ(ret, ERR_DM_INPUT_PARA_INVALID);
19379a732c7Sopenharmony_ci}
19479a732c7Sopenharmony_ci
19579a732c7Sopenharmony_ci/**
19679a732c7Sopenharmony_ci * @tc.name: StopDeviceDiscovery_002
19779a732c7Sopenharmony_ci * @tc.desc: return SOFTBUS_IPC_ERR
19879a732c7Sopenharmony_ci * @tc.type: FUNC
19979a732c7Sopenharmony_ci * @tc.require: AR000GHSJK
20079a732c7Sopenharmony_ci */
20179a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, StopDeviceDiscovery_002, testing::ext::TestSize.Level0)
20279a732c7Sopenharmony_ci{
20379a732c7Sopenharmony_ci    std::string pkgName = "com.ohos.helloworld";
20479a732c7Sopenharmony_ci    uint16_t subscribeId = 1;
20579a732c7Sopenharmony_ci    int32_t ret = discoveryMgr_->StopDeviceDiscovery(pkgName, subscribeId);
20679a732c7Sopenharmony_ci    EXPECT_TRUE(ret == SOFTBUS_IPC_ERR || ret == SOFTBUS_NETWORK_NOT_INIT || ret == SOFTBUS_NETWORK_LOOPER_ERR);
20779a732c7Sopenharmony_ci}
20879a732c7Sopenharmony_ci
20979a732c7Sopenharmony_ci/**
21079a732c7Sopenharmony_ci * @tc.name: OnDeviceFound_001
21179a732c7Sopenharmony_ci * @tc.desc: The OnDeviceFound function does the correct case and assigns pkgName
21279a732c7Sopenharmony_ci * @tc.type: FUNC
21379a732c7Sopenharmony_ci * @tc.require: AR000GHSJK
21479a732c7Sopenharmony_ci */
21579a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, OnDeviceFound_001, testing::ext::TestSize.Level0)
21679a732c7Sopenharmony_ci{
21779a732c7Sopenharmony_ci    std::string pkgName = "com.ohos.helloworld";
21879a732c7Sopenharmony_ci    std::string filterOptions = R"(
21979a732c7Sopenharmony_ci    {
22079a732c7Sopenharmony_ci        "filter_op": "OR",
22179a732c7Sopenharmony_ci        "filters":
22279a732c7Sopenharmony_ci        [
22379a732c7Sopenharmony_ci            {
22479a732c7Sopenharmony_ci                "type" : "credible",
22579a732c7Sopenharmony_ci                "value" : 0
22679a732c7Sopenharmony_ci            }
22779a732c7Sopenharmony_ci        ]
22879a732c7Sopenharmony_ci    }
22979a732c7Sopenharmony_ci    )";
23079a732c7Sopenharmony_ci    DmDeviceFilterOption dmFilter;
23179a732c7Sopenharmony_ci    dmFilter.TransformToFilter(filterOptions);
23279a732c7Sopenharmony_ci    uint16_t aaa = 11;
23379a732c7Sopenharmony_ci    DmDiscoveryContext context { pkgName, filterOptions, aaa, dmFilter.filterOp_, dmFilter.filters_ };
23479a732c7Sopenharmony_ci    discoveryMgr_->discoveryContextMap_[pkgName] = context;
23579a732c7Sopenharmony_ci    sleep(1);
23679a732c7Sopenharmony_ci    DmDeviceInfo info;
23779a732c7Sopenharmony_ci    info.deviceId[0] = '\0';
23879a732c7Sopenharmony_ci    info.deviceName[0] = '\0';
23979a732c7Sopenharmony_ci    bool isOnline = false;
24079a732c7Sopenharmony_ci    discoveryMgr_->OnDeviceFound(pkgName, info, isOnline);
24179a732c7Sopenharmony_ci    EXPECT_EQ(discoveryMgr_->discoveryContextMap_.empty(), false);
24279a732c7Sopenharmony_ci}
24379a732c7Sopenharmony_ci
24479a732c7Sopenharmony_ci/**
24579a732c7Sopenharmony_ci * @tc.name: OnDeviceFound_002
24679a732c7Sopenharmony_ci * @tc.desc: set pkgName not null and discoveryContextMap_ null and return
24779a732c7Sopenharmony_ci * @tc.type: FUNC
24879a732c7Sopenharmony_ci * @tc.require: AR000GHSJK
24979a732c7Sopenharmony_ci */
25079a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, OnDeviceFound_002, testing::ext::TestSize.Level0)
25179a732c7Sopenharmony_ci{
25279a732c7Sopenharmony_ci    std::string pkgName = "com.ohos.helloworld";
25379a732c7Sopenharmony_ci    std::string filterOptions = R"(
25479a732c7Sopenharmony_ci    {
25579a732c7Sopenharmony_ci        "filter_op": "AND",
25679a732c7Sopenharmony_ci        "filters":
25779a732c7Sopenharmony_ci        [
25879a732c7Sopenharmony_ci            {
25979a732c7Sopenharmony_ci                "type" : "credible",
26079a732c7Sopenharmony_ci                "value" : 2
26179a732c7Sopenharmony_ci            }
26279a732c7Sopenharmony_ci        ]
26379a732c7Sopenharmony_ci    }
26479a732c7Sopenharmony_ci    )";
26579a732c7Sopenharmony_ci    DmDeviceFilterOption dmFilter;
26679a732c7Sopenharmony_ci    dmFilter.TransformToFilter(filterOptions);
26779a732c7Sopenharmony_ci    uint16_t aaa = 11;
26879a732c7Sopenharmony_ci    DmDiscoveryContext context { pkgName, filterOptions, aaa, dmFilter.filterOp_, dmFilter.filters_ };
26979a732c7Sopenharmony_ci    discoveryMgr_->discoveryContextMap_[pkgName] = context;
27079a732c7Sopenharmony_ci    DmDeviceInfo info;
27179a732c7Sopenharmony_ci    bool isOnline = false;
27279a732c7Sopenharmony_ci    discoveryMgr_->OnDeviceFound(pkgName, info, isOnline);
27379a732c7Sopenharmony_ci    int ret = discoveryMgr_->discoveryContextMap_.count(pkgName);
27479a732c7Sopenharmony_ci    EXPECT_EQ(ret, 1);
27579a732c7Sopenharmony_ci}
27679a732c7Sopenharmony_ci
27779a732c7Sopenharmony_ci/**
27879a732c7Sopenharmony_ci * @tc.name: OnDeviceFound_003
27979a732c7Sopenharmony_ci * @tc.desc: set pkgName not null
28079a732c7Sopenharmony_ci * @tc.type: FUNC
28179a732c7Sopenharmony_ci * @tc.require: AR000GHSJK
28279a732c7Sopenharmony_ci */
28379a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, OnDeviceFound_003, testing::ext::TestSize.Level0)
28479a732c7Sopenharmony_ci{
28579a732c7Sopenharmony_ci    std::string pkgName = "com.ohos.helloworld";
28679a732c7Sopenharmony_ci    DmDeviceInfo info;
28779a732c7Sopenharmony_ci    bool isOnline = true;
28879a732c7Sopenharmony_ci    discoveryMgr_->discoveryContextMap_.clear();
28979a732c7Sopenharmony_ci    discoveryMgr_->OnDeviceFound(pkgName, info, isOnline);
29079a732c7Sopenharmony_ci    EXPECT_EQ(discoveryMgr_->discoveryContextMap_.empty(), true);
29179a732c7Sopenharmony_ci}
29279a732c7Sopenharmony_ci
29379a732c7Sopenharmony_ci/**
29479a732c7Sopenharmony_ci * @tc.name: OnDeviceFound_004
29579a732c7Sopenharmony_ci * @tc.desc: set pkgName not null
29679a732c7Sopenharmony_ci * @tc.type: FUNC
29779a732c7Sopenharmony_ci * @tc.require: AR000GHSJK
29879a732c7Sopenharmony_ci */
29979a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, OnDeviceFound_004, testing::ext::TestSize.Level0)
30079a732c7Sopenharmony_ci{
30179a732c7Sopenharmony_ci    std::string pkgName = "com.ohos.helloworld";
30279a732c7Sopenharmony_ci    DmDeviceInfo info;
30379a732c7Sopenharmony_ci    bool isOnline = true;
30479a732c7Sopenharmony_ci    DmDiscoveryContext context;
30579a732c7Sopenharmony_ci    discoveryMgr_->discoveryContextMap_.emplace(pkgName, context);
30679a732c7Sopenharmony_ci    discoveryMgr_->OnDeviceFound(pkgName, info, isOnline);
30779a732c7Sopenharmony_ci    EXPECT_EQ(discoveryMgr_->discoveryContextMap_.empty(), false);
30879a732c7Sopenharmony_ci}
30979a732c7Sopenharmony_ci
31079a732c7Sopenharmony_ci/**
31179a732c7Sopenharmony_ci * @tc.name: OnDeviceFound_005
31279a732c7Sopenharmony_ci * @tc.desc: set pkgName not null
31379a732c7Sopenharmony_ci * @tc.type: FUNC
31479a732c7Sopenharmony_ci * @tc.require: AR000GHSJK
31579a732c7Sopenharmony_ci */
31679a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, OnDeviceFound_005, testing::ext::TestSize.Level0)
31779a732c7Sopenharmony_ci{
31879a732c7Sopenharmony_ci    std::string pkgName = "com.ohos.helloworld";
31979a732c7Sopenharmony_ci    DmDeviceBasicInfo info;
32079a732c7Sopenharmony_ci    int32_t range = 0;
32179a732c7Sopenharmony_ci    bool isOnline = true;
32279a732c7Sopenharmony_ci    discoveryMgr_->discoveryContextMap_.clear();
32379a732c7Sopenharmony_ci    discoveryMgr_->OnDeviceFound(pkgName, info, range, isOnline);
32479a732c7Sopenharmony_ci    EXPECT_EQ(discoveryMgr_->discoveryContextMap_.empty(), true);
32579a732c7Sopenharmony_ci}
32679a732c7Sopenharmony_ci
32779a732c7Sopenharmony_ci/**
32879a732c7Sopenharmony_ci * @tc.name: OnDeviceFound_006
32979a732c7Sopenharmony_ci * @tc.desc: set pkgName not null
33079a732c7Sopenharmony_ci * @tc.type: FUNC
33179a732c7Sopenharmony_ci * @tc.require: AR000GHSJK
33279a732c7Sopenharmony_ci */
33379a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, OnDeviceFound_006, testing::ext::TestSize.Level0)
33479a732c7Sopenharmony_ci{
33579a732c7Sopenharmony_ci    std::string pkgName = "com.ohos.helloworld";
33679a732c7Sopenharmony_ci    DmDeviceBasicInfo info;
33779a732c7Sopenharmony_ci    int32_t range = 0;
33879a732c7Sopenharmony_ci    bool isOnline = true;
33979a732c7Sopenharmony_ci    DmDiscoveryContext context;
34079a732c7Sopenharmony_ci    discoveryMgr_->discoveryContextMap_.emplace(pkgName, context);
34179a732c7Sopenharmony_ci    discoveryMgr_->OnDeviceFound(pkgName, info, range, isOnline);
34279a732c7Sopenharmony_ci    EXPECT_EQ(discoveryMgr_->discoveryContextMap_.empty(), false);
34379a732c7Sopenharmony_ci}
34479a732c7Sopenharmony_ci
34579a732c7Sopenharmony_ci/**
34679a732c7Sopenharmony_ci * @tc.name: GetAuthForm_001
34779a732c7Sopenharmony_ci * @tc.desc: set localDeviceId null
34879a732c7Sopenharmony_ci * @tc.type: FUNC
34979a732c7Sopenharmony_ci * @tc.require: AR000GHSJK
35079a732c7Sopenharmony_ci */
35179a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, GetAuthForm_001, testing::ext::TestSize.Level0)
35279a732c7Sopenharmony_ci{
35379a732c7Sopenharmony_ci    std::string localDeviceId;
35479a732c7Sopenharmony_ci    std::string deviceId;
35579a732c7Sopenharmony_ci    bool isTrusted = true;
35679a732c7Sopenharmony_ci    DmAuthForm authForm;
35779a732c7Sopenharmony_ci    int32_t ret = discoveryMgr_->GetAuthForm(localDeviceId, deviceId, isTrusted, authForm);
35879a732c7Sopenharmony_ci    EXPECT_EQ(ret, ERR_DM_INPUT_PARA_INVALID);
35979a732c7Sopenharmony_ci}
36079a732c7Sopenharmony_ci
36179a732c7Sopenharmony_ci/**
36279a732c7Sopenharmony_ci * @tc.name: GetAuthForm_002
36379a732c7Sopenharmony_ci * @tc.desc: set localDeviceId not null
36479a732c7Sopenharmony_ci * @tc.type: FUNC
36579a732c7Sopenharmony_ci * @tc.require: AR000GHSJK
36679a732c7Sopenharmony_ci */
36779a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, GetAuthForm_002, testing::ext::TestSize.Level0)
36879a732c7Sopenharmony_ci{
36979a732c7Sopenharmony_ci    std::string localDeviceId = "125462";
37079a732c7Sopenharmony_ci    std::string deviceId;
37179a732c7Sopenharmony_ci    bool isTrusted = true;
37279a732c7Sopenharmony_ci    DmAuthForm authForm;
37379a732c7Sopenharmony_ci    int32_t ret = discoveryMgr_->GetAuthForm(localDeviceId, deviceId, isTrusted, authForm);
37479a732c7Sopenharmony_ci    EXPECT_EQ(ret, ERR_DM_INPUT_PARA_INVALID);
37579a732c7Sopenharmony_ci}
37679a732c7Sopenharmony_ci
37779a732c7Sopenharmony_ci/**
37879a732c7Sopenharmony_ci * @tc.name: GetAuthForm_003
37979a732c7Sopenharmony_ci * @tc.desc: set localDeviceId not null
38079a732c7Sopenharmony_ci * @tc.type: FUNC
38179a732c7Sopenharmony_ci * @tc.require: AR000GHSJK
38279a732c7Sopenharmony_ci */
38379a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, GetAuthForm_003, testing::ext::TestSize.Level0)
38479a732c7Sopenharmony_ci{
38579a732c7Sopenharmony_ci    std::string localDeviceId = "125462";
38679a732c7Sopenharmony_ci    std::string deviceId = "236541";
38779a732c7Sopenharmony_ci    bool isTrusted = true;
38879a732c7Sopenharmony_ci    DmAuthForm authForm;
38979a732c7Sopenharmony_ci    discoveryMgr_->hiChainConnector_ = nullptr;
39079a732c7Sopenharmony_ci    int32_t ret = discoveryMgr_->GetAuthForm(localDeviceId, deviceId, isTrusted, authForm);
39179a732c7Sopenharmony_ci    EXPECT_EQ(ret, ERR_DM_POINT_NULL);
39279a732c7Sopenharmony_ci}
39379a732c7Sopenharmony_ci
39479a732c7Sopenharmony_ci/**
39579a732c7Sopenharmony_ci * @tc.name: GetAuthForm_004
39679a732c7Sopenharmony_ci * @tc.desc: set localDeviceId not null
39779a732c7Sopenharmony_ci * @tc.type: FUNC
39879a732c7Sopenharmony_ci * @tc.require: AR000GHSJK
39979a732c7Sopenharmony_ci */
40079a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, GetAuthForm_004, testing::ext::TestSize.Level0)
40179a732c7Sopenharmony_ci{
40279a732c7Sopenharmony_ci    std::string localDeviceId = "125462";
40379a732c7Sopenharmony_ci    std::string deviceId = "236541";
40479a732c7Sopenharmony_ci    bool isTrusted = true;
40579a732c7Sopenharmony_ci    DmAuthForm authForm;
40679a732c7Sopenharmony_ci    discoveryMgr_->softbusConnector_ = nullptr;
40779a732c7Sopenharmony_ci    int32_t ret = discoveryMgr_->GetAuthForm(localDeviceId, deviceId, isTrusted, authForm);
40879a732c7Sopenharmony_ci    EXPECT_EQ(ret, ERR_DM_POINT_NULL);
40979a732c7Sopenharmony_ci}
41079a732c7Sopenharmony_ci
41179a732c7Sopenharmony_ci/**
41279a732c7Sopenharmony_ci * @tc.name: GetAuthForm_005
41379a732c7Sopenharmony_ci * @tc.desc: set localDeviceId not null
41479a732c7Sopenharmony_ci * @tc.type: FUNC
41579a732c7Sopenharmony_ci * @tc.require: AR000GHSJK
41679a732c7Sopenharmony_ci */
41779a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, GetAuthForm_005, testing::ext::TestSize.Level0)
41879a732c7Sopenharmony_ci{
41979a732c7Sopenharmony_ci    std::string localDeviceId = "125462";
42079a732c7Sopenharmony_ci    std::string deviceId = "236541";
42179a732c7Sopenharmony_ci    bool isTrusted = true;
42279a732c7Sopenharmony_ci    DmAuthForm authForm;
42379a732c7Sopenharmony_ci    discoveryMgr_->softbusConnector_ = std::make_shared<SoftbusConnector>();
42479a732c7Sopenharmony_ci    discoveryMgr_->hiChainConnector_ = std::make_shared<HiChainConnector>();
42579a732c7Sopenharmony_ci    int32_t ret = discoveryMgr_->GetAuthForm(localDeviceId, deviceId, isTrusted, authForm);
42679a732c7Sopenharmony_ci    EXPECT_EQ(ret, DM_OK);
42779a732c7Sopenharmony_ci}
42879a732c7Sopenharmony_ci
42979a732c7Sopenharmony_ci/**
43079a732c7Sopenharmony_ci * @tc.name: OnDiscoveryFailed_001
43179a732c7Sopenharmony_ci * @tc.desc: The OnDeviceFound function takes the wrong case and emptying pkgName
43279a732c7Sopenharmony_ci * @tc.type: FUNC
43379a732c7Sopenharmony_ci * @tc.require: AR000GHSJK
43479a732c7Sopenharmony_ci */
43579a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, OnDiscoveryFailed_001, testing::ext::TestSize.Level0)
43679a732c7Sopenharmony_ci{
43779a732c7Sopenharmony_ci    std::string pkgName = "com.ohos.helloworld";
43879a732c7Sopenharmony_ci    int32_t subscribeId = 1;
43979a732c7Sopenharmony_ci    int32_t failedReason = 3;
44079a732c7Sopenharmony_ci    discoveryMgr_->OnDiscoveryFailed(pkgName, subscribeId, failedReason);
44179a732c7Sopenharmony_ci    EXPECT_EQ(discoveryMgr_->discoveryContextMap_.empty(), true);
44279a732c7Sopenharmony_ci}
44379a732c7Sopenharmony_ci
44479a732c7Sopenharmony_ci/**
44579a732c7Sopenharmony_ci * @tc.name: OnDiscoveryFailed_002
44679a732c7Sopenharmony_ci * @tc.desc: The OnDeviceFound function takes the wrong case and emptying pkgName
44779a732c7Sopenharmony_ci * @tc.type: FUNC
44879a732c7Sopenharmony_ci * @tc.require: AR000GHSJK
44979a732c7Sopenharmony_ci */
45079a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, OnDiscoveryFailed_002, testing::ext::TestSize.Level0)
45179a732c7Sopenharmony_ci{
45279a732c7Sopenharmony_ci    std::string pkgName;
45379a732c7Sopenharmony_ci    int32_t subscribeId = 1;
45479a732c7Sopenharmony_ci    int32_t failedReason = 3;
45579a732c7Sopenharmony_ci    discoveryMgr_->OnDiscoveryFailed(pkgName, subscribeId, failedReason);
45679a732c7Sopenharmony_ci    int ret1 = discoveryMgr_->discoveryContextMap_.count(pkgName);
45779a732c7Sopenharmony_ci    EXPECT_EQ(ret1, 0);
45879a732c7Sopenharmony_ci}
45979a732c7Sopenharmony_ci
46079a732c7Sopenharmony_ci/**
46179a732c7Sopenharmony_ci * @tc.name: OnDiscoveryFailed_003
46279a732c7Sopenharmony_ci * @tc.desc: The OnDeviceFound function takes the wrong case and emptying pkgName
46379a732c7Sopenharmony_ci * @tc.type: FUNC
46479a732c7Sopenharmony_ci * @tc.require: AR000GHSJK
46579a732c7Sopenharmony_ci */
46679a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, OnDiscoveryFailed_003, testing::ext::TestSize.Level0)
46779a732c7Sopenharmony_ci{
46879a732c7Sopenharmony_ci    std::string pkgName = "com.ohos.helloworld";
46979a732c7Sopenharmony_ci    int32_t subscribeId = 1;
47079a732c7Sopenharmony_ci    int32_t failedReason = 3;
47179a732c7Sopenharmony_ci    discoveryMgr_->discoveryQueue_.push(pkgName);
47279a732c7Sopenharmony_ci    DmDiscoveryContext context;
47379a732c7Sopenharmony_ci    discoveryMgr_->discoveryContextMap_.emplace(pkgName, context);
47479a732c7Sopenharmony_ci    discoveryMgr_->OnDiscoveryFailed(pkgName, subscribeId, failedReason);
47579a732c7Sopenharmony_ci    EXPECT_EQ(discoveryMgr_->discoveryContextMap_.empty(), true);
47679a732c7Sopenharmony_ci}
47779a732c7Sopenharmony_ci
47879a732c7Sopenharmony_ci/**
47979a732c7Sopenharmony_ci * @tc.name: OnDiscoverySuccess_001
48079a732c7Sopenharmony_ci * @tc.desc: The OnDeviceFound function takes the wrong case and return pkgName
48179a732c7Sopenharmony_ci * @tc.type: FUNC
48279a732c7Sopenharmony_ci * @tc.require: AR000GHSJK
48379a732c7Sopenharmony_ci */
48479a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, OnDiscoverySuccess_001, testing::ext::TestSize.Level0)
48579a732c7Sopenharmony_ci{
48679a732c7Sopenharmony_ci    std::string pkgName = "com.ohos.helloworld";
48779a732c7Sopenharmony_ci    int32_t subscribeId = 1;
48879a732c7Sopenharmony_ci    discoveryMgr_->OnDiscoverySuccess(pkgName, subscribeId);
48979a732c7Sopenharmony_ci    EXPECT_EQ(discoveryMgr_->discoveryContextMap_.empty(), false);
49079a732c7Sopenharmony_ci}
49179a732c7Sopenharmony_ci
49279a732c7Sopenharmony_ci/**
49379a732c7Sopenharmony_ci * @tc.name: OnDiscoverySuccess_002
49479a732c7Sopenharmony_ci * @tc.desc: set pkgName null and return discoveryContextMap_ null and return pkgName(null)
49579a732c7Sopenharmony_ci * @tc.type: FUNC
49679a732c7Sopenharmony_ci * @tc.require: AR000GHSJK
49779a732c7Sopenharmony_ci */
49879a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, OnDiscoverySuccess_002, testing::ext::TestSize.Level0)
49979a732c7Sopenharmony_ci{
50079a732c7Sopenharmony_ci    std::string pkgName;
50179a732c7Sopenharmony_ci    int32_t subscribeId = 1;
50279a732c7Sopenharmony_ci    discoveryMgr_->OnDiscoverySuccess(pkgName, subscribeId);
50379a732c7Sopenharmony_ci    int ret = discoveryMgr_->discoveryContextMap_.count(pkgName);
50479a732c7Sopenharmony_ci    EXPECT_EQ(ret, 1);
50579a732c7Sopenharmony_ci}
50679a732c7Sopenharmony_ci
50779a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, HandleDiscoveryTimeout_001, testing::ext::TestSize.Level0)
50879a732c7Sopenharmony_ci{
50979a732c7Sopenharmony_ci    std::string pkgName;
51079a732c7Sopenharmony_ci    std::queue<std::string> emptyQueue;
51179a732c7Sopenharmony_ci    discoveryMgr_->discoveryQueue_ = emptyQueue;
51279a732c7Sopenharmony_ci    discoveryMgr_->HandleDiscoveryTimeout(pkgName);
51379a732c7Sopenharmony_ci    EXPECT_EQ(discoveryMgr_->discoveryQueue_.empty(), true);
51479a732c7Sopenharmony_ci}
51579a732c7Sopenharmony_ci
51679a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, HandleDiscoveryTimeout_002, testing::ext::TestSize.Level0)
51779a732c7Sopenharmony_ci{
51879a732c7Sopenharmony_ci    std::string pkgName = "com.ohos.helloworld_new";
51979a732c7Sopenharmony_ci    discoveryMgr_->discoveryQueue_.push(pkgName);
52079a732c7Sopenharmony_ci    discoveryMgr_->HandleDiscoveryTimeout(pkgName);
52179a732c7Sopenharmony_ci    EXPECT_EQ(discoveryMgr_->discoveryQueue_.empty(), false);
52279a732c7Sopenharmony_ci}
52379a732c7Sopenharmony_ci
52479a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, HandleDiscoveryTimeout_003, testing::ext::TestSize.Level0)
52579a732c7Sopenharmony_ci{
52679a732c7Sopenharmony_ci    std::string pkgName = "com.ohos.helloworld_new";
52779a732c7Sopenharmony_ci    discoveryMgr_->discoveryQueue_.push(pkgName);
52879a732c7Sopenharmony_ci    DmDiscoveryContext context;
52979a732c7Sopenharmony_ci    discoveryMgr_->discoveryContextMap_.emplace(pkgName, context);
53079a732c7Sopenharmony_ci    discoveryMgr_->HandleDiscoveryTimeout(pkgName);
53179a732c7Sopenharmony_ci    EXPECT_EQ(discoveryMgr_->discoveryQueue_.empty(), false);
53279a732c7Sopenharmony_ci}
53379a732c7Sopenharmony_ci
53479a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, CheckDiscoveryQueue_001, testing::ext::TestSize.Level0)
53579a732c7Sopenharmony_ci{
53679a732c7Sopenharmony_ci    std::string pkgName;
53779a732c7Sopenharmony_ci    std::queue<std::string> emptyQueue;
53879a732c7Sopenharmony_ci    discoveryMgr_->discoveryQueue_ = emptyQueue;
53979a732c7Sopenharmony_ci    int32_t ret = discoveryMgr_->CheckDiscoveryQueue(pkgName);
54079a732c7Sopenharmony_ci    EXPECT_EQ(ret, DM_OK);
54179a732c7Sopenharmony_ci}
54279a732c7Sopenharmony_ci
54379a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, CheckDiscoveryQueue_002, testing::ext::TestSize.Level0)
54479a732c7Sopenharmony_ci{
54579a732c7Sopenharmony_ci    std::string pkgName = "ohos_test";
54679a732c7Sopenharmony_ci    std::queue<std::string> emptyQueue;
54779a732c7Sopenharmony_ci    discoveryMgr_->discoveryQueue_ = emptyQueue;
54879a732c7Sopenharmony_ci    discoveryMgr_->discoveryQueue_.push(pkgName);
54979a732c7Sopenharmony_ci    int32_t ret = discoveryMgr_->CheckDiscoveryQueue(pkgName);
55079a732c7Sopenharmony_ci    EXPECT_EQ(ret, ERR_DM_DISCOVERY_REPEATED);
55179a732c7Sopenharmony_ci}
55279a732c7Sopenharmony_ci
55379a732c7Sopenharmony_ciHWTEST_F(DmDiscoveryManagerTest, CheckDiscoveryQueue_003, testing::ext::TestSize.Level0)
55479a732c7Sopenharmony_ci{
55579a732c7Sopenharmony_ci    std::string pkgName = "pkgName";
55679a732c7Sopenharmony_ci    std::queue<std::string> emptyQueue;
55779a732c7Sopenharmony_ci    discoveryMgr_->discoveryQueue_ = emptyQueue;
55879a732c7Sopenharmony_ci    std::string frontPkgName = "ohos_test";
55979a732c7Sopenharmony_ci    discoveryMgr_->discoveryQueue_.push(frontPkgName);
56079a732c7Sopenharmony_ci    int32_t ret = discoveryMgr_->CheckDiscoveryQueue(pkgName);
56179a732c7Sopenharmony_ci    EXPECT_EQ(ret, DM_OK);
56279a732c7Sopenharmony_ci}
56379a732c7Sopenharmony_ci} // namespace
56479a732c7Sopenharmony_ci} // namespace DistributedHardware
56579a732c7Sopenharmony_ci} // namespace OHOS
566