* Copyright (c) 2022-2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "UTTest_dm_device_state_manager.h"
#include <iostream>
#include "dm_log.h"
#include "dm_constants.h"
#include "ipc_notify_device_state_req.h"
#include "ipc_notify_auth_result_req.h"
#include "dm_device_state_manager.h"
#include "ipc_notify_device_found_req.h"
#include "ipc_notify_discover_result_req.h"
#include "hichain_connector.h"
#include "device_manager_service_listener.h"
namespace OHOS {
namespace DistributedHardware {
void DmDeviceStateManagerTest::SetUp()
{
}
void DmDeviceStateManagerTest::TearDown()
{
}
void DmDeviceStateManagerTest::SetUpTestCase()
{
}
void DmDeviceStateManagerTest::TearDownTestCase()
{
}
namespace {
std::shared_ptr<HiChainConnector> hiChainConnector_ = std::make_shared<HiChainConnector>();
std::shared_ptr<SoftbusConnector> softbusConnector = std::make_shared<SoftbusConnector>();
std::shared_ptr<DeviceManagerServiceListener> listener_ = std::make_shared<DeviceManagerServiceListener>();
std::shared_ptr<HiChainAuthConnector> hiChainAuthConnector = std::make_shared<HiChainAuthConnector>();
std::shared_ptr<DmDeviceStateManager> dmDeviceStateManager =
std::make_shared<DmDeviceStateManager>(softbusConnector, listener_, hiChainConnector_, hiChainAuthConnector);
* @tc.name: DmDeviceStateManager_001
* @tc.desc: set DmDeviceStateManager to tne new pointer, and it's not nullptr
* @tc.type: FUNC
* @tc.require: AR000GHSJK
*/
HWTEST_F(DmDeviceStateManagerTest, DmDeviceStateManager_001, testing::ext::TestSize.Level0)
{
std::shared_ptr<DmDeviceStateManager> p = std::make_shared<DmDeviceStateManager>(softbusConnector, listener_,
hiChainConnector_, hiChainAuthConnector);
ASSERT_NE(p, nullptr);
}
* @tc.name: DmDeviceStateManager_002
* @tc.desc: set DmDeviceStateManager to tne new pointer,it's not nullptr and delete it
* @tc.type: FUNC
* @tc.require: AR000GHSJK
*/
HWTEST_F(DmDeviceStateManagerTest, DmDeviceStateManager_002, testing::ext::TestSize.Level0)
{
std::shared_ptr<DmDeviceStateManager> p = std::make_shared<DmDeviceStateManager>(softbusConnector, listener_,
hiChainConnector_, hiChainAuthConnector);
p.reset();
EXPECT_EQ(p, nullptr);
}
* @tc.name: OnDbReady_001
* @tc.desc: set info.deviceId to some para, and return it
* @tc.type: FUNC
* @tc.require: AR000GHSJK
*/
HWTEST_F(DmDeviceStateManagerTest, OnDbReady_001, testing::ext::TestSize.Level0)
{
std::string pkgName;
std::string deviceId;
DmDeviceInfo info;
strcpy_s(info.deviceId, DM_MAX_DEVICE_ID_LEN, "123");
dmDeviceStateManager->OnDbReady(pkgName, deviceId);
std::shared_ptr<IpcNotifyDeviceStateReq> pReq =
std::static_pointer_cast<IpcNotifyDeviceStateReq>(listener_->ipcServerListener_.req_);
DmDeviceInfo dminfo;
if (pReq == nullptr) {
strcpy_s(dminfo.deviceId, DM_MAX_DEVICE_ID_LEN, "123");
} else {
dminfo = pReq->GetDeviceInfo();
}
int result = strcmp(info.deviceId, dminfo.deviceId);
EXPECT_EQ(result, 0);
}
* @tc.name: RegisterOffLineTimer_001
* @tc.desc: call RegisterOffLineTimer
* @tc.type: FUNC
* @tc.require: AR000GHSJK
*/
HWTEST_F(DmDeviceStateManagerTest, RegisterOffLineTimer_001, testing::ext::TestSize.Level0)
{
DmDeviceInfo info = {
.deviceId = "12345678901234567890987654321234",
.deviceName = "asda",
.deviceTypeId = 1,
};
dmDeviceStateManager->RegisterOffLineTimer(info);
std::string deviceId;
SoftbusConnector::GetUdidByNetworkId(info.deviceId, deviceId);
EXPECT_EQ(dmDeviceStateManager->stateTimerInfoMap_.count(deviceId), 0);
}
* @tc.name: SaveOnlineDeviceInfo_001
* @tc.desc: call SaveOnlineDeviceInfo
* @tc.type: FUNC
*/
HWTEST_F(DmDeviceStateManagerTest, SaveOnlineDeviceInfo_001, testing::ext::TestSize.Level0)
{
DmDeviceInfo info = {
.deviceId = "123",
.deviceName = "asda",
.deviceTypeId = 1,
};
dmDeviceStateManager->SaveOnlineDeviceInfo(info);
std::string uuid;
SoftbusConnector::GetUuidByNetworkId(info.networkId, uuid);
EXPECT_EQ(dmDeviceStateManager->remoteDeviceInfos_.count(uuid), 0);
}
* @tc.name: DeleteOfflineDeviceInfo_001
* @tc.desc: call DeleteOfflineDeviceInfo
* @tc.type: FUNC
*/
HWTEST_F(DmDeviceStateManagerTest, DeleteOfflineDeviceInfo_001, testing::ext::TestSize.Level0)
{
DmDeviceInfo info = {
.deviceId = "123",
.deviceName = "asda",
.deviceTypeId = 1,
};
dmDeviceStateManager->DeleteOfflineDeviceInfo(info);
for (auto iter: dmDeviceStateManager->remoteDeviceInfos_) {
if (iter.second.deviceId == info.deviceId) {
EXPECT_EQ(dmDeviceStateManager->remoteDeviceInfos_.count(iter.first), 0);
break;
}
}
}
HWTEST_F(DmDeviceStateManagerTest, OnDeviceOnline_001, testing::ext::TestSize.Level0)
{
std::string deviceId = "deviceId";
dmDeviceStateManager->OnDeviceOnline(deviceId, DmAuthForm::ACROSS_ACCOUNT);
EXPECT_NE(dmDeviceStateManager->softbusConnector_, nullptr);
}
HWTEST_F(DmDeviceStateManagerTest, OnDeviceOffline_001, testing::ext::TestSize.Level0)
{
std::string deviceId = "deviceId";
dmDeviceStateManager->OnDeviceOffline(deviceId, false);
EXPECT_NE(dmDeviceStateManager->softbusConnector_, nullptr);
}
HWTEST_F(DmDeviceStateManagerTest, StartOffLineTimer_001, testing::ext::TestSize.Level0)
{
std::string peerUdid = "";
dmDeviceStateManager->timer_ = nullptr;
dmDeviceStateManager->StartOffLineTimer(peerUdid);
EXPECT_NE(dmDeviceStateManager->softbusConnector_, nullptr);
}
HWTEST_F(DmDeviceStateManagerTest, DeleteTimeOutGroup_001, testing::ext::TestSize.Level0)
{
auto hiChainConnectorTemp = dmDeviceStateManager->hiChainConnector_;
dmDeviceStateManager->hiChainConnector_ = nullptr;
std::string timerName = "timerName";
dmDeviceStateManager->DeleteTimeOutGroup(timerName);
EXPECT_NE(dmDeviceStateManager->softbusConnector_, nullptr);
dmDeviceStateManager->hiChainConnector_ = hiChainConnectorTemp;
}
HWTEST_F(DmDeviceStateManagerTest, DeleteTimeOutGroup_002, testing::ext::TestSize.Level0)
{
auto softbusConnectorTemp = dmDeviceStateManager->softbusConnector_;
dmDeviceStateManager->softbusConnector_ = nullptr;
std::string timerName = "timerName";
dmDeviceStateManager->DeleteTimeOutGroup(timerName);
EXPECT_NE(dmDeviceStateManager->hiChainConnector_, nullptr);
dmDeviceStateManager->softbusConnector_ = softbusConnectorTemp;
}
HWTEST_F(DmDeviceStateManagerTest, DeleteTimeOutGroup_003, testing::ext::TestSize.Level0)
{
std::string timerName = "timerName";
dmDeviceStateManager->DeleteTimeOutGroup(timerName);
EXPECT_NE(dmDeviceStateManager->hiChainConnector_, nullptr);
}
HWTEST_F(DmDeviceStateManagerTest, AddTask_001, testing::ext::TestSize.Level0)
{
int32_t eventId = 0;
std::string deviceId = "deviceId";
std::shared_ptr<NotifyEvent> task = std::make_shared<NotifyEvent>(eventId, deviceId);
int32_t ret = dmDeviceStateManager->AddTask(task);
EXPECT_EQ(ret, DM_OK);
}
HWTEST_F(DmDeviceStateManagerTest, RunTask_001, testing::ext::TestSize.Level0)
{
int32_t eventId = 0;
std::string deviceId = "deviceId";
std::shared_ptr<NotifyEvent> task = std::make_shared<NotifyEvent>(eventId, deviceId);
dmDeviceStateManager->RunTask(task);
EXPECT_NE(dmDeviceStateManager->softbusConnector_, nullptr);
}
HWTEST_F(DmDeviceStateManagerTest, GetAuthForm_001, testing::ext::TestSize.Level0)
{
std::string networkId;
dmDeviceStateManager->hiChainConnector_ = nullptr;
int32_t ret = dmDeviceStateManager->GetAuthForm(networkId);
EXPECT_EQ(ret, DmAuthForm::INVALID_TYPE);
}
HWTEST_F(DmDeviceStateManagerTest, GetAuthForm_002, testing::ext::TestSize.Level0)
{
std::string networkId;
dmDeviceStateManager->hiChainConnector_ = std::make_shared<HiChainConnector>();
int32_t ret = dmDeviceStateManager->GetAuthForm(networkId);
EXPECT_EQ(ret, DmAuthForm::INVALID_TYPE);
}
HWTEST_F(DmDeviceStateManagerTest, GetAuthForm_003, testing::ext::TestSize.Level0)
{
std::string networkId = "networkId";
int32_t ret = dmDeviceStateManager->GetAuthForm(networkId);
EXPECT_EQ(ret, DmAuthForm::INVALID_TYPE);
}
HWTEST_F(DmDeviceStateManagerTest, ProcNotifyEvent_001, testing::ext::TestSize.Level0)
{
int32_t eventId = 0;
std::string deviceId;
int32_t ret = dmDeviceStateManager->ProcNotifyEvent(eventId, deviceId);
DmDeviceInfo info = {
.deviceId = "123",
.deviceName = "asda",
.deviceTypeId = 1,
.networkId = "14569",
};
std::string udid = "udidTest";
DmDeviceInfo remoteInfo = {
.deviceId = "123",
};
dmDeviceStateManager->remoteDeviceInfos_[udid] = remoteInfo;
dmDeviceStateManager->ChangeDeviceInfo(info);
EXPECT_EQ(ret, DM_OK);
}
}
}
}