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