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