12d43be4eSopenharmony_ci/*
22d43be4eSopenharmony_ci * Copyright (C) 2024 Huawei Device Co., Ltd.
32d43be4eSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
42d43be4eSopenharmony_ci * you may not use this file except in compliance with the License.
52d43be4eSopenharmony_ci * You may obtain a copy of the License at
62d43be4eSopenharmony_ci *
72d43be4eSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
82d43be4eSopenharmony_ci *
92d43be4eSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
102d43be4eSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
112d43be4eSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
122d43be4eSopenharmony_ci * See the License for the specific language governing permissions and
132d43be4eSopenharmony_ci * limitations under the License.
142d43be4eSopenharmony_ci */
152d43be4eSopenharmony_ci#define private public
162d43be4eSopenharmony_ci#define protected public
172d43be4eSopenharmony_ci
182d43be4eSopenharmony_ci#include "common_event_manager.h"
192d43be4eSopenharmony_ci#include "common_event_support.h"
202d43be4eSopenharmony_ci#include "cellular_data_constant.h"
212d43be4eSopenharmony_ci#include "cellular_data_handler.h"
222d43be4eSopenharmony_ci#include "core_manager_inner.h"
232d43be4eSopenharmony_ci#include "mock/mock_sim_manager.h"
242d43be4eSopenharmony_ci#include "mock/mock_network_search.h"
252d43be4eSopenharmony_ci
262d43be4eSopenharmony_cinamespace OHOS {
272d43be4eSopenharmony_cinamespace Telephony {
282d43be4eSopenharmony_ciusing namespace testing::ext;
292d43be4eSopenharmony_ciusing ::testing::_;
302d43be4eSopenharmony_ciusing ::testing::AtLeast;
312d43be4eSopenharmony_ciusing ::testing::Return;
322d43be4eSopenharmony_ciusing ::testing::DoAll;
332d43be4eSopenharmony_ciusing ::testing::SetArgReferee;
342d43be4eSopenharmony_ci
352d43be4eSopenharmony_ciclass CellularDataHandlerBranchTest : public testing::Test {
362d43be4eSopenharmony_cipublic:
372d43be4eSopenharmony_ci    CellularDataHandlerBranchTest() = default;
382d43be4eSopenharmony_ci    ~CellularDataHandlerBranchTest() = default;
392d43be4eSopenharmony_ci    static void TearDownTestCase()
402d43be4eSopenharmony_ci    {
412d43be4eSopenharmony_ci        UnmockManager();
422d43be4eSopenharmony_ci    }
432d43be4eSopenharmony_ci
442d43be4eSopenharmony_ci    void InitMockManager()
452d43be4eSopenharmony_ci    {
462d43be4eSopenharmony_ci        mockSimManager = new MockSimManager();
472d43be4eSopenharmony_ci        std::shared_ptr<MockSimManager> mockSimManagerPtr(mockSimManager);
482d43be4eSopenharmony_ci        CoreManagerInner::GetInstance().simManager_ = mockSimManagerPtr;
492d43be4eSopenharmony_ci
502d43be4eSopenharmony_ci        mockNetworkSearchManager = new MockNetworkSearchManager();
512d43be4eSopenharmony_ci        std::shared_ptr<MockNetworkSearchManager> mockNetworkSearchManagerPtr(mockNetworkSearchManager);
522d43be4eSopenharmony_ci        CoreManagerInner::GetInstance().networkSearchManager_ = mockNetworkSearchManagerPtr;
532d43be4eSopenharmony_ci    }
542d43be4eSopenharmony_ci
552d43be4eSopenharmony_ci    static void UnmockManager()
562d43be4eSopenharmony_ci    {
572d43be4eSopenharmony_ci        if (CoreManagerInner::GetInstance().simManager_ != nullptr) {
582d43be4eSopenharmony_ci            CoreManagerInner::GetInstance().simManager_ = nullptr;
592d43be4eSopenharmony_ci            std::cout << "CellularDataHandlerBranchTest set simManager_ nullptr" << std::endl;
602d43be4eSopenharmony_ci        }
612d43be4eSopenharmony_ci        if (CoreManagerInner::GetInstance().networkSearchManager_ != nullptr) {
622d43be4eSopenharmony_ci            CoreManagerInner::GetInstance().networkSearchManager_ = nullptr;
632d43be4eSopenharmony_ci            std::cout << "CellularDataHandlerBranchTest set networkSearchManager_ nullptr" << std::endl;
642d43be4eSopenharmony_ci        }
652d43be4eSopenharmony_ci    }
662d43be4eSopenharmony_ci
672d43be4eSopenharmony_ci    void InitCellularDataHandler()
682d43be4eSopenharmony_ci    {
692d43be4eSopenharmony_ci        EventFwk::MatchingSkills matchingSkills;
702d43be4eSopenharmony_ci        matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
712d43be4eSopenharmony_ci        EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
722d43be4eSopenharmony_ci        cellularDataHandler_ = std::make_shared<CellularDataHandler>(subscriberInfo, 0);
732d43be4eSopenharmony_ci        cellularDataHandler_->Init();
742d43be4eSopenharmony_ci    }
752d43be4eSopenharmony_ci
762d43be4eSopenharmony_ci    std::shared_ptr<CellularDataHandler> cellularDataHandler_;
772d43be4eSopenharmony_ci    MockSimManager *mockSimManager;
782d43be4eSopenharmony_ci    MockNetworkSearchManager *mockNetworkSearchManager;
792d43be4eSopenharmony_ci};
802d43be4eSopenharmony_ci
812d43be4eSopenharmony_ciHWTEST_F(CellularDataHandlerBranchTest, RoamingStateOn_001, Function | MediumTest | Level3)
822d43be4eSopenharmony_ci{
832d43be4eSopenharmony_ci    InitCellularDataHandler();
842d43be4eSopenharmony_ci    InitMockManager();
852d43be4eSopenharmony_ci    // GetPsRoamingState return 1, dataRoamingEnabled is false
862d43be4eSopenharmony_ci    EXPECT_CALL(*mockNetworkSearchManager, GetPsRoamingState(_)).WillOnce(Return(1));
872d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetSimId(_)).WillOnce(Return(0));
882d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
892d43be4eSopenharmony_ci    cellularDataHandler_->RoamingStateOn(event);
902d43be4eSopenharmony_ci
912d43be4eSopenharmony_ci    // GetPsRoamingState return 1, dataRoamingEnabled is false
922d43be4eSopenharmony_ci    EXPECT_CALL(*mockNetworkSearchManager, GetPsRoamingState(_)).WillOnce(Return(1));
932d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetSimId(_)).Times(AtLeast(0)).WillRepeatedly(Return(1));
942d43be4eSopenharmony_ci    cellularDataHandler_->defaultDataRoamingEnable_ = true;
952d43be4eSopenharmony_ci    auto event1 = AppExecFwk::InnerEvent::Get(0);
962d43be4eSopenharmony_ci    cellularDataHandler_->RoamingStateOn(event1);
972d43be4eSopenharmony_ci    EXPECT_EQ(cellularDataHandler_->apnManager_->GetOverallApnState(), PROFILE_STATE_IDLE);
982d43be4eSopenharmony_ci    UnmockManager();
992d43be4eSopenharmony_ci}
1002d43be4eSopenharmony_ci
1012d43be4eSopenharmony_ciHWTEST_F(CellularDataHandlerBranchTest, CheckRoamingState_001, Function | MediumTest | Level3)
1022d43be4eSopenharmony_ci{
1032d43be4eSopenharmony_ci    InitCellularDataHandler();
1042d43be4eSopenharmony_ci    InitMockManager();
1052d43be4eSopenharmony_ci    // roamingState true, dataRoamingEnabled true, isMmsApn true, isEmergencyApn false, IsRestrictedMode false
1062d43be4eSopenharmony_ci    EXPECT_CALL(*mockNetworkSearchManager, GetPsRoamingState(_)).WillOnce(Return(1));
1072d43be4eSopenharmony_ci    EXPECT_CALL(*mockNetworkSearchManager, GetPsRadioTech(_, _)).WillOnce(Return(0));
1082d43be4eSopenharmony_ci    sptr<ApnHolder> apnHolder = new ApnHolder("mms", 0);
1092d43be4eSopenharmony_ci    ASSERT_FALSE(cellularDataHandler_ == nullptr);
1102d43be4eSopenharmony_ci    ASSERT_FALSE(cellularDataHandler_->dataSwitchSettings_ == nullptr);
1112d43be4eSopenharmony_ci    cellularDataHandler_->dataSwitchSettings_->UpdateUserDataRoamingOn(true);
1122d43be4eSopenharmony_ci    ASSERT_TRUE(cellularDataHandler_->CheckRoamingState(apnHolder));
1132d43be4eSopenharmony_ci
1142d43be4eSopenharmony_ci    // roamingState false, dataRoamingEnabled true, isMmsApn false, isEmergencyApn true, IsRestrictedMode false
1152d43be4eSopenharmony_ci    EXPECT_CALL(*mockNetworkSearchManager, GetPsRoamingState(_)).WillOnce(Return(0));
1162d43be4eSopenharmony_ci    EXPECT_CALL(*mockNetworkSearchManager, GetPsRadioTech(_, _)).WillOnce(Return(0));
1172d43be4eSopenharmony_ci    apnHolder = new ApnHolder("emergency", 0);
1182d43be4eSopenharmony_ci    cellularDataHandler_->dataSwitchSettings_->UpdateUserDataRoamingOn(true);
1192d43be4eSopenharmony_ci    ASSERT_TRUE(cellularDataHandler_->CheckRoamingState(apnHolder));
1202d43be4eSopenharmony_ci
1212d43be4eSopenharmony_ci    // roamingState true, dataRoamingEnabled false, isMmsApn true, isEmergencyApn false, IsRestrictedMode false
1222d43be4eSopenharmony_ci    EXPECT_CALL(*mockNetworkSearchManager, GetPsRoamingState(_)).WillOnce(Return(1));
1232d43be4eSopenharmony_ci    apnHolder = new ApnHolder("mms", 0);
1242d43be4eSopenharmony_ci    cellularDataHandler_->dataSwitchSettings_->UpdateUserDataRoamingOn(false);
1252d43be4eSopenharmony_ci    ASSERT_FALSE(cellularDataHandler_->CheckRoamingState(apnHolder));
1262d43be4eSopenharmony_ci
1272d43be4eSopenharmony_ci    // roamingState false, dataRoamingEnabled false, isMmsApn false, isEmergencyApn true, IsRestrictedMode true
1282d43be4eSopenharmony_ci    int32_t tech = 1;
1292d43be4eSopenharmony_ci    EXPECT_CALL(*mockNetworkSearchManager, GetPsRoamingState(_)).WillOnce(Return(0));
1302d43be4eSopenharmony_ci    EXPECT_CALL(*mockNetworkSearchManager, GetPsRadioTech(_, _)).WillOnce(DoAll(SetArgReferee<1>(tech), Return(0)));
1312d43be4eSopenharmony_ci    cellularDataHandler_->lastCallState_ = 1;
1322d43be4eSopenharmony_ci    apnHolder = new ApnHolder("emergency", 0);
1332d43be4eSopenharmony_ci    cellularDataHandler_->dataSwitchSettings_->UpdateUserDataRoamingOn(false);
1342d43be4eSopenharmony_ci    ASSERT_FALSE(cellularDataHandler_->CheckRoamingState(apnHolder));
1352d43be4eSopenharmony_ci    UnmockManager();
1362d43be4eSopenharmony_ci}
1372d43be4eSopenharmony_ci
1382d43be4eSopenharmony_ciHWTEST_F(CellularDataHandlerBranchTest, IsCellularDataRoamingEnabled_001, Function | MediumTest | Level3)
1392d43be4eSopenharmony_ci{
1402d43be4eSopenharmony_ci    EventFwk::MatchingSkills matchingSkills;
1412d43be4eSopenharmony_ci    matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
1422d43be4eSopenharmony_ci    EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
1432d43be4eSopenharmony_ci    auto cellularDataHandler = std::make_shared<CellularDataHandler>(subscriberInfo, 2);
1442d43be4eSopenharmony_ci
1452d43be4eSopenharmony_ci    EXPECT_EQ(cellularDataHandler->dataSwitchSettings_, nullptr);
1462d43be4eSopenharmony_ci    cellularDataHandler->defaultDataRoamingEnable_ = false;
1472d43be4eSopenharmony_ci    bool result = false;
1482d43be4eSopenharmony_ci    cellularDataHandler->IsCellularDataRoamingEnabled(result);
1492d43be4eSopenharmony_ci    ASSERT_FALSE(result);
1502d43be4eSopenharmony_ci
1512d43be4eSopenharmony_ci    cellularDataHandler->Init();
1522d43be4eSopenharmony_ci    cellularDataHandler->IsCellularDataRoamingEnabled(result);
1532d43be4eSopenharmony_ci    ASSERT_TRUE(result);
1542d43be4eSopenharmony_ci}
1552d43be4eSopenharmony_ci
1562d43be4eSopenharmony_ciHWTEST_F(CellularDataHandlerBranchTest, SetDataPermittedForMms_001, Function | MediumTest | Level3)
1572d43be4eSopenharmony_ci{
1582d43be4eSopenharmony_ci    EventFwk::MatchingSkills matchingSkills;
1592d43be4eSopenharmony_ci    matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
1602d43be4eSopenharmony_ci    EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
1612d43be4eSopenharmony_ci    auto cellularDataHandler = std::make_shared<CellularDataHandler>(subscriberInfo, 2);
1622d43be4eSopenharmony_ci
1632d43be4eSopenharmony_ci    EXPECT_EQ(cellularDataHandler->incallDataStateMachine_, nullptr);
1642d43be4eSopenharmony_ci    cellularDataHandler->incallDataStateMachine_ =
1652d43be4eSopenharmony_ci        cellularDataHandler->CreateIncallDataStateMachine(CALL_STATUS_DIALING);
1662d43be4eSopenharmony_ci    ASSERT_FALSE(cellularDataHandler->SetDataPermittedForMms(false));
1672d43be4eSopenharmony_ci}
1682d43be4eSopenharmony_ci
1692d43be4eSopenharmony_ciHWTEST_F(CellularDataHandlerBranchTest, CheckApnState_001, Function | MediumTest | Level3)
1702d43be4eSopenharmony_ci{
1712d43be4eSopenharmony_ci    EventFwk::MatchingSkills matchingSkills;
1722d43be4eSopenharmony_ci    matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
1732d43be4eSopenharmony_ci    EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
1742d43be4eSopenharmony_ci    auto cellularDataHandler = std::make_shared<CellularDataHandler>(subscriberInfo, 2);
1752d43be4eSopenharmony_ci    cellularDataHandler->Init();
1762d43be4eSopenharmony_ci
1772d43be4eSopenharmony_ci    sptr<ApnHolder> apnHolder = new ApnHolder("mms", 0);
1782d43be4eSopenharmony_ci    apnHolder->SetApnState(PROFILE_STATE_DISCONNECTING);
1792d43be4eSopenharmony_ci    ASSERT_FALSE(cellularDataHandler->CheckApnState(apnHolder));
1802d43be4eSopenharmony_ci
1812d43be4eSopenharmony_ci    apnHolder->SetApnState(PROFILE_STATE_FAILED);
1822d43be4eSopenharmony_ci    ASSERT_FALSE(cellularDataHandler->CheckApnState(apnHolder));
1832d43be4eSopenharmony_ci
1842d43be4eSopenharmony_ci    apnHolder->SetApnState(PROFILE_STATE_CONNECTING);
1852d43be4eSopenharmony_ci    ASSERT_FALSE(cellularDataHandler->CheckApnState(apnHolder));
1862d43be4eSopenharmony_ci}
1872d43be4eSopenharmony_ci
1882d43be4eSopenharmony_ciHWTEST_F(CellularDataHandlerBranchTest, EstablishDataConnection_001, Function | MediumTest | Level3)
1892d43be4eSopenharmony_ci{
1902d43be4eSopenharmony_ci    EventFwk::MatchingSkills matchingSkills;
1912d43be4eSopenharmony_ci    matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
1922d43be4eSopenharmony_ci    EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
1932d43be4eSopenharmony_ci    auto cellularDataHandler = std::make_shared<CellularDataHandler>(subscriberInfo, 2);
1942d43be4eSopenharmony_ci    cellularDataHandler->Init();
1952d43be4eSopenharmony_ci
1962d43be4eSopenharmony_ci    sptr<ApnHolder> apnHolder = new ApnHolder("mms", 0);
1972d43be4eSopenharmony_ci    ApnItem apnItem;
1982d43be4eSopenharmony_ci    sptr<ApnItem> item = apnItem.MakeDefaultApn("mms");
1992d43be4eSopenharmony_ci    std::vector<sptr<ApnItem>> matchedApns;
2002d43be4eSopenharmony_ci    matchedApns.push_back(item);
2012d43be4eSopenharmony_ci    apnHolder->SetAllMatchedApns(matchedApns);
2022d43be4eSopenharmony_ci    cellularDataHandler->EstablishDataConnection(apnHolder, 1);
2032d43be4eSopenharmony_ci    ASSERT_EQ(apnHolder->GetApnState(), PROFILE_STATE_CONNECTING);
2042d43be4eSopenharmony_ci}
2052d43be4eSopenharmony_ci
2062d43be4eSopenharmony_ciHWTEST_F(CellularDataHandlerBranchTest, DisconnectDataComplete_001, Function | MediumTest | Level3)
2072d43be4eSopenharmony_ci{
2082d43be4eSopenharmony_ci    EventFwk::MatchingSkills matchingSkills;
2092d43be4eSopenharmony_ci    matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
2102d43be4eSopenharmony_ci    EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
2112d43be4eSopenharmony_ci    auto cellularDataHandler = std::make_shared<CellularDataHandler>(subscriberInfo, 2);
2122d43be4eSopenharmony_ci    cellularDataHandler->Init();
2132d43be4eSopenharmony_ci
2142d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
2152d43be4eSopenharmony_ci    cellularDataHandler->DisconnectDataComplete(event);
2162d43be4eSopenharmony_ci    ASSERT_EQ(event->GetSharedObject<SetupDataCallResultInfo>(), nullptr);
2172d43be4eSopenharmony_ci}
2182d43be4eSopenharmony_ci
2192d43be4eSopenharmony_ciHWTEST_F(CellularDataHandlerBranchTest, UpdatePhysicalConnectionState_001, Function | MediumTest | Level3)
2202d43be4eSopenharmony_ci{
2212d43be4eSopenharmony_ci    EventFwk::MatchingSkills matchingSkills;
2222d43be4eSopenharmony_ci    matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
2232d43be4eSopenharmony_ci    EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
2242d43be4eSopenharmony_ci    auto cellularDataHandler = std::make_shared<CellularDataHandler>(subscriberInfo, 2);
2252d43be4eSopenharmony_ci    cellularDataHandler->Init();
2262d43be4eSopenharmony_ci
2272d43be4eSopenharmony_ci    cellularDataHandler->physicalConnectionActiveState_ = true;
2282d43be4eSopenharmony_ci    cellularDataHandler->UpdatePhysicalConnectionState(true);
2292d43be4eSopenharmony_ci    ASSERT_FALSE(cellularDataHandler->physicalConnectionActiveState_);
2302d43be4eSopenharmony_ci
2312d43be4eSopenharmony_ci    cellularDataHandler->physicalConnectionActiveState_ = false;
2322d43be4eSopenharmony_ci    cellularDataHandler->UpdatePhysicalConnectionState(true);
2332d43be4eSopenharmony_ci    ASSERT_FALSE(cellularDataHandler->physicalConnectionActiveState_);
2342d43be4eSopenharmony_ci
2352d43be4eSopenharmony_ci    cellularDataHandler->physicalConnectionActiveState_ = true;
2362d43be4eSopenharmony_ci    cellularDataHandler->UpdatePhysicalConnectionState(false);
2372d43be4eSopenharmony_ci    ASSERT_TRUE(cellularDataHandler->physicalConnectionActiveState_);
2382d43be4eSopenharmony_ci
2392d43be4eSopenharmony_ci    cellularDataHandler->physicalConnectionActiveState_ = false;
2402d43be4eSopenharmony_ci    cellularDataHandler->UpdatePhysicalConnectionState(false);
2412d43be4eSopenharmony_ci    ASSERT_TRUE(cellularDataHandler->physicalConnectionActiveState_);
2422d43be4eSopenharmony_ci}
2432d43be4eSopenharmony_ci
2442d43be4eSopenharmony_ciHWTEST_F(CellularDataHandlerBranchTest, OnReceiveEvent_001, Function | MediumTest | Level3)
2452d43be4eSopenharmony_ci{
2462d43be4eSopenharmony_ci    EventFwk::MatchingSkills matchingSkills;
2472d43be4eSopenharmony_ci    matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
2482d43be4eSopenharmony_ci    EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
2492d43be4eSopenharmony_ci    auto cellularDataHandler = std::make_shared<CellularDataHandler>(subscriberInfo, 2);
2502d43be4eSopenharmony_ci    cellularDataHandler->Init();
2512d43be4eSopenharmony_ci
2522d43be4eSopenharmony_ci    auto want = EventFwk::Want();
2532d43be4eSopenharmony_ci    want.SetAction(EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
2542d43be4eSopenharmony_ci    auto event = EventFwk::CommonEventData(want);
2552d43be4eSopenharmony_ci    cellularDataHandler->OnReceiveEvent(event);
2562d43be4eSopenharmony_ci    ASSERT_EQ(want.GetAction(), EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
2572d43be4eSopenharmony_ci
2582d43be4eSopenharmony_ci    want.SetAction(EventFwk::CommonEventSupport::COMMON_EVENT_SIM_CARD_DEFAULT_DATA_SUBSCRIPTION_CHANGED);
2592d43be4eSopenharmony_ci    event = EventFwk::CommonEventData(want);
2602d43be4eSopenharmony_ci    cellularDataHandler->OnReceiveEvent(event);
2612d43be4eSopenharmony_ci    ASSERT_EQ(want.GetAction(), EventFwk::CommonEventSupport::COMMON_EVENT_SIM_CARD_DEFAULT_DATA_SUBSCRIPTION_CHANGED);
2622d43be4eSopenharmony_ci
2632d43be4eSopenharmony_ci    want.SetAction(EventFwk::CommonEventSupport::COMMON_EVENT_OPERATOR_CONFIG_CHANGED);
2642d43be4eSopenharmony_ci    event = EventFwk::CommonEventData(want);
2652d43be4eSopenharmony_ci    cellularDataHandler->OnReceiveEvent(event);
2662d43be4eSopenharmony_ci    ASSERT_EQ(want.GetAction(), EventFwk::CommonEventSupport::COMMON_EVENT_OPERATOR_CONFIG_CHANGED);
2672d43be4eSopenharmony_ci
2682d43be4eSopenharmony_ci    want.SetAction(EventFwk::CommonEventSupport::COMMON_EVENT_SCREEN_ON);
2692d43be4eSopenharmony_ci    event = EventFwk::CommonEventData(want);
2702d43be4eSopenharmony_ci    cellularDataHandler->OnReceiveEvent(event);
2712d43be4eSopenharmony_ci    ASSERT_EQ(want.GetAction(), EventFwk::CommonEventSupport::COMMON_EVENT_SCREEN_ON);
2722d43be4eSopenharmony_ci
2732d43be4eSopenharmony_ci    want.SetAction(EventFwk::CommonEventSupport::COMMON_EVENT_SCREEN_OFF);
2742d43be4eSopenharmony_ci    event = EventFwk::CommonEventData(want);
2752d43be4eSopenharmony_ci    cellularDataHandler->OnReceiveEvent(event);
2762d43be4eSopenharmony_ci    ASSERT_EQ(want.GetAction(), EventFwk::CommonEventSupport::COMMON_EVENT_SCREEN_OFF);
2772d43be4eSopenharmony_ci
2782d43be4eSopenharmony_ci    want.SetAction(EventFwk::CommonEventSupport::COMMON_EVENT_DATA_SHARE_READY);
2792d43be4eSopenharmony_ci    event = EventFwk::CommonEventData(want);
2802d43be4eSopenharmony_ci    cellularDataHandler->OnReceiveEvent(event);
2812d43be4eSopenharmony_ci    ASSERT_EQ(want.GetAction(), EventFwk::CommonEventSupport::COMMON_EVENT_DATA_SHARE_READY);
2822d43be4eSopenharmony_ci}
2832d43be4eSopenharmony_ci
2842d43be4eSopenharmony_ciHWTEST_F(CellularDataHandlerBranchTest, OnReceiveEvent_002, Function | MediumTest | Level3)
2852d43be4eSopenharmony_ci{
2862d43be4eSopenharmony_ci    EventFwk::MatchingSkills matchingSkills;
2872d43be4eSopenharmony_ci    matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
2882d43be4eSopenharmony_ci    EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
2892d43be4eSopenharmony_ci    auto cellularDataHandler = std::make_shared<CellularDataHandler>(subscriberInfo, 0);
2902d43be4eSopenharmony_ci    cellularDataHandler->Init();
2912d43be4eSopenharmony_ci
2922d43be4eSopenharmony_ci    auto want = EventFwk::Want();
2932d43be4eSopenharmony_ci    want.SetAction(EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
2942d43be4eSopenharmony_ci    auto event = EventFwk::CommonEventData(want);
2952d43be4eSopenharmony_ci    cellularDataHandler->OnReceiveEvent(event);
2962d43be4eSopenharmony_ci    ASSERT_EQ(want.GetAction(), EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
2972d43be4eSopenharmony_ci
2982d43be4eSopenharmony_ci    want.SetAction(EventFwk::CommonEventSupport::COMMON_EVENT_SIM_CARD_DEFAULT_DATA_SUBSCRIPTION_CHANGED);
2992d43be4eSopenharmony_ci    event = EventFwk::CommonEventData(want);
3002d43be4eSopenharmony_ci    cellularDataHandler->OnReceiveEvent(event);
3012d43be4eSopenharmony_ci    ASSERT_EQ(want.GetAction(), EventFwk::CommonEventSupport::COMMON_EVENT_SIM_CARD_DEFAULT_DATA_SUBSCRIPTION_CHANGED);
3022d43be4eSopenharmony_ci
3032d43be4eSopenharmony_ci    want.SetAction(EventFwk::CommonEventSupport::COMMON_EVENT_OPERATOR_CONFIG_CHANGED);
3042d43be4eSopenharmony_ci    event = EventFwk::CommonEventData(want);
3052d43be4eSopenharmony_ci    cellularDataHandler->OnReceiveEvent(event);
3062d43be4eSopenharmony_ci    ASSERT_EQ(want.GetAction(), EventFwk::CommonEventSupport::COMMON_EVENT_OPERATOR_CONFIG_CHANGED);
3072d43be4eSopenharmony_ci
3082d43be4eSopenharmony_ci    want.SetAction(EventFwk::CommonEventSupport::COMMON_EVENT_SCREEN_ON);
3092d43be4eSopenharmony_ci    event = EventFwk::CommonEventData(want);
3102d43be4eSopenharmony_ci    cellularDataHandler->OnReceiveEvent(event);
3112d43be4eSopenharmony_ci    ASSERT_EQ(want.GetAction(), EventFwk::CommonEventSupport::COMMON_EVENT_SCREEN_ON);
3122d43be4eSopenharmony_ci
3132d43be4eSopenharmony_ci    want.SetAction(EventFwk::CommonEventSupport::COMMON_EVENT_SCREEN_OFF);
3142d43be4eSopenharmony_ci    event = EventFwk::CommonEventData(want);
3152d43be4eSopenharmony_ci    cellularDataHandler->OnReceiveEvent(event);
3162d43be4eSopenharmony_ci    ASSERT_EQ(want.GetAction(), EventFwk::CommonEventSupport::COMMON_EVENT_SCREEN_OFF);
3172d43be4eSopenharmony_ci
3182d43be4eSopenharmony_ci    want.SetAction(EventFwk::CommonEventSupport::COMMON_EVENT_DATA_SHARE_READY);
3192d43be4eSopenharmony_ci    event = EventFwk::CommonEventData(want);
3202d43be4eSopenharmony_ci    cellularDataHandler->OnReceiveEvent(event);
3212d43be4eSopenharmony_ci    ASSERT_EQ(want.GetAction(), EventFwk::CommonEventSupport::COMMON_EVENT_DATA_SHARE_READY);
3222d43be4eSopenharmony_ci}
3232d43be4eSopenharmony_ci
3242d43be4eSopenharmony_ciHWTEST_F(CellularDataHandlerBranchTest, HandleScreenStateChanged_001, Function | MediumTest | Level3)
3252d43be4eSopenharmony_ci{
3262d43be4eSopenharmony_ci    EventFwk::MatchingSkills matchingSkills;
3272d43be4eSopenharmony_ci    matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
3282d43be4eSopenharmony_ci    EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
3292d43be4eSopenharmony_ci    auto cellularDataHandler = std::make_shared<CellularDataHandler>(subscriberInfo, 0);
3302d43be4eSopenharmony_ci    cellularDataHandler->HandleScreenStateChanged(true);
3312d43be4eSopenharmony_ci    ASSERT_EQ(cellularDataHandler->connectionManager_, nullptr);
3322d43be4eSopenharmony_ci    cellularDataHandler->Init();
3332d43be4eSopenharmony_ci    cellularDataHandler->HandleScreenStateChanged(true);
3342d43be4eSopenharmony_ci    ASSERT_NE(cellularDataHandler->connectionManager_, nullptr);
3352d43be4eSopenharmony_ci}
3362d43be4eSopenharmony_ci
3372d43be4eSopenharmony_ciHWTEST_F(CellularDataHandlerBranchTest, UpdateCellularDataConnectState_001, Function | MediumTest | Level3)
3382d43be4eSopenharmony_ci{
3392d43be4eSopenharmony_ci    EventFwk::MatchingSkills matchingSkills;
3402d43be4eSopenharmony_ci    matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
3412d43be4eSopenharmony_ci    EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
3422d43be4eSopenharmony_ci    auto cellularDataHandler = std::make_shared<CellularDataHandler>(subscriberInfo, 0);
3432d43be4eSopenharmony_ci    cellularDataHandler->Init();
3442d43be4eSopenharmony_ci
3452d43be4eSopenharmony_ci    cellularDataHandler->UpdateCellularDataConnectState("default");
3462d43be4eSopenharmony_ci    ASSERT_NE(cellularDataHandler->apnManager_, nullptr);
3472d43be4eSopenharmony_ci
3482d43be4eSopenharmony_ci    cellularDataHandler->UpdateCellularDataConnectState("internal_default");
3492d43be4eSopenharmony_ci    ASSERT_NE(cellularDataHandler->apnManager_, nullptr);
3502d43be4eSopenharmony_ci
3512d43be4eSopenharmony_ci    cellularDataHandler->UpdateCellularDataConnectState("mss");
3522d43be4eSopenharmony_ci    ASSERT_NE(cellularDataHandler->apnManager_, nullptr);
3532d43be4eSopenharmony_ci}
3542d43be4eSopenharmony_ci
3552d43be4eSopenharmony_ciHWTEST_F(CellularDataHandlerBranchTest, HandleDBSettingIncallChanged_001, Function | MediumTest | Level3)
3562d43be4eSopenharmony_ci{
3572d43be4eSopenharmony_ci    EventFwk::MatchingSkills matchingSkills;
3582d43be4eSopenharmony_ci    matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
3592d43be4eSopenharmony_ci    EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
3602d43be4eSopenharmony_ci    auto cellularDataHandler = std::make_shared<CellularDataHandler>(subscriberInfo, 0);
3612d43be4eSopenharmony_ci    cellularDataHandler->Init();
3622d43be4eSopenharmony_ci    cellularDataHandler->HandleImsCallChanged(TelCallStatus::CALL_STATUS_DIALING);
3632d43be4eSopenharmony_ci
3642d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0, static_cast<int64_t>(DataSwitchCode::CELLULAR_DATA_ENABLED));
3652d43be4eSopenharmony_ci    cellularDataHandler->HandleDBSettingIncallChanged(event);
3662d43be4eSopenharmony_ci    ASSERT_NE(cellularDataHandler->incallDataStateMachine_, nullptr);
3672d43be4eSopenharmony_ci
3682d43be4eSopenharmony_ci    event = AppExecFwk::InnerEvent::Get(0, static_cast<int64_t>(DataSwitchCode::CELLULAR_DATA_DISABLED));
3692d43be4eSopenharmony_ci    cellularDataHandler->HandleDBSettingIncallChanged(event);
3702d43be4eSopenharmony_ci    ASSERT_NE(cellularDataHandler->incallDataStateMachine_, nullptr);
3712d43be4eSopenharmony_ci
3722d43be4eSopenharmony_ci    cellularDataHandler->IncallDataComplete(event);
3732d43be4eSopenharmony_ci    ASSERT_EQ(cellularDataHandler->incallDataStateMachine_, nullptr);
3742d43be4eSopenharmony_ci}
3752d43be4eSopenharmony_ci
3762d43be4eSopenharmony_ciHWTEST_F(CellularDataHandlerBranchTest, HandleImsCallChanged, Function | MediumTest | Level3)
3772d43be4eSopenharmony_ci{
3782d43be4eSopenharmony_ci    EventFwk::MatchingSkills matchingSkills;
3792d43be4eSopenharmony_ci    matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
3802d43be4eSopenharmony_ci    EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
3812d43be4eSopenharmony_ci    auto cellularDataHandler = std::make_shared<CellularDataHandler>(subscriberInfo, 0);
3822d43be4eSopenharmony_ci    cellularDataHandler->Init();
3832d43be4eSopenharmony_ci
3842d43be4eSopenharmony_ci    ASSERT_EQ(cellularDataHandler->incallDataStateMachine_, nullptr);
3852d43be4eSopenharmony_ci    cellularDataHandler->HandleImsCallChanged(TelCallStatus::CALL_STATUS_DIALING);
3862d43be4eSopenharmony_ci    cellularDataHandler->HandleImsCallChanged(TelCallStatus::CALL_STATUS_INCOMING);
3872d43be4eSopenharmony_ci    ASSERT_NE(cellularDataHandler->incallDataStateMachine_, nullptr);
3882d43be4eSopenharmony_ci    cellularDataHandler->HandleVoiceCallChanged(TelCallStatus::CALL_STATUS_DISCONNECTED);
3892d43be4eSopenharmony_ci    cellularDataHandler->HandleVoiceCallChanged(TelCallStatus::CALL_STATUS_IDLE);
3902d43be4eSopenharmony_ci    ASSERT_NE(cellularDataHandler->incallDataStateMachine_, nullptr);
3912d43be4eSopenharmony_ci}
3922d43be4eSopenharmony_ci
3932d43be4eSopenharmony_ciHWTEST_F(CellularDataHandlerBranchTest, ReleaseAllNetworkRequest, Function | MediumTest | Level3)
3942d43be4eSopenharmony_ci{
3952d43be4eSopenharmony_ci    EventFwk::MatchingSkills matchingSkills;
3962d43be4eSopenharmony_ci    matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
3972d43be4eSopenharmony_ci    EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
3982d43be4eSopenharmony_ci    auto cellularDataHandler = std::make_shared<CellularDataHandler>(subscriberInfo, 0);
3992d43be4eSopenharmony_ci    cellularDataHandler->Init();
4002d43be4eSopenharmony_ci    cellularDataHandler->ReleaseAllNetworkRequest();
4012d43be4eSopenharmony_ci    ASSERT_NE(cellularDataHandler->apnManager_, nullptr);
4022d43be4eSopenharmony_ci}
4032d43be4eSopenharmony_ci
4042d43be4eSopenharmony_ciHWTEST_F(CellularDataHandlerBranchTest, HandleSimStateChanged, Function | MediumTest | Level3)
4052d43be4eSopenharmony_ci{
4062d43be4eSopenharmony_ci    InitCellularDataHandler();
4072d43be4eSopenharmony_ci    InitMockManager();
4082d43be4eSopenharmony_ci
4092d43be4eSopenharmony_ci    SimState simState = SimState::SIM_STATE_READY;
4102d43be4eSopenharmony_ci    std::u16string iccId = u"iccId";
4112d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetSimState(_, _)).WillOnce(DoAll(SetArgReferee<1>(simState), Return(0)));
4122d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetSimIccId(_, _)).WillOnce(DoAll(SetArgReferee<1>(iccId), Return(0)));
4132d43be4eSopenharmony_ci    cellularDataHandler_->HandleSimStateChanged();
4142d43be4eSopenharmony_ci    ASSERT_NE(cellularDataHandler_->lastIccId_, iccId);
4152d43be4eSopenharmony_ci
4162d43be4eSopenharmony_ci    cellularDataHandler_->lastIccId_ = u"iccId";
4172d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetSimState(_, _)).WillOnce(DoAll(SetArgReferee<1>(simState), Return(0)));
4182d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetSimIccId(_, _)).WillOnce(DoAll(SetArgReferee<1>(iccId), Return(0)));
4192d43be4eSopenharmony_ci    cellularDataHandler_->HandleSimStateChanged();
4202d43be4eSopenharmony_ci    ASSERT_EQ(cellularDataHandler_->lastIccId_, iccId);
4212d43be4eSopenharmony_ci
4222d43be4eSopenharmony_ci    cellularDataHandler_->isSimAccountLoaded_ = true;
4232d43be4eSopenharmony_ci    cellularDataHandler_->isRilApnAttached_ = true;
4242d43be4eSopenharmony_ci    simState = SimState::SIM_STATE_NOT_PRESENT;
4252d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetSimState(_, _)).WillOnce(DoAll(SetArgReferee<1>(simState), Return(0)));
4262d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetSimId(_)).WillOnce(Return(0));
4272d43be4eSopenharmony_ci    cellularDataHandler_->HandleSimStateChanged();
4282d43be4eSopenharmony_ci
4292d43be4eSopenharmony_ci    simState = SimState::SIM_STATE_NOT_READY;
4302d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetSimState(_, _)).WillOnce(DoAll(SetArgReferee<1>(simState), Return(0)));
4312d43be4eSopenharmony_ci    cellularDataHandler_->HandleSimStateChanged();
4322d43be4eSopenharmony_ci    ASSERT_FALSE(cellularDataHandler_->isSimAccountLoaded_);
4332d43be4eSopenharmony_ci    ASSERT_FALSE(cellularDataHandler_->isRilApnAttached_);
4342d43be4eSopenharmony_ci
4352d43be4eSopenharmony_ci    UnmockManager();
4362d43be4eSopenharmony_ci}
4372d43be4eSopenharmony_ci
4382d43be4eSopenharmony_ciHWTEST_F(CellularDataHandlerBranchTest, HandleRecordsChanged, Function | MediumTest | Level3)
4392d43be4eSopenharmony_ci{
4402d43be4eSopenharmony_ci    InitCellularDataHandler();
4412d43be4eSopenharmony_ci    InitMockManager();
4422d43be4eSopenharmony_ci
4432d43be4eSopenharmony_ci    cellularDataHandler_->lastIccId_ = u"";
4442d43be4eSopenharmony_ci    std::u16string iccId = u"iccId";
4452d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetSimIccId(_, _)).WillOnce(DoAll(SetArgReferee<1>(iccId), Return(0)));
4462d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetOperatorConfigs(_, _)).Times(AtLeast(0));
4472d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetSimId(_)).Times(AtLeast(0));
4482d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetSimOperatorNumeric(_, _)).Times(2);
4492d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, IsCTSimCard(_, _)).Times(2);
4502d43be4eSopenharmony_ci    cellularDataHandler_->HandleRecordsChanged();
4512d43be4eSopenharmony_ci    ASSERT_EQ(cellularDataHandler_->lastIccId_, iccId);
4522d43be4eSopenharmony_ci
4532d43be4eSopenharmony_ci    UnmockManager();
4542d43be4eSopenharmony_ci}
4552d43be4eSopenharmony_ci
4562d43be4eSopenharmony_ciHWTEST_F(CellularDataHandlerBranchTest, HandleSimAccountLoaded, Function | MediumTest | Level3)
4572d43be4eSopenharmony_ci{
4582d43be4eSopenharmony_ci    InitCellularDataHandler();
4592d43be4eSopenharmony_ci    InitMockManager();
4602d43be4eSopenharmony_ci
4612d43be4eSopenharmony_ci    ASSERT_FALSE(cellularDataHandler_->isSimAccountLoaded_);
4622d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetDefaultCellularDataSlotId()).WillOnce(Return(0));
4632d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetSimId(_)).Times(AtLeast(0));
4642d43be4eSopenharmony_ci    cellularDataHandler_->HandleSimAccountLoaded();
4652d43be4eSopenharmony_ci    ASSERT_FALSE(cellularDataHandler_->isSimAccountLoaded_);
4662d43be4eSopenharmony_ci    cellularDataHandler_->isSimAccountLoaded_ = true;
4672d43be4eSopenharmony_ci    cellularDataHandler_->HandleSimAccountLoaded();
4682d43be4eSopenharmony_ci    ASSERT_TRUE(cellularDataHandler_->isSimAccountLoaded_);
4692d43be4eSopenharmony_ci
4702d43be4eSopenharmony_ci    UnmockManager();
4712d43be4eSopenharmony_ci}
4722d43be4eSopenharmony_ci
4732d43be4eSopenharmony_ciHWTEST_F(CellularDataHandlerBranchTest, SetPolicyDataOn, Function | MediumTest | Level3)
4742d43be4eSopenharmony_ci{
4752d43be4eSopenharmony_ci    EventFwk::MatchingSkills matchingSkills;
4762d43be4eSopenharmony_ci    matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
4772d43be4eSopenharmony_ci    EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
4782d43be4eSopenharmony_ci    auto cellularDataHandler = std::make_shared<CellularDataHandler>(subscriberInfo, 0);
4792d43be4eSopenharmony_ci    cellularDataHandler->Init();
4802d43be4eSopenharmony_ci
4812d43be4eSopenharmony_ci    cellularDataHandler->dataSwitchSettings_->SetPolicyDataOn(true);
4822d43be4eSopenharmony_ci    cellularDataHandler->SetPolicyDataOn(false);
4832d43be4eSopenharmony_ci    ASSERT_FALSE(cellularDataHandler->dataSwitchSettings_->IsPolicyDataOn());
4842d43be4eSopenharmony_ci
4852d43be4eSopenharmony_ci    cellularDataHandler->SetPolicyDataOn(true);
4862d43be4eSopenharmony_ci    ASSERT_TRUE(cellularDataHandler->dataSwitchSettings_->IsPolicyDataOn());
4872d43be4eSopenharmony_ci}
4882d43be4eSopenharmony_ci
4892d43be4eSopenharmony_ciHWTEST_F(CellularDataHandlerBranchTest, ChangeConnectionForDsds, Function | MediumTest | Level3)
4902d43be4eSopenharmony_ci{
4912d43be4eSopenharmony_ci    EventFwk::MatchingSkills matchingSkills;
4922d43be4eSopenharmony_ci    matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
4932d43be4eSopenharmony_ci    EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
4942d43be4eSopenharmony_ci    auto cellularDataHandler = std::make_shared<CellularDataHandler>(subscriberInfo, 0);
4952d43be4eSopenharmony_ci    cellularDataHandler->Init();
4962d43be4eSopenharmony_ci
4972d43be4eSopenharmony_ci    cellularDataHandler->ChangeConnectionForDsds(false);
4982d43be4eSopenharmony_ci    ASSERT_TRUE(cellularDataHandler->ChangeConnectionForDsds(false));
4992d43be4eSopenharmony_ci    ASSERT_TRUE(cellularDataHandler->ChangeConnectionForDsds(true));
5002d43be4eSopenharmony_ci}
5012d43be4eSopenharmony_ci
5022d43be4eSopenharmony_ciHWTEST_F(CellularDataHandlerBranchTest, HandleDBSettingRoamingChanged, Function | MediumTest | Level3)
5032d43be4eSopenharmony_ci{
5042d43be4eSopenharmony_ci    EventFwk::MatchingSkills matchingSkills;
5052d43be4eSopenharmony_ci    matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
5062d43be4eSopenharmony_ci    EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
5072d43be4eSopenharmony_ci    auto cellularDataHandler = std::make_shared<CellularDataHandler>(subscriberInfo, 0);
5082d43be4eSopenharmony_ci    cellularDataHandler->Init();
5092d43be4eSopenharmony_ci
5102d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0, static_cast<int64_t>(RoamingSwitchCode::CELLULAR_DATA_ROAMING_ENABLED));
5112d43be4eSopenharmony_ci    cellularDataHandler->HandleDBSettingRoamingChanged(event);
5122d43be4eSopenharmony_ci
5132d43be4eSopenharmony_ci    event = AppExecFwk::InnerEvent::Get(0, static_cast<int64_t>(RoamingSwitchCode::CELLULAR_DATA_ROAMING_DISABLED));
5142d43be4eSopenharmony_ci    cellularDataHandler->HandleDBSettingRoamingChanged(event);
5152d43be4eSopenharmony_ci    ASSERT_EQ(event->GetParam(), 0);
5162d43be4eSopenharmony_ci}
5172d43be4eSopenharmony_ci
5182d43be4eSopenharmony_ciHWTEST_F(CellularDataHandlerBranchTest, UnRegisterDataSettingObserver, Function | MediumTest | Level3)
5192d43be4eSopenharmony_ci{
5202d43be4eSopenharmony_ci    InitCellularDataHandler();
5212d43be4eSopenharmony_ci    InitMockManager();
5222d43be4eSopenharmony_ci
5232d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetSimId(_)).WillOnce(Return(1));
5242d43be4eSopenharmony_ci    cellularDataHandler_->UnRegisterDataSettingObserver();
5252d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetSimId(_)).WillOnce(Return(1));
5262d43be4eSopenharmony_ci    cellularDataHandler_->RegisterDataSettingObserver();
5272d43be4eSopenharmony_ci    ASSERT_NE(cellularDataHandler_->settingObserver_, nullptr);
5282d43be4eSopenharmony_ci    ASSERT_NE(cellularDataHandler_->roamingObserver_, nullptr);
5292d43be4eSopenharmony_ci    ASSERT_NE(cellularDataHandler_->incallObserver_, nullptr);
5302d43be4eSopenharmony_ci    ASSERT_NE(cellularDataHandler_->cellularDataRdbObserver_, nullptr);
5312d43be4eSopenharmony_ci
5322d43be4eSopenharmony_ci    UnmockManager();
5332d43be4eSopenharmony_ci}
5342d43be4eSopenharmony_ci
5352d43be4eSopenharmony_ciHWTEST_F(CellularDataHandlerBranchTest, CheckForCompatibleDataConnection, Function | MediumTest | Level3)
5362d43be4eSopenharmony_ci{
5372d43be4eSopenharmony_ci    EventFwk::MatchingSkills matchingSkills;
5382d43be4eSopenharmony_ci    matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
5392d43be4eSopenharmony_ci    EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
5402d43be4eSopenharmony_ci    auto cellularDataHandler = std::make_shared<CellularDataHandler>(subscriberInfo, 0);
5412d43be4eSopenharmony_ci    cellularDataHandler->Init();
5422d43be4eSopenharmony_ci
5432d43be4eSopenharmony_ci    sptr<ApnHolder> apnHolder = new ApnHolder("dun", 0);
5442d43be4eSopenharmony_ci    cellularDataHandler->CheckForCompatibleDataConnection(apnHolder);
5452d43be4eSopenharmony_ci    ASSERT_EQ(apnHolder->GetApnType(), DATA_CONTEXT_ROLE_DUN);
5462d43be4eSopenharmony_ci}
5472d43be4eSopenharmony_ci
5482d43be4eSopenharmony_ciHWTEST_F(CellularDataHandlerBranchTest, ReleaseCellularDataConnection, Function | MediumTest | Level3)
5492d43be4eSopenharmony_ci{
5502d43be4eSopenharmony_ci    EventFwk::MatchingSkills matchingSkills;
5512d43be4eSopenharmony_ci    matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
5522d43be4eSopenharmony_ci    EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
5532d43be4eSopenharmony_ci    auto cellularDataHandler = std::make_shared<CellularDataHandler>(subscriberInfo, 0);
5542d43be4eSopenharmony_ci
5552d43be4eSopenharmony_ci    cellularDataHandler->ReleaseCellularDataConnection();
5562d43be4eSopenharmony_ci    ASSERT_EQ(cellularDataHandler->apnManager_, nullptr);
5572d43be4eSopenharmony_ci    cellularDataHandler->Init();
5582d43be4eSopenharmony_ci    cellularDataHandler->ReleaseCellularDataConnection();
5592d43be4eSopenharmony_ci    ASSERT_NE(cellularDataHandler->apnManager_, nullptr);
5602d43be4eSopenharmony_ci}
5612d43be4eSopenharmony_ci
5622d43be4eSopenharmony_ci}  // namespace Telephony
5632d43be4eSopenharmony_ci}  // namespace OHOS