From 1339239dca9fdb47e01c14ee9f3ac6fdd4f4f38e Mon Sep 17 00:00:00 2001 From: li-tiangang4 Date: Mon, 28 Oct 2024 10:26:39 +0800 Subject: [PATCH] add dh_context_test.cpp ut Signed-off-by: li-tiangang4 --- .../src/component_loader_test.cpp | 43 ++- .../test/unittest/common/utils/BUILD.gn | 1 + .../unittest/common/utils/dh_context_test.cpp | 284 +++++++++++++++++- 3 files changed, 322 insertions(+), 6 deletions(-) diff --git a/services/distributedhardwarefwkservice/test/unittest/common/componentloader/src/component_loader_test.cpp b/services/distributedhardwarefwkservice/test/unittest/common/componentloader/src/component_loader_test.cpp index d5d90bf8..c7f9e89d 100644 --- a/services/distributedhardwarefwkservice/test/unittest/common/componentloader/src/component_loader_test.cpp +++ b/services/distributedhardwarefwkservice/test/unittest/common/componentloader/src/component_loader_test.cpp @@ -170,6 +170,7 @@ HWTEST_F(ComponentLoaderTest, GetSink_001, TestSize.Level0) ComponentLoader::GetInstance().compHandlerMap_[DHType::AUDIO] = comHandler; ret = ComponentLoader::GetInstance().GetSink(DHType::AUDIO, sinkPtr); EXPECT_EQ(ERR_DH_FWK_LOADER_HANDLER_IS_NULL, ret); + ComponentLoader::GetInstance().compHandlerMap_.clear(); } #ifdef DHARDWARE_CLOSE_UT @@ -210,7 +211,6 @@ HWTEST_F(ComponentLoaderTest, Readfile_001, TestSize.Level0) */ HWTEST_F(ComponentLoaderTest, ReleaseHardwareHandler_001, TestSize.Level0) { - ComponentLoader::GetInstance().compHandlerMap_.clear(); auto ret = ComponentLoader::GetInstance().ReleaseHardwareHandler(DHType::AUDIO); EXPECT_EQ(ERR_DH_FWK_TYPE_NOT_EXIST, ret); @@ -855,6 +855,47 @@ HWTEST_F(ComponentLoaderTest, ParseResourceDesc_002, TestSize.Level0) cJSON_Delete(component1); } +HWTEST_F(ComponentLoaderTest, ParseResourceDesc_003, TestSize.Level0) +{ + CompConfig cfg; + cJSON *jsonArr = cJSON_CreateArray(); + ASSERT_TRUE(jsonArr != nullptr); + cJSON *json = cJSON_CreateObject(); + if (json == nullptr) { + cJSON_Delete(jsonArr); + return; + } + cJSON_AddNumberToObject(json, COMP_SUBTYPE.c_str(), 1); + cJSON_AddItemToArray(jsonArr, json); + auto ret = ParseResourceDesc(jsonArr, cfg); + cJSON_Delete(jsonArr); + EXPECT_EQ(ret, ERR_DH_FWK_JSON_PARSE_FAILED); +} + +HWTEST_F(ComponentLoaderTest, ParseResourceDescFromJson_003, TestSize.Level0) +{ + CompConfig config; + cJSON *resourceDescs = cJSON_CreateArray(); + ASSERT_TRUE(resourceDescs != nullptr); + cJSON *sensitive = cJSON_CreateObject(); + if (sensitive == nullptr) { + cJSON_Delete(resourceDescs); + return; + } + cJSON_AddBoolToObject(sensitive, COMP_SENSITIVE.c_str(), true); + cJSON_AddItemToArray(resourceDescs, sensitive); + cJSON *subtype = cJSON_CreateObject(); + if (subtype == nullptr) { + cJSON_Delete(resourceDescs); + return; + } + cJSON_AddBoolToObject(subtype, COMP_SUBTYPE.c_str(), true); + cJSON_AddItemToArray(resourceDescs, subtype); + ComponentLoader::GetInstance().ParseResourceDescFromJson(resourceDescs, config); + cJSON_Delete(resourceDescs); + EXPECT_TRUE(config.compResourceDesc.empty()); +} + HWTEST_F(ComponentLoaderTest, from_json_001, TestSize.Level0) { CompConfig cfg; diff --git a/services/distributedhardwarefwkservice/test/unittest/common/utils/BUILD.gn b/services/distributedhardwarefwkservice/test/unittest/common/utils/BUILD.gn index 0e6182f6..683a08f3 100644 --- a/services/distributedhardwarefwkservice/test/unittest/common/utils/BUILD.gn +++ b/services/distributedhardwarefwkservice/test/unittest/common/utils/BUILD.gn @@ -65,6 +65,7 @@ ohos_unittest("DhContextTest") { "hisysevent:libhisysevent", "hitrace:hitrace_meter", "init:libbegetutil", + "ipc:ipc_core", "safwk:system_ability_fwk", "samgr:samgr_proxy", ] diff --git a/services/distributedhardwarefwkservice/test/unittest/common/utils/dh_context_test.cpp b/services/distributedhardwarefwkservice/test/unittest/common/utils/dh_context_test.cpp index da166b21..82ad735d 100644 --- a/services/distributedhardwarefwkservice/test/unittest/common/utils/dh_context_test.cpp +++ b/services/distributedhardwarefwkservice/test/unittest/common/utils/dh_context_test.cpp @@ -46,6 +46,20 @@ void DhContextTest::SetUpTestCase() {} void DhContextTest::TearDownTestCase() {} +HWTEST_F(DhContextTest, OnPowerStateChanged_001, TestSize.Level1) +{ + sptr powerStateCallback(new DHContext::DHFWKPowerStateCallback()); + ASSERT_TRUE(powerStateCallback != nullptr); + PowerMgr::PowerState state = PowerMgr::PowerState::SLEEP; + powerStateCallback->OnPowerStateChanged(state); + + state = PowerMgr::PowerState::HIBERNATE; + powerStateCallback->OnPowerStateChanged(state); + + state = PowerMgr::PowerState::SHUTDOWN; + powerStateCallback->OnPowerStateChanged(state); +} + HWTEST_F(DhContextTest, AddOnlineDevice_001, TestSize.Level1) { DHContext::GetInstance().AddOnlineDevice("", "", ""); @@ -78,6 +92,10 @@ HWTEST_F(DhContextTest, AddOnlineDevice_002, TestSize.Level1) HWTEST_F(DhContextTest, RemoveOnlineDeviceIdEntryByNetworkId_001, TestSize.Level1) { + std::string networkId = ""; + DHContext::GetInstance().RemoveOnlineDeviceIdEntryByNetworkId(networkId); + EXPECT_EQ(false, DHContext::GetInstance().devIdEntrySet_.empty()); + DHContext::GetInstance().RemoveOnlineDeviceIdEntryByNetworkId("123"); EXPECT_EQ(false, DHContext::GetInstance().devIdEntrySet_.empty()); @@ -87,7 +105,11 @@ HWTEST_F(DhContextTest, RemoveOnlineDeviceIdEntryByNetworkId_001, TestSize.Level HWTEST_F(DhContextTest, IsDeviceOnline_001, TestSize.Level1) { - bool ret = DHContext::GetInstance().IsDeviceOnline(TEST_UUID); + std::string uuid = ""; + bool ret = DHContext::GetInstance().IsDeviceOnline(uuid); + EXPECT_EQ(false, ret); + + ret = DHContext::GetInstance().IsDeviceOnline(TEST_UUID); EXPECT_EQ(false, ret); DHContext::GetInstance().AddOnlineDevice(TEST_UDID, TEST_UUID, TEST_NETWORKID); @@ -97,7 +119,11 @@ HWTEST_F(DhContextTest, IsDeviceOnline_001, TestSize.Level1) HWTEST_F(DhContextTest, GetNetworkIdByUUID_001, TestSize.Level1) { - auto ret = DHContext::GetInstance().GetNetworkIdByUUID(TEST_UUID); + std::string uuid = ""; + auto ret = DHContext::GetInstance().GetNetworkIdByUUID(uuid); + EXPECT_EQ("", ret); + + ret = DHContext::GetInstance().GetNetworkIdByUUID(TEST_UUID); EXPECT_EQ(TEST_NETWORKID, ret); DHContext::GetInstance().devIdEntrySet_.clear(); @@ -105,6 +131,21 @@ HWTEST_F(DhContextTest, GetNetworkIdByUUID_001, TestSize.Level1) EXPECT_EQ("", ret); } +HWTEST_F(DhContextTest, GetNetworkIdByUDID_001, TestSize.Level1) +{ + std::string udid = ""; + auto ret = DHContext::GetInstance().GetNetworkIdByUDID(udid); + EXPECT_EQ("", ret); + + DHContext::GetInstance().AddOnlineDevice(TEST_UDID, TEST_UUID, TEST_NETWORKID); + ret = DHContext::GetInstance().GetNetworkIdByUDID(TEST_UDID); + EXPECT_EQ(TEST_NETWORKID, ret); + + DHContext::GetInstance().devIdEntrySet_.clear(); + ret = DHContext::GetInstance().GetNetworkIdByUDID(udid); + EXPECT_EQ("", ret); +} + HWTEST_F(DhContextTest, GetUdidHashIdByUUID_001, TestSize.Level1) { auto ret = DHContext::GetInstance().GetUdidHashIdByUUID(TEST_UUID); @@ -117,7 +158,11 @@ HWTEST_F(DhContextTest, GetUdidHashIdByUUID_001, TestSize.Level1) HWTEST_F(DhContextTest, GetUUIDByNetworkId_001, TestSize.Level1) { - auto ret = DHContext::GetInstance().GetUUIDByNetworkId(TEST_NETWORKID); + std::string networkId = ""; + auto ret = DHContext::GetInstance().GetUUIDByNetworkId(networkId); + EXPECT_EQ("", ret); + + ret = DHContext::GetInstance().GetUUIDByNetworkId(TEST_NETWORKID); EXPECT_EQ(TEST_UUID, ret); DHContext::GetInstance().devIdEntrySet_.clear(); @@ -127,7 +172,11 @@ HWTEST_F(DhContextTest, GetUUIDByNetworkId_001, TestSize.Level1) HWTEST_F(DhContextTest, GetUDIDByNetworkId_001, TestSize.Level1) { - auto ret = DHContext::GetInstance().GetUDIDByNetworkId(TEST_NETWORKID); + std::string networkId = ""; + auto ret = DHContext::GetInstance().GetUDIDByNetworkId(networkId); + EXPECT_EQ("", ret); + + ret = DHContext::GetInstance().GetUDIDByNetworkId(TEST_NETWORKID); EXPECT_EQ("", ret); DHContext::GetInstance().AddOnlineDevice(TEST_UDID, TEST_UUID, TEST_NETWORKID); @@ -136,11 +185,26 @@ HWTEST_F(DhContextTest, GetUDIDByNetworkId_001, TestSize.Level1) } HWTEST_F(DhContextTest, GetUUIDByDeviceId_001, TestSize.Level1) +{ + std::string deviceId = ""; + auto ret = DHContext::GetInstance().GetUUIDByDeviceId(deviceId); + EXPECT_EQ("", ret); + + deviceId = "123456"; + ret = DHContext::GetInstance().GetUUIDByDeviceId(deviceId); + EXPECT_EQ("", ret); +} + +HWTEST_F(DhContextTest, GetUUIDByDeviceId_002, TestSize.Level1) { std::string deviceId = Sha256(TEST_UUID); auto ret = DHContext::GetInstance().GetUUIDByDeviceId(deviceId); EXPECT_EQ(TEST_UUID, ret); + deviceId = Sha256(TEST_UDID); + ret = DHContext::GetInstance().GetUUIDByDeviceId(deviceId); + EXPECT_EQ(TEST_UUID, ret); + DHContext::GetInstance().devIdEntrySet_.clear(); ret = DHContext::GetInstance().GetUUIDByDeviceId(deviceId); EXPECT_EQ("", ret); @@ -148,10 +212,14 @@ HWTEST_F(DhContextTest, GetUUIDByDeviceId_001, TestSize.Level1) HWTEST_F(DhContextTest, GetNetworkIdByDeviceId_001, TestSize.Level1) { - std::string deviceId = Sha256(TEST_UUID); + std::string deviceId = ""; auto ret = DHContext::GetInstance().GetNetworkIdByDeviceId(deviceId); EXPECT_EQ("", ret); + deviceId = Sha256(TEST_UUID); + ret = DHContext::GetInstance().GetNetworkIdByDeviceId(deviceId); + EXPECT_EQ("", ret); + DHContext::GetInstance().AddOnlineDevice(TEST_UDID, TEST_UUID, TEST_NETWORKID); ret = DHContext::GetInstance().GetNetworkIdByDeviceId(deviceId); EXPECT_EQ(TEST_NETWORKID, ret); @@ -171,5 +239,211 @@ HWTEST_F(DhContextTest, GetDeviceIdByDBGetPrefix_001, TestSize.Level1) ret = DHContext::GetInstance().GetDeviceIdByDBGetPrefix(prefix); EXPECT_EQ("prefix", ret); } + +HWTEST_F(DhContextTest, AddIsomerismConnectDev_001, TestSize.Level1) +{ + std::string IsomerismDeviceId = ""; + DHContext::GetInstance().AddIsomerismConnectDev(IsomerismDeviceId); + EXPECT_TRUE(DHContext::GetInstance().connectedDevIds_.empty()); + + IsomerismDeviceId = "IsomerismDeviceId_test"; + DHContext::GetInstance().AddIsomerismConnectDev(IsomerismDeviceId); + EXPECT_FALSE(DHContext::GetInstance().connectedDevIds_.empty()); +} + +HWTEST_F(DhContextTest, DelIsomerismConnectDev_001, TestSize.Level1) +{ + std::string IsomerismDeviceId = ""; + DHContext::GetInstance().DelIsomerismConnectDev(IsomerismDeviceId); + EXPECT_FALSE(DHContext::GetInstance().connectedDevIds_.empty()); + + IsomerismDeviceId = "123456789"; + DHContext::GetInstance().DelIsomerismConnectDev(IsomerismDeviceId); + EXPECT_FALSE(DHContext::GetInstance().connectedDevIds_.empty()); + + IsomerismDeviceId = "IsomerismDeviceId_test"; + DHContext::GetInstance().DelIsomerismConnectDev(IsomerismDeviceId); + EXPECT_TRUE(DHContext::GetInstance().connectedDevIds_.empty()); +} + +HWTEST_F(DhContextTest, OnMessage_001, TestSize.Level1) +{ + sptr dhFwkIsomerismListener(new DHContext::DHFWKIsomerismListener()); + ASSERT_TRUE(dhFwkIsomerismListener != nullptr); + DHTopic topic = DHTopic::TOPIC_LOW_LATENCY; + std::string message = ""; + dhFwkIsomerismListener->OnMessage(topic, message); + EXPECT_TRUE(DHContext::GetInstance().connectedDevIds_.empty()); + + message = "message_test"; + dhFwkIsomerismListener->OnMessage(topic, message); + EXPECT_TRUE(DHContext::GetInstance().connectedDevIds_.empty()); + + topic = DHTopic::TOPIC_ISOMERISM; + dhFwkIsomerismListener->OnMessage(topic, message); + EXPECT_TRUE(DHContext::GetInstance().connectedDevIds_.empty()); +} + +HWTEST_F(DhContextTest, OnMessage_002, TestSize.Level1) +{ + sptr dhFwkIsomerismListener(new DHContext::DHFWKIsomerismListener()); + ASSERT_TRUE(dhFwkIsomerismListener != nullptr); + DHTopic topic = DHTopic::TOPIC_ISOMERISM; + const std::string eventKey = "Isomerism_event"; + cJSON *json = cJSON_CreateObject(); + ASSERT_TRUE(json != nullptr); + cJSON_AddStringToObject(json, eventKey.c_str(), "Isomerism_event_test"); + char* cjson = cJSON_PrintUnformatted(json); + if (cjson == nullptr) { + cJSON_Delete(json); + return; + } + std::string message(cjson); + dhFwkIsomerismListener->OnMessage(topic, message); + cJSON_free(cjson); + cJSON_Delete(json); + EXPECT_TRUE(DHContext::GetInstance().connectedDevIds_.empty()); +} + +HWTEST_F(DhContextTest, OnMessage_003, TestSize.Level1) +{ + sptr dhFwkIsomerismListener(new DHContext::DHFWKIsomerismListener()); + ASSERT_TRUE(dhFwkIsomerismListener != nullptr); + DHTopic topic = DHTopic::TOPIC_ISOMERISM; + const std::string eventKey = "isomerism_event"; + cJSON *json = cJSON_CreateObject(); + ASSERT_TRUE(json != nullptr); + cJSON_AddNumberToObject(json, eventKey.c_str(), 1); + char* cjson = cJSON_PrintUnformatted(json); + if (cjson == nullptr) { + cJSON_Delete(json); + return; + } + std::string message(cjson); + dhFwkIsomerismListener->OnMessage(topic, message); + cJSON_free(cjson); + cJSON_Delete(json); + EXPECT_TRUE(DHContext::GetInstance().connectedDevIds_.empty()); +} + +HWTEST_F(DhContextTest, OnMessage_004, TestSize.Level1) +{ + sptr dhFwkIsomerismListener(new DHContext::DHFWKIsomerismListener()); + ASSERT_TRUE(dhFwkIsomerismListener != nullptr); + DHTopic topic = DHTopic::TOPIC_ISOMERISM; + const std::string eventKey = "isomerism_event"; + const std::string devId = "Dev_Id"; + cJSON *json = cJSON_CreateObject(); + ASSERT_TRUE(json != nullptr); + cJSON_AddStringToObject(json, eventKey.c_str(), "isomerism_event_test"); + cJSON_AddStringToObject(json, DEV_ID.c_str(), "Dev_Id_test"); + + char* cjson = cJSON_PrintUnformatted(json); + if (cjson == nullptr) { + cJSON_Delete(json); + return; + } + std::string message(cjson); + dhFwkIsomerismListener->OnMessage(topic, message); + cJSON_free(cjson); + cJSON_Delete(json); + EXPECT_TRUE(DHContext::GetInstance().connectedDevIds_.empty()); +} + +HWTEST_F(DhContextTest, OnMessage_005, TestSize.Level1) +{ + sptr dhFwkIsomerismListener(new DHContext::DHFWKIsomerismListener()); + ASSERT_TRUE(dhFwkIsomerismListener != nullptr); + DHTopic topic = DHTopic::TOPIC_ISOMERISM; + const std::string eventKey = "isomerism_event"; + const std::string devId = "Dev_Id"; + cJSON *json = cJSON_CreateObject(); + ASSERT_TRUE(json != nullptr); + cJSON_AddStringToObject(json, eventKey.c_str(), "isomerism_event_test"); + cJSON_AddNumberToObject(json, DEV_ID.c_str(), 1); + + char* cjson = cJSON_PrintUnformatted(json); + if (cjson == nullptr) { + cJSON_Delete(json); + return; + } + std::string message(cjson); + dhFwkIsomerismListener->OnMessage(topic, message); + cJSON_free(cjson); + cJSON_Delete(json); + EXPECT_TRUE(DHContext::GetInstance().connectedDevIds_.empty()); +} + +HWTEST_F(DhContextTest, OnMessage_006, TestSize.Level1) +{ + sptr dhFwkIsomerismListener(new DHContext::DHFWKIsomerismListener()); + ASSERT_TRUE(dhFwkIsomerismListener != nullptr); + DHTopic topic = DHTopic::TOPIC_ISOMERISM; + const std::string eventKey = "isomerism_event"; + const std::string devId = "dev_id"; + cJSON *json = cJSON_CreateObject(); + ASSERT_TRUE(json != nullptr); + cJSON_AddStringToObject(json, eventKey.c_str(), "isomerism_event_test"); + cJSON_AddStringToObject(json, DEV_ID.c_str(), "dev_id_test"); + + char* cjson = cJSON_PrintUnformatted(json); + if (cjson == nullptr) { + cJSON_Delete(json); + return; + } + std::string message(cjson); + dhFwkIsomerismListener->OnMessage(topic, message); + cJSON_free(cjson); + cJSON_Delete(json); + EXPECT_TRUE(DHContext::GetInstance().connectedDevIds_.empty()); +} + +HWTEST_F(DhContextTest, OnMessage_007, TestSize.Level1) +{ + sptr dhFwkIsomerismListener(new DHContext::DHFWKIsomerismListener()); + ASSERT_TRUE(dhFwkIsomerismListener != nullptr); + DHTopic topic = DHTopic::TOPIC_ISOMERISM; + const std::string eventKey = "isomerism_event"; + const std::string devId = "dev_id"; + cJSON *json = cJSON_CreateObject(); + ASSERT_TRUE(json != nullptr); + cJSON_AddStringToObject(json, eventKey.c_str(), "isomerism_connect"); + cJSON_AddStringToObject(json, DEV_ID.c_str(), "dev_id_test"); + + char* cjson = cJSON_PrintUnformatted(json); + if (cjson == nullptr) { + cJSON_Delete(json); + return; + } + std::string message(cjson); + dhFwkIsomerismListener->OnMessage(topic, message); + cJSON_free(cjson); + cJSON_Delete(json); + EXPECT_FALSE(DHContext::GetInstance().connectedDevIds_.empty()); +} + +HWTEST_F(DhContextTest, OnMessage_008, TestSize.Level1) +{ + sptr dhFwkIsomerismListener(new DHContext::DHFWKIsomerismListener()); + ASSERT_TRUE(dhFwkIsomerismListener != nullptr); + DHTopic topic = DHTopic::TOPIC_ISOMERISM; + const std::string eventKey = "isomerism_event"; + const std::string devId = "dev_id"; + cJSON *json = cJSON_CreateObject(); + ASSERT_TRUE(json != nullptr); + cJSON_AddStringToObject(json, eventKey.c_str(), "isomerism_disconnect"); + cJSON_AddStringToObject(json, DEV_ID.c_str(), "dev_id_test"); + + char* cjson = cJSON_PrintUnformatted(json); + if (cjson == nullptr) { + cJSON_Delete(json); + return; + } + std::string message(cjson); + dhFwkIsomerismListener->OnMessage(topic, message); + cJSON_free(cjson); + cJSON_Delete(json); + EXPECT_TRUE(DHContext::GetInstance().connectedDevIds_.empty()); +} } } \ No newline at end of file -- Gitee