/* * Copyright (c) 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_publish_common_event.h" #include "bluetooth_def.h" #include "common_event_support.h" #include "dm_constants.h" #include "dm_publish_common_event.h" #include "matching_skills.h" #include "system_ability_definition.h" #include "wifi_msg.h" namespace OHOS { namespace DistributedHardware { void DmPublishCommonEventManagerTest::SetUp() { } void DmPublishCommonEventManagerTest::TearDown() { } void DmPublishCommonEventManagerTest::SetUpTestCase() { } void DmPublishCommonEventManagerTest::TearDownTestCase() { } namespace { HWTEST_F(DmPublishCommonEventManagerTest, SubscribePublishCommonEvent_001, testing::ext::TestSize.Level0) { std::shared_ptr publshCommonEventManager = std::make_shared(); std::vector publishCommonEventVec; bool ret = publshCommonEventManager->SubscribePublishCommonEvent(publishCommonEventVec, nullptr); ASSERT_EQ(ret, false); publishCommonEventVec.emplace_back(EventFwk::CommonEventSupport::COMMON_EVENT_SCREEN_ON); ret = publshCommonEventManager->SubscribePublishCommonEvent(publishCommonEventVec, nullptr); ASSERT_EQ(ret, false); } HWTEST_F(DmPublishCommonEventManagerTest, UnsubscribePublishCommonEvent_001, testing::ext::TestSize.Level0) { std::shared_ptr publshCommonEventManager = std::make_shared(); bool ret = publshCommonEventManager->UnsubscribePublishCommonEvent(); ASSERT_EQ(ret, false); publshCommonEventManager->eventValidFlag_ = true; ret = publshCommonEventManager->UnsubscribePublishCommonEvent(); ASSERT_EQ(ret, true); } void PublishCommonEventCallback(int32_t bluetoothState, int32_t wifiState, int32_t screenState) { (void)bluetoothState; (void)wifiState; (void)screenState; } HWTEST_F(DmPublishCommonEventManagerTest, OnReceiveEvent_001, testing::ext::TestSize.Level0) { AAFwk::Want want; EventFwk::CommonEventData data; want.SetAction(EventFwk::CommonEventSupport::COMMON_EVENT_SCREEN_ON); data.SetWant(want); data.SetCode(0); std::vector changeEventVec; changeEventVec.push_back(EventFwk::CommonEventSupport::COMMON_EVENT_SCREEN_ON); std::string strEvent = "test"; std::vector strEventVec; strEventVec.push_back(strEvent); PublishEventCallback callback = [=](const auto &arg1, const auto &arg2, const auto &arg3) { PublishCommonEventCallback(arg1, arg2, arg3); }; EventFwk::MatchingSkills matchingSkills; matchingSkills.AddEvent(strEvent); CommonEventSubscribeInfo subscriberInfo(matchingSkills); std::shared_ptr publshCommonEventManager = std::make_shared(); publshCommonEventManager->subscriber_ = std::make_shared(subscriberInfo, callback, strEventVec); publshCommonEventManager->subscriber_->OnReceiveEvent(data); want.SetAction(EventFwk::CommonEventSupport::COMMON_EVENT_BLUETOOTH_HOST_STATE_UPDATE); data.SetWant(want); data.SetCode(static_cast(Bluetooth::BTStateID::STATE_TURN_ON)); publshCommonEventManager->subscriber_->OnReceiveEvent(data); data.SetCode(static_cast(Bluetooth::BTStateID::STATE_TURN_OFF)); publshCommonEventManager->subscriber_->OnReceiveEvent(data); data.SetCode(-1); publshCommonEventManager->subscriber_->OnReceiveEvent(data); want.SetAction(EventFwk::CommonEventSupport::COMMON_EVENT_WIFI_POWER_STATE); data.SetWant(want); data.SetCode(static_cast(OHOS::Wifi::WifiState::ENABLED)); publshCommonEventManager->subscriber_->OnReceiveEvent(data); data.SetCode(static_cast(OHOS::Wifi::WifiState::DISABLED)); publshCommonEventManager->subscriber_->OnReceiveEvent(data); EXPECT_NE(publshCommonEventManager->subscriber_->GetSubscriberEventNameVec(), changeEventVec); } } } // namespace DistributedHardware } // namespace OHOS