12d43be4eSopenharmony_ci/*
22d43be4eSopenharmony_ci * Copyright (C) 2022 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#include "activating.h"
182d43be4eSopenharmony_ci#include "active.h"
192d43be4eSopenharmony_ci#include "apn_holder.h"
202d43be4eSopenharmony_ci#include "apn_item.h"
212d43be4eSopenharmony_ci#include "apn_manager.h"
222d43be4eSopenharmony_ci#include "cellular_data_client.h"
232d43be4eSopenharmony_ci#include "cellular_data_constant.h"
242d43be4eSopenharmony_ci#include "cellular_data_controller.h"
252d43be4eSopenharmony_ci#include "cellular_data_dump_helper.h"
262d43be4eSopenharmony_ci#include "cellular_data_error.h"
272d43be4eSopenharmony_ci#include "cellular_data_handler.h"
282d43be4eSopenharmony_ci#include "cellular_data_hisysevent.h"
292d43be4eSopenharmony_ci#include "cellular_data_rdb_observer.h"
302d43be4eSopenharmony_ci#include "cellular_data_roaming_observer.h"
312d43be4eSopenharmony_ci#include "cellular_data_service.h"
322d43be4eSopenharmony_ci#include "cellular_data_service_stub.h"
332d43be4eSopenharmony_ci#include "cellular_data_setting_observer.h"
342d43be4eSopenharmony_ci#include "cellular_data_settings_rdb_helper.h"
352d43be4eSopenharmony_ci#include "cellular_data_state_machine.h"
362d43be4eSopenharmony_ci#include "cellular_data_utils.h"
372d43be4eSopenharmony_ci#include "common_event_manager.h"
382d43be4eSopenharmony_ci#include "common_event_support.h"
392d43be4eSopenharmony_ci#include "data_access_token.h"
402d43be4eSopenharmony_ci#include "data_connection_manager.h"
412d43be4eSopenharmony_ci#include "data_connection_monitor.h"
422d43be4eSopenharmony_ci#include "datashare_result_set.h"
432d43be4eSopenharmony_ci#include "default.h"
442d43be4eSopenharmony_ci#include "disconnecting.h"
452d43be4eSopenharmony_ci#include "gtest/gtest.h"
462d43be4eSopenharmony_ci#include "inactive.h"
472d43be4eSopenharmony_ci#include "incall_data_state_machine.h"
482d43be4eSopenharmony_ci#include "net_manager_call_back.h"
492d43be4eSopenharmony_ci#include "net_manager_tactics_call_back.h"
502d43be4eSopenharmony_ci#include "network_search_callback.h"
512d43be4eSopenharmony_ci#include "pdp_profile_data.h"
522d43be4eSopenharmony_ci#include "state_notification.h"
532d43be4eSopenharmony_ci#include "telephony_errors.h"
542d43be4eSopenharmony_ci#include "telephony_hisysevent.h"
552d43be4eSopenharmony_ci#include "telephony_log_wrapper.h"
562d43be4eSopenharmony_ci#include "uri.h"
572d43be4eSopenharmony_ci
582d43be4eSopenharmony_cinamespace OHOS {
592d43be4eSopenharmony_cinamespace Telephony {
602d43be4eSopenharmony_ciusing namespace testing::ext;
612d43be4eSopenharmony_ci
622d43be4eSopenharmony_cinamespace {
632d43be4eSopenharmony_ciconst int32_t INVALID_SLOTID = -1;
642d43be4eSopenharmony_ciconst int32_t INVALID_SLOTID_TWO = 5;
652d43be4eSopenharmony_ciconst int32_t INVALID_CID = -1;
662d43be4eSopenharmony_ciconst int32_t INVALID_FD = -1;
672d43be4eSopenharmony_ciconst int32_t SLEEP_TIME_SECONDS = 3;
682d43be4eSopenharmony_ciconst std::string ADDRESS = "127.0.0.1";
692d43be4eSopenharmony_ciconst std::string FLAG = ".";
702d43be4eSopenharmony_ci} // namespace
712d43be4eSopenharmony_ci
722d43be4eSopenharmony_ciclass DemoHandler : public AppExecFwk::EventHandler {
732d43be4eSopenharmony_cipublic:
742d43be4eSopenharmony_ci    explicit DemoHandler(std::shared_ptr<AppExecFwk::EventRunner> &runner) : AppExecFwk::EventHandler(runner) {}
752d43be4eSopenharmony_ci    virtual ~DemoHandler() {}
762d43be4eSopenharmony_ci    void ProcessEvent(const AppExecFwk::InnerEvent::Pointer &event) {}
772d43be4eSopenharmony_ci};
782d43be4eSopenharmony_ci
792d43be4eSopenharmony_ciclass BranchTest : public testing::Test {
802d43be4eSopenharmony_cipublic:
812d43be4eSopenharmony_ci    static void SetUpTestCase();
822d43be4eSopenharmony_ci    static void TearDownTestCase();
832d43be4eSopenharmony_ci    void SetUp();
842d43be4eSopenharmony_ci    void TearDown();
852d43be4eSopenharmony_ci};
862d43be4eSopenharmony_civoid BranchTest::SetUpTestCase() {}
872d43be4eSopenharmony_ci
882d43be4eSopenharmony_civoid BranchTest::TearDownTestCase() {}
892d43be4eSopenharmony_ci
902d43be4eSopenharmony_civoid BranchTest::SetUp() {}
912d43be4eSopenharmony_ci
922d43be4eSopenharmony_civoid BranchTest::TearDown() {}
932d43be4eSopenharmony_ci
942d43be4eSopenharmony_ciclass StateMachineTest : public TelEventHandler {
952d43be4eSopenharmony_cipublic:
962d43be4eSopenharmony_ci    StateMachineTest() : TelEventHandler("StateMachineTest") {}
972d43be4eSopenharmony_ci    ~StateMachineTest() = default;
982d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> CreateCellularDataConnect(int32_t slotId);
992d43be4eSopenharmony_ci
1002d43be4eSopenharmony_cipublic:
1012d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> cellularDataStateMachine_ = nullptr;
1022d43be4eSopenharmony_ci};
1032d43be4eSopenharmony_ci
1042d43be4eSopenharmony_cistd::shared_ptr<CellularDataStateMachine> StateMachineTest::CreateCellularDataConnect(int32_t slotId)
1052d43be4eSopenharmony_ci{
1062d43be4eSopenharmony_ci    if (cellularDataStateMachine_ != nullptr) {
1072d43be4eSopenharmony_ci        return cellularDataStateMachine_;
1082d43be4eSopenharmony_ci    }
1092d43be4eSopenharmony_ci    sptr<DataConnectionManager> connectionManager = std::make_unique<DataConnectionManager>(slotId).release();
1102d43be4eSopenharmony_ci    if (connectionManager == nullptr) {
1112d43be4eSopenharmony_ci        return nullptr;
1122d43be4eSopenharmony_ci    }
1132d43be4eSopenharmony_ci    connectionManager->Init();
1142d43be4eSopenharmony_ci    cellularDataStateMachine_ = std::make_shared<CellularDataStateMachine>(
1152d43be4eSopenharmony_ci        connectionManager, std::static_pointer_cast<TelEventHandler>(shared_from_this()));
1162d43be4eSopenharmony_ci    return cellularDataStateMachine_;
1172d43be4eSopenharmony_ci}
1182d43be4eSopenharmony_ci
1192d43be4eSopenharmony_ciclass IncallStateMachineTest : public TelEventHandler {
1202d43be4eSopenharmony_cipublic:
1212d43be4eSopenharmony_ci    IncallStateMachineTest() : TelEventHandler("IncallStateMachineTest") {}
1222d43be4eSopenharmony_ci    ~IncallStateMachineTest() = default;
1232d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> CreateIncallDataStateMachine(int32_t slotId);
1242d43be4eSopenharmony_ci
1252d43be4eSopenharmony_cipublic:
1262d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine_ = nullptr;
1272d43be4eSopenharmony_ci};
1282d43be4eSopenharmony_ci
1292d43be4eSopenharmony_cistd::shared_ptr<IncallDataStateMachine> IncallStateMachineTest::CreateIncallDataStateMachine(int32_t slotId)
1302d43be4eSopenharmony_ci{
1312d43be4eSopenharmony_ci    if (incallStateMachine_ != nullptr) {
1322d43be4eSopenharmony_ci        return incallStateMachine_;
1332d43be4eSopenharmony_ci    }
1342d43be4eSopenharmony_ci    sptr<ApnManager> apnManager = std::make_unique<ApnManager>().release();
1352d43be4eSopenharmony_ci    if (apnManager == nullptr) {
1362d43be4eSopenharmony_ci        return nullptr;
1372d43be4eSopenharmony_ci    }
1382d43be4eSopenharmony_ci    incallStateMachine_ = std::make_shared<IncallDataStateMachine>(slotId,
1392d43be4eSopenharmony_ci        std::weak_ptr<TelEventHandler>(std::static_pointer_cast<TelEventHandler>(shared_from_this())), apnManager);
1402d43be4eSopenharmony_ci    return incallStateMachine_;
1412d43be4eSopenharmony_ci}
1422d43be4eSopenharmony_ci
1432d43be4eSopenharmony_ci/**
1442d43be4eSopenharmony_ci * @tc.number   Telephony_CellularDataHandler_001
1452d43be4eSopenharmony_ci * @tc.name     test error branch
1462d43be4eSopenharmony_ci * @tc.desc     Function test
1472d43be4eSopenharmony_ci */
1482d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_CellularDataHandler_001, Function | MediumTest | Level1)
1492d43be4eSopenharmony_ci{
1502d43be4eSopenharmony_ci    EventFwk::MatchingSkills matchingSkills;
1512d43be4eSopenharmony_ci    matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
1522d43be4eSopenharmony_ci    EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
1532d43be4eSopenharmony_ci    CellularDataHandler cellularDataHandler { subscriberInfo, 0 };
1542d43be4eSopenharmony_ci    cellularDataHandler.HandleSimStateChanged();
1552d43be4eSopenharmony_ci    cellularDataHandler.ReleaseAllNetworkRequest();
1562d43be4eSopenharmony_ci    cellularDataHandler.CreateApnItem();
1572d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
1582d43be4eSopenharmony_ci    event = nullptr;
1592d43be4eSopenharmony_ci    cellularDataHandler.ProcessEvent(event);
1602d43be4eSopenharmony_ci    EventFwk::CommonEventData data;
1612d43be4eSopenharmony_ci    cellularDataHandler.OnReceiveEvent(data);
1622d43be4eSopenharmony_ci    ASSERT_NE(cellularDataHandler.SetCellularDataEnable(true), TELEPHONY_ERR_SUCCESS);
1632d43be4eSopenharmony_ci    bool dataEnaled = false;
1642d43be4eSopenharmony_ci    cellularDataHandler.IsCellularDataEnabled(dataEnaled);
1652d43be4eSopenharmony_ci    ASSERT_FALSE(dataEnaled);
1662d43be4eSopenharmony_ci    bool dataRoamingEnabled = false;
1672d43be4eSopenharmony_ci    cellularDataHandler.IsCellularDataRoamingEnabled(dataRoamingEnabled);
1682d43be4eSopenharmony_ci    ASSERT_FALSE(dataRoamingEnabled);
1692d43be4eSopenharmony_ci    ASSERT_NE(cellularDataHandler.SetCellularDataRoamingEnabled(true), TELEPHONY_ERR_SUCCESS);
1702d43be4eSopenharmony_ci    ASSERT_EQ(ApnProfileState::PROFILE_STATE_IDLE, cellularDataHandler.GetCellularDataState());
1712d43be4eSopenharmony_ci    ASSERT_EQ(ApnProfileState::PROFILE_STATE_IDLE, cellularDataHandler.GetCellularDataState(""));
1722d43be4eSopenharmony_ci    sptr<ApnHolder> apnHolder;
1732d43be4eSopenharmony_ci    DisConnectionReason reason = cellularDataHandler.GetDisConnectionReason();
1742d43be4eSopenharmony_ci    cellularDataHandler.ClearConnection(apnHolder, reason);
1752d43be4eSopenharmony_ci    cellularDataHandler.EstablishAllApnsIfConnectable();
1762d43be4eSopenharmony_ci    cellularDataHandler.ClearAllConnections(reason);
1772d43be4eSopenharmony_ci    cellularDataHandler.GetSlotId();
1782d43be4eSopenharmony_ci    ASSERT_FALSE(cellularDataHandler.HandleApnChanged());
1792d43be4eSopenharmony_ci    cellularDataHandler.HandleApnChanged(event);
1802d43be4eSopenharmony_ci    cellularDataHandler.GetCellularDataFlowType();
1812d43be4eSopenharmony_ci    cellularDataHandler.SetPolicyDataOn(true);
1822d43be4eSopenharmony_ci    ASSERT_FALSE(cellularDataHandler.IsRestrictedMode());
1832d43be4eSopenharmony_ci    cellularDataHandler.GetDisConnectionReason();
1842d43be4eSopenharmony_ci    ASSERT_FALSE(cellularDataHandler.HasInternetCapability(0));
1852d43be4eSopenharmony_ci    ASSERT_EQ(nullptr, cellularDataHandler.FindIdleCellularDataConnection());
1862d43be4eSopenharmony_ci    cellularDataHandler.AttemptEstablishDataConnection(apnHolder);
1872d43be4eSopenharmony_ci    ASSERT_FALSE(cellularDataHandler.CheckAttachAndSimState(apnHolder));
1882d43be4eSopenharmony_ci    ASSERT_FALSE(cellularDataHandler.CheckRoamingState(apnHolder));
1892d43be4eSopenharmony_ci    ASSERT_FALSE(cellularDataHandler.CheckApnState(apnHolder));
1902d43be4eSopenharmony_ci    cellularDataHandler.RemoveAllEvents();
1912d43be4eSopenharmony_ci    sleep(SLEEP_TIME_SECONDS);
1922d43be4eSopenharmony_ci}
1932d43be4eSopenharmony_ci
1942d43be4eSopenharmony_ci/**
1952d43be4eSopenharmony_ci * @tc.number   Telephony_CellularDataHandler_002
1962d43be4eSopenharmony_ci * @tc.name     test error branch
1972d43be4eSopenharmony_ci * @tc.desc     Function test
1982d43be4eSopenharmony_ci */
1992d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_CellularDataHandler_002, Function | MediumTest | Level1)
2002d43be4eSopenharmony_ci{
2012d43be4eSopenharmony_ci    EventFwk::MatchingSkills matchingSkills;
2022d43be4eSopenharmony_ci    matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
2032d43be4eSopenharmony_ci    EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
2042d43be4eSopenharmony_ci    CellularDataHandler cellularDataHandler { subscriberInfo, 0 };
2052d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
2062d43be4eSopenharmony_ci    event = nullptr;
2072d43be4eSopenharmony_ci    sptr<ApnHolder> apnHolder;
2082d43be4eSopenharmony_ci    ApnItem::Attribute apnAttr;
2092d43be4eSopenharmony_ci    cellularDataHandler.RadioPsConnectionAttached(event);
2102d43be4eSopenharmony_ci    cellularDataHandler.RadioPsConnectionDetached(event);
2112d43be4eSopenharmony_ci    cellularDataHandler.RoamingStateOn(event);
2122d43be4eSopenharmony_ci    cellularDataHandler.RoamingStateOff(event);
2132d43be4eSopenharmony_ci    cellularDataHandler.EstablishDataConnectionComplete(event);
2142d43be4eSopenharmony_ci    cellularDataHandler.DisconnectDataComplete(event);
2152d43be4eSopenharmony_ci    cellularDataHandler.MsgEstablishDataConnection(event);
2162d43be4eSopenharmony_ci    cellularDataHandler.MsgRequestNetwork(event);
2172d43be4eSopenharmony_ci    cellularDataHandler.HandleSettingSwitchChanged(event);
2182d43be4eSopenharmony_ci    cellularDataHandler.HandleDBSettingIncallChanged(event);
2192d43be4eSopenharmony_ci    cellularDataHandler.HandleDefaultDataSubscriptionChanged();
2202d43be4eSopenharmony_ci    cellularDataHandler.IncallDataComplete(event);
2212d43be4eSopenharmony_ci    cellularDataHandler.HandleCallChanged(0);
2222d43be4eSopenharmony_ci    cellularDataHandler.HandleImsCallChanged(0);
2232d43be4eSopenharmony_ci    cellularDataHandler.HandleVoiceCallChanged(0);
2242d43be4eSopenharmony_ci    cellularDataHandler.HandleSimEvent(event);
2252d43be4eSopenharmony_ci    cellularDataHandler.HandleSimAccountLoaded();
2262d43be4eSopenharmony_ci    cellularDataHandler.HandleRadioStateChanged(event);
2272d43be4eSopenharmony_ci    cellularDataHandler.HandleDsdsModeChanged(event);
2282d43be4eSopenharmony_ci    cellularDataHandler.SetRilAttachApnResponse(event);
2292d43be4eSopenharmony_ci    cellularDataHandler.GetDefaultConfiguration();
2302d43be4eSopenharmony_ci    cellularDataHandler.GetDefaultDataRoamingConfig();
2312d43be4eSopenharmony_ci    cellularDataHandler.HandleRadioNrStateChanged(event);
2322d43be4eSopenharmony_ci    cellularDataHandler.HandleRadioNrFrequencyChanged(event);
2332d43be4eSopenharmony_ci    cellularDataHandler.HandleDBSettingEnableChanged(event);
2342d43be4eSopenharmony_ci    cellularDataHandler.HandleDBSettingRoamingChanged(event);
2352d43be4eSopenharmony_ci    cellularDataHandler.SetDataPermittedResponse(event);
2362d43be4eSopenharmony_ci    cellularDataHandler.OnRilAdapterHostDied(event);
2372d43be4eSopenharmony_ci    cellularDataHandler.OnCleanAllDataConnectionsDone(event);
2382d43be4eSopenharmony_ci    cellularDataHandler.RegisterDataSettingObserver();
2392d43be4eSopenharmony_ci    cellularDataHandler.UnRegisterDataSettingObserver();
2402d43be4eSopenharmony_ci    cellularDataHandler.GetDataConnApnAttr(apnAttr);
2412d43be4eSopenharmony_ci    cellularDataHandler.HandleFactoryReset(event);
2422d43be4eSopenharmony_ci    ASSERT_FALSE(cellularDataHandler.HasAnyHigherPriorityConnection(apnHolder));
2432d43be4eSopenharmony_ci    cellularDataHandler.RemoveAllEvents();
2442d43be4eSopenharmony_ci    sleep(SLEEP_TIME_SECONDS);
2452d43be4eSopenharmony_ci}
2462d43be4eSopenharmony_ci
2472d43be4eSopenharmony_ci/**
2482d43be4eSopenharmony_ci * @tc.number   Telephony_CellularDataHandler_003
2492d43be4eSopenharmony_ci * @tc.name     test error branch
2502d43be4eSopenharmony_ci * @tc.desc     Function test
2512d43be4eSopenharmony_ci */
2522d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_CellularDataHandler_003, Function | MediumTest | Level3)
2532d43be4eSopenharmony_ci{
2542d43be4eSopenharmony_ci    EventFwk::MatchingSkills matchingSkills;
2552d43be4eSopenharmony_ci    matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
2562d43be4eSopenharmony_ci    EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
2572d43be4eSopenharmony_ci    CellularDataHandler cellularDataHandler { subscriberInfo, INVALID_SLOTID };
2582d43be4eSopenharmony_ci    cellularDataHandler.apnManager_ = std::make_unique<ApnManager>().release();
2592d43be4eSopenharmony_ci    cellularDataHandler.SetDataPermittedForMms(false);
2602d43be4eSopenharmony_ci    sptr<ApnHolder> apnHolder = new ApnHolder("", 0);
2612d43be4eSopenharmony_ci    DisConnectionReason reason = DisConnectionReason::REASON_NORMAL;
2622d43be4eSopenharmony_ci    cellularDataHandler.ClearConnection(apnHolder, reason);
2632d43be4eSopenharmony_ci    cellularDataHandler.EstablishAllApnsIfConnectable();
2642d43be4eSopenharmony_ci    cellularDataHandler.ClearAllConnections(reason);
2652d43be4eSopenharmony_ci    cellularDataHandler.ChangeConnectionForDsds(false);
2662d43be4eSopenharmony_ci    cellularDataHandler.ChangeConnectionForDsds(true);
2672d43be4eSopenharmony_ci    cellularDataHandler.connectionManager_ = std::make_unique<DataConnectionManager>(INVALID_SLOTID).release();
2682d43be4eSopenharmony_ci    cellularDataHandler.ClearAllConnections(reason);
2692d43be4eSopenharmony_ci    cellularDataHandler.EstablishAllApnsIfConnectable();
2702d43be4eSopenharmony_ci    cellularDataHandler.UpdatePhysicalConnectionState(true);
2712d43be4eSopenharmony_ci    cellularDataHandler.ClearAllConnections(DisConnectionReason::REASON_CLEAR_CONNECTION);
2722d43be4eSopenharmony_ci    ASSERT_FALSE(cellularDataHandler.CheckApnState(apnHolder));
2732d43be4eSopenharmony_ci    cellularDataHandler.AttemptEstablishDataConnection(apnHolder);
2742d43be4eSopenharmony_ci    cellularDataHandler.connectionManager_ = nullptr;
2752d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
2762d43be4eSopenharmony_ci    cellularDataHandler.HandleUpdateNetInfo(event);
2772d43be4eSopenharmony_ci    cellularDataHandler.ClearConnectionIfRequired();
2782d43be4eSopenharmony_ci    event = nullptr;
2792d43be4eSopenharmony_ci    cellularDataHandler.MsgEstablishDataConnection(event);
2802d43be4eSopenharmony_ci    ASSERT_FALSE(cellularDataHandler.HasAnyHigherPriorityConnection(apnHolder));
2812d43be4eSopenharmony_ci    cellularDataHandler.connectionManager_ = std::make_unique<DataConnectionManager>(INVALID_SLOTID).release();
2822d43be4eSopenharmony_ci    ASSERT_FALSE(cellularDataHandler.HasInternetCapability(INVALID_CID));
2832d43be4eSopenharmony_ci    ASSERT_EQ(cellularDataHandler.GetDataRecoveryState(), 0);
2842d43be4eSopenharmony_ci    cellularDataHandler.DisconnectDataComplete(event);
2852d43be4eSopenharmony_ci    std::string str = "";
2862d43be4eSopenharmony_ci    ASSERT_EQ(cellularDataHandler.GetDataConnIpType(), str);
2872d43be4eSopenharmony_ci    cellularDataHandler.apnManager_ = nullptr;
2882d43be4eSopenharmony_ci    ASSERT_EQ(cellularDataHandler.GetDataConnIpType(), str);
2892d43be4eSopenharmony_ci    cellularDataHandler.CheckForCompatibleDataConnection(apnHolder);
2902d43be4eSopenharmony_ci    event = AppExecFwk::InnerEvent::Get(0);
2912d43be4eSopenharmony_ci    cellularDataHandler.HandleDBSettingRoamingChanged(event);
2922d43be4eSopenharmony_ci    cellularDataHandler.ClearConnectionIfRequired();
2932d43be4eSopenharmony_ci    ASSERT_EQ(nullptr, cellularDataHandler.FindIdleCellularDataConnection());
2942d43be4eSopenharmony_ci    cellularDataHandler.RemoveAllEvents();
2952d43be4eSopenharmony_ci    sleep(SLEEP_TIME_SECONDS);
2962d43be4eSopenharmony_ci}
2972d43be4eSopenharmony_ci
2982d43be4eSopenharmony_ci/**
2992d43be4eSopenharmony_ci * @tc.number   Telephony_CellularDataHandler_004
3002d43be4eSopenharmony_ci * @tc.name     test error branch
3012d43be4eSopenharmony_ci * @tc.desc     Function test
3022d43be4eSopenharmony_ci */
3032d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_CellularDataHandler_004, Function | MediumTest | Level1)
3042d43be4eSopenharmony_ci{
3052d43be4eSopenharmony_ci    CellularDataController controller { 0 };
3062d43be4eSopenharmony_ci    controller.Init();
3072d43be4eSopenharmony_ci    ASSERT_FALSE(controller.cellularDataHandler_ == nullptr);
3082d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
3092d43be4eSopenharmony_ci    event = nullptr;
3102d43be4eSopenharmony_ci    controller.cellularDataHandler_->ProcessEvent(event);
3112d43be4eSopenharmony_ci    controller.cellularDataHandler_->PsDataRatChanged(event);
3122d43be4eSopenharmony_ci    ApnItem::Attribute apnAttr;
3132d43be4eSopenharmony_ci    controller.cellularDataHandler_->GetDataConnApnAttr(apnAttr);
3142d43be4eSopenharmony_ci    EventFwk::CommonEventData data;
3152d43be4eSopenharmony_ci    controller.cellularDataHandler_->OnReceiveEvent(data);
3162d43be4eSopenharmony_ci    ASSERT_EQ(controller.cellularDataHandler_->SetCellularDataEnable(true), TELEPHONY_ERR_SUCCESS);
3172d43be4eSopenharmony_ci    bool dataEnaled = false;
3182d43be4eSopenharmony_ci    controller.cellularDataHandler_->IsCellularDataEnabled(dataEnaled);
3192d43be4eSopenharmony_ci    bool dataRoamingEnabled = false;
3202d43be4eSopenharmony_ci    controller.cellularDataHandler_->IsCellularDataRoamingEnabled(dataRoamingEnabled);
3212d43be4eSopenharmony_ci    ASSERT_NE(controller.cellularDataHandler_->SetCellularDataRoamingEnabled(true), TELEPHONY_ERR_SUCCESS);
3222d43be4eSopenharmony_ci    controller.cellularDataHandler_->CreateCellularDataConnect();
3232d43be4eSopenharmony_ci    ASSERT_EQ(ApnProfileState::PROFILE_STATE_IDLE, controller.cellularDataHandler_->GetCellularDataState());
3242d43be4eSopenharmony_ci    ASSERT_EQ(ApnProfileState::PROFILE_STATE_IDLE, controller.cellularDataHandler_->GetCellularDataState(""));
3252d43be4eSopenharmony_ci    sptr<ApnHolder> apnHolder = controller.cellularDataHandler_->apnManager_->FindApnHolderById(1);
3262d43be4eSopenharmony_ci    DisConnectionReason reason = controller.cellularDataHandler_->GetDisConnectionReason();
3272d43be4eSopenharmony_ci    controller.cellularDataHandler_->ClearConnection(apnHolder, reason);
3282d43be4eSopenharmony_ci    controller.cellularDataHandler_->EstablishAllApnsIfConnectable();
3292d43be4eSopenharmony_ci    controller.cellularDataHandler_->ClearAllConnections(reason);
3302d43be4eSopenharmony_ci    controller.cellularDataHandler_->GetSlotId();
3312d43be4eSopenharmony_ci    ASSERT_TRUE(controller.cellularDataHandler_->HandleApnChanged());
3322d43be4eSopenharmony_ci    controller.cellularDataHandler_->HandleApnChanged(event);
3332d43be4eSopenharmony_ci    controller.cellularDataHandler_->GetCellularDataFlowType();
3342d43be4eSopenharmony_ci    controller.cellularDataHandler_->SetPolicyDataOn(true);
3352d43be4eSopenharmony_ci    ASSERT_FALSE(controller.cellularDataHandler_->IsRestrictedMode());
3362d43be4eSopenharmony_ci    controller.cellularDataHandler_->GetDisConnectionReason();
3372d43be4eSopenharmony_ci    ASSERT_FALSE(controller.cellularDataHandler_->HasInternetCapability(0));
3382d43be4eSopenharmony_ci    ASSERT_EQ(nullptr, controller.cellularDataHandler_->FindIdleCellularDataConnection());
3392d43be4eSopenharmony_ci    controller.cellularDataHandler_->AttemptEstablishDataConnection(apnHolder);
3402d43be4eSopenharmony_ci    controller.cellularDataHandler_->EstablishDataConnection(apnHolder, 1);
3412d43be4eSopenharmony_ci    controller.cellularDataHandler_->CheckRoamingState(apnHolder);
3422d43be4eSopenharmony_ci    controller.cellularDataHandler_->CheckApnState(apnHolder);
3432d43be4eSopenharmony_ci    ASSERT_FALSE(controller.cellularDataHandler_->CheckAttachAndSimState(apnHolder));
3442d43be4eSopenharmony_ci    controller.cellularDataHandler_->UnRegisterDataSettingObserver();
3452d43be4eSopenharmony_ci    controller.cellularDataHandler_->RemoveAllEvents();
3462d43be4eSopenharmony_ci    sleep(SLEEP_TIME_SECONDS);
3472d43be4eSopenharmony_ci}
3482d43be4eSopenharmony_ci
3492d43be4eSopenharmony_ci/**
3502d43be4eSopenharmony_ci * @tc.number   Telephony_CellularDataHandler_005
3512d43be4eSopenharmony_ci * @tc.name     test error branch
3522d43be4eSopenharmony_ci * @tc.desc     Function test
3532d43be4eSopenharmony_ci */
3542d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_CellularDataHandler_005, Function | MediumTest | Level1)
3552d43be4eSopenharmony_ci{
3562d43be4eSopenharmony_ci    CellularDataController controller { 0 };
3572d43be4eSopenharmony_ci    controller.Init();
3582d43be4eSopenharmony_ci    ASSERT_FALSE(controller.cellularDataHandler_ == nullptr);
3592d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
3602d43be4eSopenharmony_ci    controller.cellularDataHandler_->RadioPsConnectionAttached(event);
3612d43be4eSopenharmony_ci    controller.cellularDataHandler_->RadioPsConnectionDetached(event);
3622d43be4eSopenharmony_ci    controller.cellularDataHandler_->RoamingStateOn(event);
3632d43be4eSopenharmony_ci    controller.cellularDataHandler_->RoamingStateOff(event);
3642d43be4eSopenharmony_ci    controller.cellularDataHandler_->EstablishDataConnectionComplete(event);
3652d43be4eSopenharmony_ci    controller.cellularDataHandler_->MsgEstablishDataConnection(event);
3662d43be4eSopenharmony_ci    controller.cellularDataHandler_->MsgRequestNetwork(event);
3672d43be4eSopenharmony_ci    controller.cellularDataHandler_->HandleSettingSwitchChanged(event);
3682d43be4eSopenharmony_ci    controller.cellularDataHandler_->HandleDBSettingIncallChanged(event);
3692d43be4eSopenharmony_ci    controller.cellularDataHandler_->HandleDefaultDataSubscriptionChanged();
3702d43be4eSopenharmony_ci    controller.cellularDataHandler_->IncallDataComplete(event);
3712d43be4eSopenharmony_ci    controller.cellularDataHandler_->HandleCallChanged(0);
3722d43be4eSopenharmony_ci    controller.cellularDataHandler_->HandleImsCallChanged(0);
3732d43be4eSopenharmony_ci    controller.cellularDataHandler_->HandleVoiceCallChanged(0);
3742d43be4eSopenharmony_ci    controller.cellularDataHandler_->HandleSimEvent(event);
3752d43be4eSopenharmony_ci    controller.cellularDataHandler_->HandleSimAccountLoaded();
3762d43be4eSopenharmony_ci    controller.cellularDataHandler_->HandleRadioStateChanged(event);
3772d43be4eSopenharmony_ci    controller.cellularDataHandler_->HandleDsdsModeChanged(event);
3782d43be4eSopenharmony_ci    controller.cellularDataHandler_->SetRilAttachApnResponse(event);
3792d43be4eSopenharmony_ci    controller.cellularDataHandler_->GetDefaultConfiguration();
3802d43be4eSopenharmony_ci    controller.cellularDataHandler_->HandleRadioNrStateChanged(event);
3812d43be4eSopenharmony_ci    controller.cellularDataHandler_->HandleRadioNrFrequencyChanged(event);
3822d43be4eSopenharmony_ci    controller.cellularDataHandler_->HandleDBSettingEnableChanged(event);
3832d43be4eSopenharmony_ci    controller.cellularDataHandler_->HandleDBSettingRoamingChanged(event);
3842d43be4eSopenharmony_ci    controller.cellularDataHandler_->SetDataPermittedResponse(event);
3852d43be4eSopenharmony_ci    controller.cellularDataHandler_->OnRilAdapterHostDied(event);
3862d43be4eSopenharmony_ci    controller.cellularDataHandler_->OnCleanAllDataConnectionsDone(event);
3872d43be4eSopenharmony_ci    controller.cellularDataHandler_->HandleFactoryReset(event);
3882d43be4eSopenharmony_ci    controller.cellularDataHandler_->PsDataRatChanged(event);
3892d43be4eSopenharmony_ci    sptr<ApnHolder> apnHolder = controller.cellularDataHandler_->apnManager_->FindApnHolderById(1);
3902d43be4eSopenharmony_ci    ASSERT_FALSE(controller.cellularDataHandler_->HasAnyHigherPriorityConnection(apnHolder));
3912d43be4eSopenharmony_ci    controller.cellularDataHandler_->UnRegisterDataSettingObserver();
3922d43be4eSopenharmony_ci    controller.cellularDataHandler_->RemoveAllEvents();
3932d43be4eSopenharmony_ci    sleep(SLEEP_TIME_SECONDS);
3942d43be4eSopenharmony_ci}
3952d43be4eSopenharmony_ci
3962d43be4eSopenharmony_ci/**
3972d43be4eSopenharmony_ci * @tc.number   Telephony_CellularDataHandler_006
3982d43be4eSopenharmony_ci * @tc.name     test error branch
3992d43be4eSopenharmony_ci * @tc.desc     Function test
4002d43be4eSopenharmony_ci */
4012d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_CellularDataHandler_006, Function | MediumTest | Level3)
4022d43be4eSopenharmony_ci{
4032d43be4eSopenharmony_ci    EventFwk::MatchingSkills matchingSkills;
4042d43be4eSopenharmony_ci    matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
4052d43be4eSopenharmony_ci    EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
4062d43be4eSopenharmony_ci    CellularDataHandler cellularDataHandler { subscriberInfo, 0 };
4072d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
4082d43be4eSopenharmony_ci    event = nullptr;
4092d43be4eSopenharmony_ci    cellularDataHandler.apnManager_ = std::make_unique<ApnManager>().release();
4102d43be4eSopenharmony_ci    sptr<ApnHolder> apnHolder;
4112d43be4eSopenharmony_ci    std::string str = "";
4122d43be4eSopenharmony_ci    ASSERT_EQ(ApnProfileState::PROFILE_STATE_IDLE, cellularDataHandler.GetCellularDataState());
4132d43be4eSopenharmony_ci    cellularDataHandler.CheckForCompatibleDataConnection(apnHolder);
4142d43be4eSopenharmony_ci    cellularDataHandler.PsRadioEmergencyStateOpen(event);
4152d43be4eSopenharmony_ci    cellularDataHandler.PsRadioEmergencyStateClose(event);
4162d43be4eSopenharmony_ci    cellularDataHandler.IsNeedDoRecovery(true);
4172d43be4eSopenharmony_ci    cellularDataHandler.HandleSortConnection();
4182d43be4eSopenharmony_ci    ASSERT_EQ(cellularDataHandler.IsSingleConnectionEnabled(1), true);
4192d43be4eSopenharmony_ci    ASSERT_EQ(cellularDataHandler.GetDataConnIpType(), str);
4202d43be4eSopenharmony_ci    ASSERT_EQ(cellularDataHandler.GetDataRecoveryState(), -1);
4212d43be4eSopenharmony_ci    ASSERT_FALSE(cellularDataHandler.IsGsm());
4222d43be4eSopenharmony_ci    ASSERT_FALSE(cellularDataHandler.IsCdma());
4232d43be4eSopenharmony_ci    cellularDataHandler.lastCallState_ = 0;
4242d43be4eSopenharmony_ci    cellularDataHandler.HandleCallChanged(0);
4252d43be4eSopenharmony_ci    cellularDataHandler.dataSwitchSettings_ = nullptr;
4262d43be4eSopenharmony_ci    ASSERT_NE(cellularDataHandler.SetIntelligenceSwitchEnable(true), TELEPHONY_ERR_SUCCESS);
4272d43be4eSopenharmony_ci    cellularDataHandler.RemoveAllEvents();
4282d43be4eSopenharmony_ci    sleep(SLEEP_TIME_SECONDS);
4292d43be4eSopenharmony_ci}
4302d43be4eSopenharmony_ci
4312d43be4eSopenharmony_ci/**
4322d43be4eSopenharmony_ci * @tc.number   Telephony_CellularDataHandler_007
4332d43be4eSopenharmony_ci * @tc.name     test error branch
4342d43be4eSopenharmony_ci * @tc.desc     Function test
4352d43be4eSopenharmony_ci */
4362d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_CellularDataHandler_007, Function | MediumTest | Level1)
4372d43be4eSopenharmony_ci{
4382d43be4eSopenharmony_ci    CellularDataController controller { 0 };
4392d43be4eSopenharmony_ci    controller.Init();
4402d43be4eSopenharmony_ci    ASSERT_FALSE(controller.cellularDataHandler_ == nullptr);
4412d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
4422d43be4eSopenharmony_ci    sptr<ApnHolder> apnHolder = controller.cellularDataHandler_->apnManager_->FindApnHolderById(1);
4432d43be4eSopenharmony_ci    std::string str = "";
4442d43be4eSopenharmony_ci    controller.cellularDataHandler_->CheckForCompatibleDataConnection(apnHolder);
4452d43be4eSopenharmony_ci    controller.cellularDataHandler_->HandleUpdateNetInfo(event);
4462d43be4eSopenharmony_ci    controller.cellularDataHandler_->PsRadioEmergencyStateOpen(event);
4472d43be4eSopenharmony_ci    controller.cellularDataHandler_->PsRadioEmergencyStateClose(event);
4482d43be4eSopenharmony_ci    controller.cellularDataHandler_->IsNeedDoRecovery(true);
4492d43be4eSopenharmony_ci    controller.cellularDataHandler_->CreateIncallDataStateMachine(1);
4502d43be4eSopenharmony_ci    controller.cellularDataHandler_->HandleSettingSwitchChanged(event);
4512d43be4eSopenharmony_ci    ASSERT_TRUE(controller.cellularDataHandler_->SetDataPermittedForMms(true));
4522d43be4eSopenharmony_ci    controller.cellularDataHandler_->IncallDataComplete(event);
4532d43be4eSopenharmony_ci    controller.cellularDataHandler_->HandleImsCallChanged(0);
4542d43be4eSopenharmony_ci    controller.cellularDataHandler_->HandleSortConnection();
4552d43be4eSopenharmony_ci    ASSERT_EQ(controller.cellularDataHandler_->IsSingleConnectionEnabled(1), false);
4562d43be4eSopenharmony_ci    ASSERT_EQ(controller.cellularDataHandler_->GetDataConnIpType(), str);
4572d43be4eSopenharmony_ci    ASSERT_NE(controller.cellularDataHandler_->GetDataRecoveryState(), -1);
4582d43be4eSopenharmony_ci    ASSERT_FALSE(controller.cellularDataHandler_->IsGsm());
4592d43be4eSopenharmony_ci    ASSERT_FALSE(controller.cellularDataHandler_->IsCdma());
4602d43be4eSopenharmony_ci    ASSERT_EQ(controller.cellularDataHandler_->SetIntelligenceSwitchEnable(true), TELEPHONY_ERR_SUCCESS);
4612d43be4eSopenharmony_ci    controller.cellularDataHandler_->ClearConnectionIfRequired();
4622d43be4eSopenharmony_ci    controller.cellularDataHandler_->RemoveAllEvents();
4632d43be4eSopenharmony_ci    sleep(SLEEP_TIME_SECONDS);
4642d43be4eSopenharmony_ci}
4652d43be4eSopenharmony_ci
4662d43be4eSopenharmony_ci/**
4672d43be4eSopenharmony_ci * @tc.number   Telephony_CellularDataHandler_008
4682d43be4eSopenharmony_ci * @tc.name     test error branch
4692d43be4eSopenharmony_ci * @tc.desc     Function test
4702d43be4eSopenharmony_ci */
4712d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_CellularDataHandler_008, Function | MediumTest | Level1)
4722d43be4eSopenharmony_ci{
4732d43be4eSopenharmony_ci    CellularDataController controller{0};
4742d43be4eSopenharmony_ci    controller.Init();
4752d43be4eSopenharmony_ci    ASSERT_FALSE(controller.cellularDataHandler_ == nullptr);
4762d43be4eSopenharmony_ci    ASSERT_FALSE(controller.cellularDataHandler_->dataSwitchSettings_->IsUserDataRoamingOn());
4772d43be4eSopenharmony_ci    int32_t result = controller.SetCellularDataRoamingEnabled(true);
4782d43be4eSopenharmony_ci    std::cout << "SetCellularDataRoamingEnabled result: " << result << std::endl;
4792d43be4eSopenharmony_ci    ASSERT_NE(result, TELEPHONY_ERR_SUCCESS);
4802d43be4eSopenharmony_ci    ASSERT_FALSE(controller.cellularDataHandler_->dataSwitchSettings_->IsUserDataRoamingOn());
4812d43be4eSopenharmony_ci
4822d43be4eSopenharmony_ci    controller.cellularDataHandler_->dataSwitchSettings_->SetUserDataOn(false);
4832d43be4eSopenharmony_ci    ASSERT_FALSE(controller.cellularDataHandler_->dataSwitchSettings_->IsUserDataOn());
4842d43be4eSopenharmony_ci    controller.cellularDataHandler_->ResetDataFlowType();
4852d43be4eSopenharmony_ci    controller.cellularDataHandler_->dataSwitchSettings_->SetUserDataOn(true);
4862d43be4eSopenharmony_ci    controller.cellularDataHandler_->ResetDataFlowType();
4872d43be4eSopenharmony_ci    ASSERT_TRUE(controller.cellularDataHandler_->dataSwitchSettings_->IsUserDataOn());
4882d43be4eSopenharmony_ci}
4892d43be4eSopenharmony_ci
4902d43be4eSopenharmony_ci/**
4912d43be4eSopenharmony_ci * @tc.number   Telephony_CellularDataHandler_009
4922d43be4eSopenharmony_ci * @tc.name     test error branch
4932d43be4eSopenharmony_ci * @tc.desc     Function test
4942d43be4eSopenharmony_ci */
4952d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_CellularDataHandler_009, Function | MediumTest | Level1)
4962d43be4eSopenharmony_ci{
4972d43be4eSopenharmony_ci    CellularDataController controller{0};
4982d43be4eSopenharmony_ci    controller.Init();
4992d43be4eSopenharmony_ci    ASSERT_FALSE(controller.cellularDataHandler_ == nullptr);
5002d43be4eSopenharmony_ci    NetRequest request { 1, "simId1" };
5012d43be4eSopenharmony_ci
5022d43be4eSopenharmony_ci    std::shared_ptr<StateMachineTest> machine = std::make_shared<StateMachineTest>();
5032d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> stateMachine = machine->CreateCellularDataConnect(0);
5042d43be4eSopenharmony_ci    sptr<ApnHolder> apn = controller.cellularDataHandler_->apnManager_->FindApnHolderById(1);
5052d43be4eSopenharmony_ci    ASSERT_FALSE(apn == nullptr);
5062d43be4eSopenharmony_ci    apn->SetCellularDataStateMachine(stateMachine);
5072d43be4eSopenharmony_ci    DisConnectionReason reason = controller.cellularDataHandler_->GetDisConnectionReason();
5082d43be4eSopenharmony_ci    ASSERT_FALSE(apn->GetCellularDataStateMachine() == nullptr);
5092d43be4eSopenharmony_ci    ASSERT_EQ(apn->GetApnState(), PROFILE_STATE_IDLE);
5102d43be4eSopenharmony_ci    controller.cellularDataHandler_->ClearConnection(apn, reason);
5112d43be4eSopenharmony_ci    ASSERT_FALSE(apn->GetCellularDataStateMachine() == nullptr);
5122d43be4eSopenharmony_ci    apn->SetApnState(PROFILE_STATE_DISCONNECTING);
5132d43be4eSopenharmony_ci    controller.cellularDataHandler_->ClearConnection(apn, reason);
5142d43be4eSopenharmony_ci    ASSERT_FALSE(apn->GetCellularDataStateMachine() == nullptr);
5152d43be4eSopenharmony_ci
5162d43be4eSopenharmony_ci    apn->SetApnState(PROFILE_STATE_CONNECTED);
5172d43be4eSopenharmony_ci    controller.cellularDataHandler_->ClearConnection(apn, reason);
5182d43be4eSopenharmony_ci    ASSERT_TRUE(apn->GetCellularDataStateMachine() == nullptr);
5192d43be4eSopenharmony_ci    ASSERT_EQ(apn->GetApnState(), PROFILE_STATE_DISCONNECTING);
5202d43be4eSopenharmony_ci
5212d43be4eSopenharmony_ci    apn->SetApnState(PROFILE_STATE_CONNECTED);
5222d43be4eSopenharmony_ci    controller.cellularDataHandler_->ClearAllConnections(reason);
5232d43be4eSopenharmony_ci    apn->SetApnState(PROFILE_STATE_CONNECTING);
5242d43be4eSopenharmony_ci    controller.cellularDataHandler_->ClearAllConnections(reason);
5252d43be4eSopenharmony_ci    ASSERT_EQ(apn->GetApnState(), PROFILE_STATE_CONNECTING);
5262d43be4eSopenharmony_ci}
5272d43be4eSopenharmony_ci
5282d43be4eSopenharmony_ci/**
5292d43be4eSopenharmony_ci * @tc.number   Telephony_CellularDataHandler_010
5302d43be4eSopenharmony_ci * @tc.name     test error branch
5312d43be4eSopenharmony_ci * @tc.desc     Function test
5322d43be4eSopenharmony_ci */
5332d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_CellularDataHandler_010, Function | MediumTest | Level1)
5342d43be4eSopenharmony_ci{
5352d43be4eSopenharmony_ci    CellularDataController controller{0};
5362d43be4eSopenharmony_ci    controller.Init();
5372d43be4eSopenharmony_ci    sptr<ApnHolder> apn = controller.cellularDataHandler_->apnManager_->FindApnHolderById(1);
5382d43be4eSopenharmony_ci    std::shared_ptr<StateMachineTest> machine = std::make_shared<StateMachineTest>();
5392d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> stateMachine = machine->CreateCellularDataConnect(0);
5402d43be4eSopenharmony_ci
5412d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
5422d43be4eSopenharmony_ci    controller.cellularDataHandler_->RoamingStateOff(event);
5432d43be4eSopenharmony_ci    controller.cellularDataHandler_->PsRadioEmergencyStateOpen(event);
5442d43be4eSopenharmony_ci    apn->SetApnState(PROFILE_STATE_CONNECTED);
5452d43be4eSopenharmony_ci    ASSERT_EQ(controller.cellularDataHandler_->GetCellularDataState(), PROFILE_STATE_CONNECTED);
5462d43be4eSopenharmony_ci    controller.cellularDataHandler_->RoamingStateOff(event);
5472d43be4eSopenharmony_ci    controller.cellularDataHandler_->PsRadioEmergencyStateOpen(event);
5482d43be4eSopenharmony_ci    controller.cellularDataHandler_->PsRadioEmergencyStateClose(event);
5492d43be4eSopenharmony_ci    apn->SetApnState(PROFILE_STATE_IDLE);
5502d43be4eSopenharmony_ci    ASSERT_EQ(controller.cellularDataHandler_->GetCellularDataState(), PROFILE_STATE_IDLE);
5512d43be4eSopenharmony_ci    controller.cellularDataHandler_->PsRadioEmergencyStateOpen(event);
5522d43be4eSopenharmony_ci    controller.cellularDataHandler_->PsRadioEmergencyStateClose(event);
5532d43be4eSopenharmony_ci    apn->SetApnState(PROFILE_STATE_DISCONNECTING);
5542d43be4eSopenharmony_ci    ASSERT_EQ(controller.cellularDataHandler_->GetCellularDataState(), PROFILE_STATE_CONNECTED);
5552d43be4eSopenharmony_ci    controller.cellularDataHandler_->PsRadioEmergencyStateOpen(event);
5562d43be4eSopenharmony_ci    controller.cellularDataHandler_->PsRadioEmergencyStateClose(event);
5572d43be4eSopenharmony_ci
5582d43be4eSopenharmony_ci    sptr<ApnHolder> apn2 = controller.cellularDataHandler_->apnManager_->FindApnHolderById(2);
5592d43be4eSopenharmony_ci    ASSERT_FALSE(apn2 == nullptr);
5602d43be4eSopenharmony_ci    sptr<ApnHolder> apn3 = controller.cellularDataHandler_->apnManager_->FindApnHolderById(3);
5612d43be4eSopenharmony_ci    ASSERT_FALSE(apn3 == nullptr);
5622d43be4eSopenharmony_ci    apn->dataCallEnabled_ = true;
5632d43be4eSopenharmony_ci    apn2->dataCallEnabled_ = true;
5642d43be4eSopenharmony_ci    apn3->dataCallEnabled_ = true;
5652d43be4eSopenharmony_ci    apn->SetApnState(PROFILE_STATE_IDLE);
5662d43be4eSopenharmony_ci    apn2->SetApnState(PROFILE_STATE_IDLE);
5672d43be4eSopenharmony_ci    apn3->SetApnState(PROFILE_STATE_FAILED);
5682d43be4eSopenharmony_ci    apn3->SetCellularDataStateMachine(stateMachine);
5692d43be4eSopenharmony_ci    ASSERT_EQ(controller.cellularDataHandler_->GetCellularDataState(), PROFILE_STATE_IDLE);
5702d43be4eSopenharmony_ci    controller.cellularDataHandler_->PsRadioEmergencyStateClose(event);
5712d43be4eSopenharmony_ci    ASSERT_EQ(apn3->GetApnState(), PROFILE_STATE_DISCONNECTING);
5722d43be4eSopenharmony_ci    ASSERT_TRUE(apn3->GetCellularDataStateMachine() == nullptr);
5732d43be4eSopenharmony_ci
5742d43be4eSopenharmony_ci    ASSERT_EQ(controller.cellularDataHandler_->GetCellularDataState("default"), PROFILE_STATE_IDLE);
5752d43be4eSopenharmony_ci}
5762d43be4eSopenharmony_ci
5772d43be4eSopenharmony_ci/**
5782d43be4eSopenharmony_ci * @tc.number   Telephony_CellularDataHandler_011
5792d43be4eSopenharmony_ci * @tc.name     test error branch
5802d43be4eSopenharmony_ci * @tc.desc     Function test
5812d43be4eSopenharmony_ci */
5822d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_CellularDataHandler_011, Function | MediumTest | Level1)
5832d43be4eSopenharmony_ci{
5842d43be4eSopenharmony_ci    CellularDataController controller { 0 };
5852d43be4eSopenharmony_ci    controller.Init();
5862d43be4eSopenharmony_ci    controller.cellularDataHandler_->SendEstablishDataConnectionEvent(0);
5872d43be4eSopenharmony_ci#ifdef OHOS_BUILD_ENABLE_TELEPHONY_EXT
5882d43be4eSopenharmony_ci    int32_t reqType = TYPE_REQUEST_NET;
5892d43be4eSopenharmony_ci    bool isMmsType = false;
5902d43be4eSopenharmony_ci    controller.cellularDataHandler_->IsSimRequestNetOnVSimEnabled(reqType, isMmsType);
5912d43be4eSopenharmony_ci    isMmsType = true;
5922d43be4eSopenharmony_ci    controller.cellularDataHandler_->IsSimRequestNetOnVSimEnabled(reqType, isMmsType);
5932d43be4eSopenharmony_ci    reqType = 0;
5942d43be4eSopenharmony_ci    EXPECT_FALSE(controller.cellularDataHandler_->IsSimRequestNetOnVSimEnabled(reqType, isMmsType));
5952d43be4eSopenharmony_ci#endif
5962d43be4eSopenharmony_ci}
5972d43be4eSopenharmony_ci
5982d43be4eSopenharmony_ci/**
5992d43be4eSopenharmony_ci * @tc.number   Telephony_CellularDataHandler_012
6002d43be4eSopenharmony_ci * @tc.name     test error branch
6012d43be4eSopenharmony_ci * @tc.desc     Function test
6022d43be4eSopenharmony_ci */
6032d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_CellularDataHandler_012, Function | MediumTest | Level1)
6042d43be4eSopenharmony_ci{
6052d43be4eSopenharmony_ci    CellularDataController controller { 0 };
6062d43be4eSopenharmony_ci    controller.Init();
6072d43be4eSopenharmony_ci    sptr<ApnHolder> apnHolder = controller.cellularDataHandler_->apnManager_->FindApnHolderById(1);
6082d43be4eSopenharmony_ci    sptr<ApnItem> apnItem = ApnItem::MakeDefaultApn(DATA_CONTEXT_ROLE_DEFAULT);
6092d43be4eSopenharmony_ci    apnHolder->SetCurrentApn(apnItem);
6102d43be4eSopenharmony_ci    auto handler = controller.cellularDataHandler_;
6112d43be4eSopenharmony_ci    handler->RetryOrClearConnection(nullptr, DisConnectionReason::REASON_CLEAR_CONNECTION, nullptr);
6122d43be4eSopenharmony_ci    ASSERT_FALSE(handler->HasInnerEvent(CellularDataEventCode::MSG_RETRY_TO_SETUP_DATACALL));
6132d43be4eSopenharmony_ci    handler->RetryOrClearConnection(apnHolder, DisConnectionReason::REASON_CLEAR_CONNECTION, nullptr);
6142d43be4eSopenharmony_ci    ASSERT_FALSE(handler->HasInnerEvent(CellularDataEventCode::MSG_RETRY_TO_SETUP_DATACALL));
6152d43be4eSopenharmony_ci    auto resultInfo = std::make_shared<SetupDataCallResultInfo>();
6162d43be4eSopenharmony_ci    handler->RetryOrClearConnection(apnHolder, DisConnectionReason::REASON_CLEAR_CONNECTION, resultInfo);
6172d43be4eSopenharmony_ci    ASSERT_FALSE(handler->HasInnerEvent(CellularDataEventCode::MSG_RETRY_TO_SETUP_DATACALL));
6182d43be4eSopenharmony_ci    handler->RetryOrClearConnection(apnHolder, DisConnectionReason::REASON_RETRY_CONNECTION, resultInfo);
6192d43be4eSopenharmony_ci    ASSERT_TRUE(handler->HasInnerEvent(CellularDataEventCode::MSG_RETRY_TO_SETUP_DATACALL));
6202d43be4eSopenharmony_ci    handler->RetryOrClearConnection(apnHolder, DisConnectionReason::REASON_PERMANENT_REJECT, resultInfo);
6212d43be4eSopenharmony_ci    ASSERT_TRUE(handler->HasInnerEvent(CellularDataEventCode::MSG_RETRY_TO_SETUP_DATACALL));
6222d43be4eSopenharmony_ci}
6232d43be4eSopenharmony_ci
6242d43be4eSopenharmony_ci/**
6252d43be4eSopenharmony_ci * @tc.number   Telephony_CellularDataHandler_013
6262d43be4eSopenharmony_ci * @tc.name     test error branch
6272d43be4eSopenharmony_ci * @tc.desc     Function test
6282d43be4eSopenharmony_ci */
6292d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_CellularDataHandler_013, Function | MediumTest | Level1)
6302d43be4eSopenharmony_ci{
6312d43be4eSopenharmony_ci    CellularDataController controller { 0 };
6322d43be4eSopenharmony_ci    controller.Init();
6332d43be4eSopenharmony_ci    sptr<ApnHolder> apnHolder = controller.cellularDataHandler_->apnManager_->FindApnHolderById(1);
6342d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
6352d43be4eSopenharmony_ci    controller.cellularDataHandler_->RetryToSetupDatacall(event);
6362d43be4eSopenharmony_ci    ASSERT_FALSE(controller.cellularDataHandler_->HasInnerEvent(CellularDataEventCode::MSG_ESTABLISH_DATA_CONNECTION));
6372d43be4eSopenharmony_ci    auto event2 = AppExecFwk::InnerEvent::Get(-1);
6382d43be4eSopenharmony_ci    controller.cellularDataHandler_->RetryToSetupDatacall(event2);
6392d43be4eSopenharmony_ci    ASSERT_FALSE(controller.cellularDataHandler_->HasInnerEvent(CellularDataEventCode::MSG_ESTABLISH_DATA_CONNECTION));
6402d43be4eSopenharmony_ci    apnHolder->SetApnState(PROFILE_STATE_IDLE);
6412d43be4eSopenharmony_ci    auto event3 = AppExecFwk::InnerEvent::Get(1);
6422d43be4eSopenharmony_ci    controller.cellularDataHandler_->RetryToSetupDatacall(event3);
6432d43be4eSopenharmony_ci    ASSERT_FALSE(controller.cellularDataHandler_->HasInnerEvent(CellularDataEventCode::MSG_ESTABLISH_DATA_CONNECTION));
6442d43be4eSopenharmony_ci    apnHolder->SetApnState(PROFILE_STATE_RETRYING);
6452d43be4eSopenharmony_ci    auto event4 = AppExecFwk::InnerEvent::Get(1);
6462d43be4eSopenharmony_ci    controller.cellularDataHandler_->RetryToSetupDatacall(event4);
6472d43be4eSopenharmony_ci    ASSERT_EQ(apnHolder->GetApnState(), PROFILE_STATE_RETRYING);
6482d43be4eSopenharmony_ci    controller.cellularDataHandler_->RemoveAllEvents();
6492d43be4eSopenharmony_ci    sleep(SLEEP_TIME_SECONDS);
6502d43be4eSopenharmony_ci}
6512d43be4eSopenharmony_ci
6522d43be4eSopenharmony_ci/**
6532d43be4eSopenharmony_ci * @tc.number   Telephony_CellularDataService_001
6542d43be4eSopenharmony_ci * @tc.name     test error branch
6552d43be4eSopenharmony_ci * @tc.desc     Function test
6562d43be4eSopenharmony_ci */
6572d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_CellularDataService_001, Function | MediumTest | Level3)
6582d43be4eSopenharmony_ci{
6592d43be4eSopenharmony_ci    DataAccessToken token;
6602d43be4eSopenharmony_ci    CellularDataService service;
6612d43be4eSopenharmony_ci    std::vector<std::u16string> strV;
6622d43be4eSopenharmony_ci    ASSERT_EQ(TELEPHONY_ERR_FAIL, service.Dump(INVALID_FD, strV));
6632d43be4eSopenharmony_ci    service.state_ = ServiceRunningState::STATE_RUNNING;
6642d43be4eSopenharmony_ci    service.OnStart();
6652d43be4eSopenharmony_ci    service.InitModule();
6662d43be4eSopenharmony_ci    bool dataEnabled = false;
6672d43be4eSopenharmony_ci    bool dataRoamingEnabled = false;
6682d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.IsCellularDataEnabled(dataEnabled));
6692d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.EnableCellularData(false));
6702d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.EnableCellularData(true));
6712d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.GetCellularDataState());
6722d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.IsCellularDataRoamingEnabled(INVALID_SLOTID, dataRoamingEnabled));
6732d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.EnableCellularDataRoaming(INVALID_SLOTID, false));
6742d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.IsCellularDataRoamingEnabled(DEFAULT_SIM_SLOT_ID, dataRoamingEnabled));
6752d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.EnableCellularDataRoaming(DEFAULT_SIM_SLOT_ID, true));
6762d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.HandleApnChanged(INVALID_SLOTID));
6772d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.HandleApnChanged(DEFAULT_SIM_SLOT_ID));
6782d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.GetDefaultCellularDataSlotId());
6792d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.SetDefaultCellularDataSlotId(INVALID_SLOTID));
6802d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.SetDefaultCellularDataSlotId(DEFAULT_SIM_SLOT_ID));
6812d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.GetCellularDataFlowType());
6822d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.HasInternetCapability(INVALID_SLOTID, 0));
6832d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.HasInternetCapability(DEFAULT_SIM_SLOT_ID, 0));
6842d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.ClearCellularDataConnections(INVALID_SLOTID));
6852d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.ClearCellularDataConnections(DEFAULT_SIM_SLOT_ID));
6862d43be4eSopenharmony_ci    DisConnectionReason reason = DisConnectionReason::REASON_NORMAL;
6872d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.ClearAllConnections(INVALID_SLOTID, reason));
6882d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.ClearAllConnections(DEFAULT_SIM_SLOT_ID, reason));
6892d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.ChangeConnectionForDsds(INVALID_SLOTID, false));
6902d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.ChangeConnectionForDsds(DEFAULT_SIM_SLOT_ID, false));
6912d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.ChangeConnectionForDsds(DEFAULT_SIM_SLOT_ID, true));
6922d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.StrategySwitch(INVALID_SLOTID, false));
6932d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.StrategySwitch(DEFAULT_SIM_SLOT_ID, false));
6942d43be4eSopenharmony_ci    NetRequest request;
6952d43be4eSopenharmony_ci    request.ident = "simId12";
6962d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.RequestNet(request));
6972d43be4eSopenharmony_ci    request.ident = "simId2";
6982d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.ReleaseNet(request));
6992d43be4eSopenharmony_ci    ASSERT_FALSE(service.GetCellularDataController(DEFAULT_SIM_SLOT_ID) != nullptr);
7002d43be4eSopenharmony_ci    ASSERT_FALSE(service.GetCellularDataController(INVALID_SLOTID) != nullptr);
7012d43be4eSopenharmony_ci    ASSERT_FALSE(service.GetCellularDataController(INVALID_SLOTID_TWO) != nullptr);
7022d43be4eSopenharmony_ci}
7032d43be4eSopenharmony_ci
7042d43be4eSopenharmony_ci/**
7052d43be4eSopenharmony_ci * @tc.number   Telephony_CellularDataService_002
7062d43be4eSopenharmony_ci * @tc.name     test error branch
7072d43be4eSopenharmony_ci * @tc.desc     Function test
7082d43be4eSopenharmony_ci */
7092d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_CellularDataService_002, Function | MediumTest | Level3)
7102d43be4eSopenharmony_ci{
7112d43be4eSopenharmony_ci    CellularDataService service;
7122d43be4eSopenharmony_ci    std::vector<std::u16string> strV;
7132d43be4eSopenharmony_ci    ASSERT_EQ(TELEPHONY_ERR_FAIL, service.Dump(INVALID_FD, strV));
7142d43be4eSopenharmony_ci    service.state_ = ServiceRunningState::STATE_RUNNING;
7152d43be4eSopenharmony_ci    service.OnStart();
7162d43be4eSopenharmony_ci    service.InitModule();
7172d43be4eSopenharmony_ci    bool dataEnabled = false;
7182d43be4eSopenharmony_ci    bool dataRoamingEnabled = false;
7192d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.IsCellularDataEnabled(dataEnabled));
7202d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.EnableIntelligenceSwitch(false));
7212d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.EnableIntelligenceSwitch(true));
7222d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.EnableCellularData(false));
7232d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.GetCellularDataState());
7242d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.IsCellularDataRoamingEnabled(INVALID_SLOTID, dataRoamingEnabled));
7252d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.EnableCellularDataRoaming(INVALID_SLOTID, false));
7262d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.HandleApnChanged(INVALID_SLOTID));
7272d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.GetDefaultCellularDataSlotId());
7282d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.SetDefaultCellularDataSlotId(INVALID_SLOTID));
7292d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.GetCellularDataFlowType());
7302d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.HasInternetCapability(INVALID_SLOTID, 0));
7312d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.ClearCellularDataConnections(INVALID_SLOTID));
7322d43be4eSopenharmony_ci    DisConnectionReason reason = DisConnectionReason::REASON_NORMAL;
7332d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.ClearAllConnections(INVALID_SLOTID, reason));
7342d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.ChangeConnectionForDsds(INVALID_SLOTID, false));
7352d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.StrategySwitch(INVALID_SLOTID, false));
7362d43be4eSopenharmony_ci    ASSERT_FALSE(service.GetCellularDataController(INVALID_SLOTID) != nullptr);
7372d43be4eSopenharmony_ci    ASSERT_FALSE(service.GetCellularDataController(INVALID_SLOTID_TWO) != nullptr);
7382d43be4eSopenharmony_ci    ASSERT_EQ(CELLULAR_DATA_INVALID_PARAM, service.GetApnState(DEFAULT_SIM_SLOT_ID, std::string()));
7392d43be4eSopenharmony_ci    ASSERT_EQ(CELLULAR_DATA_INVALID_PARAM, service.GetApnState(INVALID_SLOTID, std::string()));
7402d43be4eSopenharmony_ci    ASSERT_EQ(service.GetDataRecoveryState(), 0);
7412d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.InitCellularDataController(2));
7422d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.InitCellularDataController(INVALID_SLOTID));
7432d43be4eSopenharmony_ci    service.GetFlowDataInfoDump();
7442d43be4eSopenharmony_ci    service.OnStop();
7452d43be4eSopenharmony_ci}
7462d43be4eSopenharmony_ci
7472d43be4eSopenharmony_ci/**
7482d43be4eSopenharmony_ci * @tc.number   Telephony_CellularDataService_003
7492d43be4eSopenharmony_ci * @tc.name     test error branch
7502d43be4eSopenharmony_ci * @tc.desc     Function test
7512d43be4eSopenharmony_ci */
7522d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_CellularDataService_003, Function | MediumTest | Level3)
7532d43be4eSopenharmony_ci{
7542d43be4eSopenharmony_ci    DataAccessToken token;
7552d43be4eSopenharmony_ci    CellularDataService service;
7562d43be4eSopenharmony_ci    std::vector<std::u16string> strV;
7572d43be4eSopenharmony_ci    ASSERT_EQ(TELEPHONY_ERR_FAIL, service.Dump(INVALID_FD, strV));
7582d43be4eSopenharmony_ci    service.state_ = ServiceRunningState::STATE_RUNNING;
7592d43be4eSopenharmony_ci    service.OnStart();
7602d43be4eSopenharmony_ci    service.InitModule();
7612d43be4eSopenharmony_ci    service.cellularDataControllers_.clear();
7622d43be4eSopenharmony_ci    bool dataEnabled = false;
7632d43be4eSopenharmony_ci    bool dataRoamingEnabled = false;
7642d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.IsCellularDataEnabled(dataEnabled));
7652d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.EnableCellularData(false));
7662d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.EnableCellularData(true));
7672d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.EnableCellularDataRoaming(INVALID_SLOTID, false));
7682d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.IsCellularDataRoamingEnabled(DEFAULT_SIM_SLOT_ID, dataRoamingEnabled));
7692d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.EnableCellularDataRoaming(DEFAULT_SIM_SLOT_ID, true));
7702d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.GetCellularDataState());
7712d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.IsCellularDataRoamingEnabled(INVALID_SLOTID, dataRoamingEnabled));
7722d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.HandleApnChanged(INVALID_SLOTID));
7732d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.HandleApnChanged(DEFAULT_SIM_SLOT_ID));
7742d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.SetDefaultCellularDataSlotId(INVALID_SLOTID));
7752d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.SetDefaultCellularDataSlotId(DEFAULT_SIM_SLOT_ID));
7762d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.GetCellularDataFlowType());
7772d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.HasInternetCapability(INVALID_SLOTID, 0));
7782d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.HasInternetCapability(DEFAULT_SIM_SLOT_ID, 0));
7792d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.GetDefaultCellularDataSlotId());
7802d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.StrategySwitch(INVALID_SLOTID, false));
7812d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.StrategySwitch(DEFAULT_SIM_SLOT_ID, false));
7822d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.ClearCellularDataConnections(INVALID_SLOTID));
7832d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.ClearCellularDataConnections(DEFAULT_SIM_SLOT_ID));
7842d43be4eSopenharmony_ci    DisConnectionReason reason = DisConnectionReason::REASON_NORMAL;
7852d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.ClearAllConnections(INVALID_SLOTID, reason));
7862d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.ClearAllConnections(DEFAULT_SIM_SLOT_ID, reason));
7872d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.ChangeConnectionForDsds(INVALID_SLOTID, false));
7882d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.ChangeConnectionForDsds(DEFAULT_SIM_SLOT_ID, false));
7892d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.ChangeConnectionForDsds(DEFAULT_SIM_SLOT_ID, true));
7902d43be4eSopenharmony_ci    NetRequest request;
7912d43be4eSopenharmony_ci    request.ident = "simId12";
7922d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.RequestNet(request));
7932d43be4eSopenharmony_ci    request.ident = "simId2";
7942d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.ReleaseNet(request));
7952d43be4eSopenharmony_ci    ASSERT_FALSE(service.GetCellularDataController(DEFAULT_SIM_SLOT_ID) != nullptr);
7962d43be4eSopenharmony_ci    ASSERT_FALSE(service.GetCellularDataController(INVALID_SLOTID) != nullptr);
7972d43be4eSopenharmony_ci    ASSERT_FALSE(service.GetCellularDataController(INVALID_SLOTID_TWO) != nullptr);
7982d43be4eSopenharmony_ci}
7992d43be4eSopenharmony_ci
8002d43be4eSopenharmony_ci/**
8012d43be4eSopenharmony_ci * @tc.number   Telephony_CellularDataService_004
8022d43be4eSopenharmony_ci * @tc.name     test error branch
8032d43be4eSopenharmony_ci * @tc.desc     Function test
8042d43be4eSopenharmony_ci */
8052d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_CellularDataService_004, Function | MediumTest | Level3)
8062d43be4eSopenharmony_ci{
8072d43be4eSopenharmony_ci    DataAccessToken token;
8082d43be4eSopenharmony_ci    CellularDataService service;
8092d43be4eSopenharmony_ci    std::vector<std::u16string> strV;
8102d43be4eSopenharmony_ci    ASSERT_EQ(TELEPHONY_ERR_FAIL, service.Dump(INVALID_FD, strV));
8112d43be4eSopenharmony_ci    service.state_ = ServiceRunningState::STATE_RUNNING;
8122d43be4eSopenharmony_ci    service.OnStart();
8132d43be4eSopenharmony_ci    service.InitModule();
8142d43be4eSopenharmony_ci    service.GetFlowDataInfoDump();
8152d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.EnableIntelligenceSwitch(false));
8162d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.EnableIntelligenceSwitch(true));
8172d43be4eSopenharmony_ci    ASSERT_EQ(CELLULAR_DATA_INVALID_PARAM, service.GetApnState(DEFAULT_SIM_SLOT_ID, std::string()));
8182d43be4eSopenharmony_ci    ASSERT_EQ(CELLULAR_DATA_INVALID_PARAM, service.GetApnState(INVALID_SLOTID, std::string()));
8192d43be4eSopenharmony_ci    ASSERT_EQ(service.GetDataRecoveryState(), 0);
8202d43be4eSopenharmony_ci    ASSERT_EQ(TELEPHONY_ERR_SUCCESS, service.InitCellularDataController(2));
8212d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.InitCellularDataController(INVALID_SLOTID));
8222d43be4eSopenharmony_ci    ApnItem::Attribute apnAttr;
8232d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.GetDataConnApnAttr(INVALID_SLOTID, apnAttr));
8242d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.GetDataConnApnAttr(DEFAULT_SIM_SLOT_ID, apnAttr));
8252d43be4eSopenharmony_ci    std::string ipType;
8262d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.GetDataConnIpType(INVALID_SLOTID, ipType));
8272d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.GetDataConnIpType(DEFAULT_SIM_SLOT_ID, ipType));
8282d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.IsNeedDoRecovery(INVALID_SLOTID, true));
8292d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.IsNeedDoRecovery(DEFAULT_SIM_SLOT_ID, true));
8302d43be4eSopenharmony_ci}
8312d43be4eSopenharmony_ci
8322d43be4eSopenharmony_ci/**
8332d43be4eSopenharmony_ci * @tc.number   Telephony_CellularDataService_005
8342d43be4eSopenharmony_ci * @tc.name     test error branch
8352d43be4eSopenharmony_ci * @tc.desc     Function test
8362d43be4eSopenharmony_ci */
8372d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_CellularDataService_005, Function | MediumTest | Level3)
8382d43be4eSopenharmony_ci{
8392d43be4eSopenharmony_ci    DataAccessToken token;
8402d43be4eSopenharmony_ci    CellularDataService service;
8412d43be4eSopenharmony_ci    std::vector<std::u16string> strV;
8422d43be4eSopenharmony_ci    ASSERT_EQ(TELEPHONY_ERR_FAIL, service.Dump(INVALID_FD, strV));
8432d43be4eSopenharmony_ci    service.state_ = ServiceRunningState::STATE_RUNNING;
8442d43be4eSopenharmony_ci    service.OnStart();
8452d43be4eSopenharmony_ci    service.InitModule();
8462d43be4eSopenharmony_ci    service.cellularDataControllers_.clear();
8472d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.EnableIntelligenceSwitch(false));
8482d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.EnableIntelligenceSwitch(true));
8492d43be4eSopenharmony_ci    ASSERT_EQ(CELLULAR_DATA_INVALID_PARAM, service.GetApnState(DEFAULT_SIM_SLOT_ID, std::string()));
8502d43be4eSopenharmony_ci    ASSERT_EQ(CELLULAR_DATA_INVALID_PARAM, service.GetApnState(INVALID_SLOTID, std::string()));
8512d43be4eSopenharmony_ci    ASSERT_EQ(service.GetDataRecoveryState(), 0);
8522d43be4eSopenharmony_ci    ASSERT_EQ(TELEPHONY_ERR_SUCCESS, service.InitCellularDataController(2));
8532d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.InitCellularDataController(INVALID_SLOTID));
8542d43be4eSopenharmony_ci    service.GetFlowDataInfoDump();
8552d43be4eSopenharmony_ci    ApnItem::Attribute apnAttr;
8562d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.GetDataConnApnAttr(INVALID_SLOTID, apnAttr));
8572d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.GetDataConnApnAttr(DEFAULT_SIM_SLOT_ID, apnAttr));
8582d43be4eSopenharmony_ci    std::string ipType;
8592d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.GetDataConnIpType(INVALID_SLOTID, ipType));
8602d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.GetDataConnIpType(DEFAULT_SIM_SLOT_ID, ipType));
8612d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.IsNeedDoRecovery(INVALID_SLOTID, true));
8622d43be4eSopenharmony_ci    ASSERT_NE(TELEPHONY_ERR_SUCCESS, service.IsNeedDoRecovery(DEFAULT_SIM_SLOT_ID, true));
8632d43be4eSopenharmony_ci}
8642d43be4eSopenharmony_ci
8652d43be4eSopenharmony_ci/**
8662d43be4eSopenharmony_ci * @tc.number  CellularDataController_001
8672d43be4eSopenharmony_ci * @tc.name     test error branch
8682d43be4eSopenharmony_ci * @tc.desc     Function test
8692d43be4eSopenharmony_ci */
8702d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_CellularDataController_001, Function | MediumTest | Level3)
8712d43be4eSopenharmony_ci{
8722d43be4eSopenharmony_ci    CellularDataController controller { 0 };
8732d43be4eSopenharmony_ci    controller.RegisterEvents();
8742d43be4eSopenharmony_ci    controller.Init();
8752d43be4eSopenharmony_ci    controller.cellularDataHandler_ = nullptr;
8762d43be4eSopenharmony_ci    NetRequest request;
8772d43be4eSopenharmony_ci    ASSERT_FALSE(controller.ReleaseNet(request));
8782d43be4eSopenharmony_ci    ASSERT_FALSE(controller.RequestNet(request));
8792d43be4eSopenharmony_ci    ASSERT_NE(controller.SetCellularDataEnable(true), TELEPHONY_ERR_SUCCESS);
8802d43be4eSopenharmony_ci    if (controller.systemAbilityListener_ != nullptr) {
8812d43be4eSopenharmony_ci        controller.systemAbilityListener_->OnAddSystemAbility(COMM_NET_CONN_MANAGER_SYS_ABILITY_ID, "test");
8822d43be4eSopenharmony_ci        controller.systemAbilityListener_->OnAddSystemAbility(COMM_NET_POLICY_MANAGER_SYS_ABILITY_ID, "test");
8832d43be4eSopenharmony_ci        controller.systemAbilityListener_->OnAddSystemAbility(COMMON_EVENT_SERVICE_ID, "test");
8842d43be4eSopenharmony_ci        controller.systemAbilityListener_->OnAddSystemAbility(DISTRIBUTED_KV_DATA_SERVICE_ABILITY_ID, "test");
8852d43be4eSopenharmony_ci        controller.systemAbilityListener_->OnAddSystemAbility(0, "test");
8862d43be4eSopenharmony_ci        controller.systemAbilityListener_->OnRemoveSystemAbility(COMM_NET_CONN_MANAGER_SYS_ABILITY_ID, "test");
8872d43be4eSopenharmony_ci        controller.systemAbilityListener_->OnRemoveSystemAbility(COMM_NET_POLICY_MANAGER_SYS_ABILITY_ID, "test");
8882d43be4eSopenharmony_ci        controller.systemAbilityListener_->OnRemoveSystemAbility(COMMON_EVENT_SERVICE_ID, "test");
8892d43be4eSopenharmony_ci        controller.systemAbilityListener_->OnRemoveSystemAbility(DISTRIBUTED_KV_DATA_SERVICE_ABILITY_ID, "test");
8902d43be4eSopenharmony_ci        controller.systemAbilityListener_->OnRemoveSystemAbility(0, "test");
8912d43be4eSopenharmony_ci    }
8922d43be4eSopenharmony_ci    bool dataEnabled = false;
8932d43be4eSopenharmony_ci    controller.IsCellularDataEnabled(dataEnabled);
8942d43be4eSopenharmony_ci    ASSERT_FALSE(dataEnabled);
8952d43be4eSopenharmony_ci    controller.SetPolicyDataOn(true);
8962d43be4eSopenharmony_ci    ASSERT_NE(controller.SetCellularDataRoamingEnabled(true), TELEPHONY_ERR_SUCCESS);
8972d43be4eSopenharmony_ci    EXPECT_EQ(ApnProfileState::PROFILE_STATE_FAILED, controller.GetCellularDataState());
8982d43be4eSopenharmony_ci    EXPECT_EQ(ApnProfileState::PROFILE_STATE_FAILED, controller.GetCellularDataState(""));
8992d43be4eSopenharmony_ci    bool dataRoamingEnabled = false;
9002d43be4eSopenharmony_ci    controller.IsCellularDataRoamingEnabled(dataRoamingEnabled);
9012d43be4eSopenharmony_ci    ASSERT_FALSE(dataRoamingEnabled);
9022d43be4eSopenharmony_ci    ASSERT_FALSE(controller.HandleApnChanged());
9032d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
9042d43be4eSopenharmony_ci    controller.ProcessEvent(event);
9052d43be4eSopenharmony_ci    event = nullptr;
9062d43be4eSopenharmony_ci    controller.ProcessEvent(event);
9072d43be4eSopenharmony_ci    controller.RegisterEvents();
9082d43be4eSopenharmony_ci    ASSERT_FALSE(controller.IsRestrictedMode());
9092d43be4eSopenharmony_ci    ASSERT_EQ(DisConnectionReason::REASON_NORMAL, controller.GetDisConnectionReason());
9102d43be4eSopenharmony_ci    controller.HasInternetCapability(0);
9112d43be4eSopenharmony_ci    DisConnectionReason reason = DisConnectionReason::REASON_NORMAL;
9122d43be4eSopenharmony_ci    ASSERT_FALSE(controller.ClearAllConnections(reason));
9132d43be4eSopenharmony_ci    ASSERT_FALSE(controller.ChangeConnectionForDsds(false));
9142d43be4eSopenharmony_ci    controller.UnRegisterEvents();
9152d43be4eSopenharmony_ci    ASSERT_FALSE(controller.EstablishAllApnsIfConnectable());
9162d43be4eSopenharmony_ci    ASSERT_FALSE(controller.HandleApnChanged());
9172d43be4eSopenharmony_ci    ASSERT_FALSE(controller.GetCellularDataFlowType());
9182d43be4eSopenharmony_ci}
9192d43be4eSopenharmony_ci
9202d43be4eSopenharmony_ci/**
9212d43be4eSopenharmony_ci * @tc.number  CellularDataController_002
9222d43be4eSopenharmony_ci * @tc.name     test error branch
9232d43be4eSopenharmony_ci * @tc.desc     Function test
9242d43be4eSopenharmony_ci */
9252d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_CellularDataController_002, Function | MediumTest | Level3)
9262d43be4eSopenharmony_ci{
9272d43be4eSopenharmony_ci    CellularDataController controller { 0 };
9282d43be4eSopenharmony_ci    controller.RegisterEvents();
9292d43be4eSopenharmony_ci    controller.Init();
9302d43be4eSopenharmony_ci    NetRequest request;
9312d43be4eSopenharmony_ci    controller.ReleaseNet(request);
9322d43be4eSopenharmony_ci    controller.RequestNet(request);
9332d43be4eSopenharmony_ci    controller.SetCellularDataEnable(true);
9342d43be4eSopenharmony_ci    controller.SetPolicyDataOn(true);
9352d43be4eSopenharmony_ci    ASSERT_TRUE(controller.HandleApnChanged());
9362d43be4eSopenharmony_ci    bool dataEnabled = false;
9372d43be4eSopenharmony_ci    controller.IsCellularDataEnabled(dataEnabled);
9382d43be4eSopenharmony_ci    ASSERT_TRUE(dataEnabled);
9392d43be4eSopenharmony_ci    ASSERT_NE(controller.SetCellularDataRoamingEnabled(true), TELEPHONY_ERR_SUCCESS);
9402d43be4eSopenharmony_ci    ASSERT_NE(ApnProfileState::PROFILE_STATE_FAILED, controller.GetCellularDataState());
9412d43be4eSopenharmony_ci    ASSERT_NE(ApnProfileState::PROFILE_STATE_FAILED, controller.GetCellularDataState(""));
9422d43be4eSopenharmony_ci    if (controller.systemAbilityListener_ != nullptr) {
9432d43be4eSopenharmony_ci        controller.systemAbilityListener_->OnAddSystemAbility(COMM_NET_CONN_MANAGER_SYS_ABILITY_ID, "test");
9442d43be4eSopenharmony_ci        controller.systemAbilityListener_->OnAddSystemAbility(COMM_NET_POLICY_MANAGER_SYS_ABILITY_ID, "test");
9452d43be4eSopenharmony_ci        controller.systemAbilityListener_->OnAddSystemAbility(COMMON_EVENT_SERVICE_ID, "test");
9462d43be4eSopenharmony_ci        controller.systemAbilityListener_->OnAddSystemAbility(DISTRIBUTED_KV_DATA_SERVICE_ABILITY_ID, "test");
9472d43be4eSopenharmony_ci        controller.systemAbilityListener_->OnAddSystemAbility(0, "test");
9482d43be4eSopenharmony_ci        controller.systemAbilityListener_->OnRemoveSystemAbility(COMM_NET_CONN_MANAGER_SYS_ABILITY_ID, "test");
9492d43be4eSopenharmony_ci        controller.systemAbilityListener_->OnRemoveSystemAbility(COMM_NET_POLICY_MANAGER_SYS_ABILITY_ID, "test");
9502d43be4eSopenharmony_ci        controller.systemAbilityListener_->OnRemoveSystemAbility(COMMON_EVENT_SERVICE_ID, "test");
9512d43be4eSopenharmony_ci        controller.systemAbilityListener_->OnRemoveSystemAbility(DISTRIBUTED_KV_DATA_SERVICE_ABILITY_ID, "test");
9522d43be4eSopenharmony_ci        controller.systemAbilityListener_->OnRemoveSystemAbility(0, "test");
9532d43be4eSopenharmony_ci    }
9542d43be4eSopenharmony_ci    bool dataRoamingEnabled = false;
9552d43be4eSopenharmony_ci    controller.IsCellularDataRoamingEnabled(dataRoamingEnabled);
9562d43be4eSopenharmony_ci    ASSERT_FALSE(dataRoamingEnabled);
9572d43be4eSopenharmony_ci    ASSERT_TRUE(controller.HandleApnChanged());
9582d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
9592d43be4eSopenharmony_ci    controller.ProcessEvent(event);
9602d43be4eSopenharmony_ci    event = nullptr;
9612d43be4eSopenharmony_ci    controller.ProcessEvent(event);
9622d43be4eSopenharmony_ci    controller.RegisterEvents();
9632d43be4eSopenharmony_ci    ASSERT_FALSE(controller.IsRestrictedMode());
9642d43be4eSopenharmony_ci    ASSERT_EQ(DisConnectionReason::REASON_NORMAL, controller.GetDisConnectionReason());
9652d43be4eSopenharmony_ci    controller.HasInternetCapability(0);
9662d43be4eSopenharmony_ci    DisConnectionReason reason = DisConnectionReason::REASON_NORMAL;
9672d43be4eSopenharmony_ci    ASSERT_TRUE(controller.ClearAllConnections(reason));
9682d43be4eSopenharmony_ci    ASSERT_TRUE(controller.EstablishAllApnsIfConnectable());
9692d43be4eSopenharmony_ci    controller.ChangeConnectionForDsds(false);
9702d43be4eSopenharmony_ci    ASSERT_FALSE(controller.GetCellularDataFlowType());
9712d43be4eSopenharmony_ci    controller.UnRegisterEvents();
9722d43be4eSopenharmony_ci    if (controller.cellularDataHandler_ != nullptr) {
9732d43be4eSopenharmony_ci        controller.cellularDataHandler_->UnRegisterDataSettingObserver();
9742d43be4eSopenharmony_ci        controller.cellularDataHandler_->RemoveAllEvents();
9752d43be4eSopenharmony_ci        sleep(SLEEP_TIME_SECONDS);
9762d43be4eSopenharmony_ci    }
9772d43be4eSopenharmony_ci}
9782d43be4eSopenharmony_ci
9792d43be4eSopenharmony_ci/**
9802d43be4eSopenharmony_ci * @tc.number  CellularDataController_003
9812d43be4eSopenharmony_ci * @tc.name     test error branch
9822d43be4eSopenharmony_ci * @tc.desc     Function test
9832d43be4eSopenharmony_ci */
9842d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_CellularDataController_003, Function | MediumTest | Level3)
9852d43be4eSopenharmony_ci{
9862d43be4eSopenharmony_ci    CellularDataController controller { 0 };
9872d43be4eSopenharmony_ci    controller.RegisterEvents();
9882d43be4eSopenharmony_ci    controller.Init();
9892d43be4eSopenharmony_ci    ApnItem::Attribute apnAttr;
9902d43be4eSopenharmony_ci    controller.GetDataConnApnAttr(apnAttr);
9912d43be4eSopenharmony_ci    std::string str = "";
9922d43be4eSopenharmony_ci    ASSERT_EQ(controller.GetDataConnIpType(), str);
9932d43be4eSopenharmony_ci    ASSERT_EQ(controller.GetDataRecoveryState(), 0);
9942d43be4eSopenharmony_ci    controller.IsNeedDoRecovery(true);
9952d43be4eSopenharmony_ci    controller.cellularDataHandler_ = nullptr;
9962d43be4eSopenharmony_ci    controller.GetDataConnApnAttr(apnAttr);
9972d43be4eSopenharmony_ci    ASSERT_EQ(controller.GetDataConnIpType(), str);
9982d43be4eSopenharmony_ci    ASSERT_EQ(controller.GetDataRecoveryState(), 0);
9992d43be4eSopenharmony_ci    controller.IsNeedDoRecovery(true);
10002d43be4eSopenharmony_ci}
10012d43be4eSopenharmony_ci
10022d43be4eSopenharmony_ci/**
10032d43be4eSopenharmony_ci * @tc.number  CellularDataConnectionManager_001
10042d43be4eSopenharmony_ci * @tc.name     test error branch
10052d43be4eSopenharmony_ci * @tc.desc     Function test
10062d43be4eSopenharmony_ci */
10072d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_CellularDataConnectionManager_001, Function | MediumTest | Level3)
10082d43be4eSopenharmony_ci{
10092d43be4eSopenharmony_ci    DataConnectionManager con { 0 };
10102d43be4eSopenharmony_ci    con.Init();
10112d43be4eSopenharmony_ci    con.connectionMonitor_ = nullptr;
10122d43be4eSopenharmony_ci    con.ccmDefaultState_ = nullptr;
10132d43be4eSopenharmony_ci    con.stateMachineEventHandler_ = nullptr;
10142d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> stateMachine = nullptr;
10152d43be4eSopenharmony_ci    con.AddConnectionStateMachine(stateMachine);
10162d43be4eSopenharmony_ci    con.RemoveConnectionStateMachine(stateMachine);
10172d43be4eSopenharmony_ci    con.AddActiveConnectionByCid(stateMachine);
10182d43be4eSopenharmony_ci    con.GetActiveConnectionByCid(1);
10192d43be4eSopenharmony_ci    con.GetAllConnectionMachine();
10202d43be4eSopenharmony_ci    con.StartStallDetectionTimer();
10212d43be4eSopenharmony_ci    con.StopStallDetectionTimer();
10222d43be4eSopenharmony_ci    con.RegisterRadioObserver();
10232d43be4eSopenharmony_ci    con.UnRegisterRadioObserver();
10242d43be4eSopenharmony_ci    con.UpdateBandWidthsUseLte();
10252d43be4eSopenharmony_ci    con.GetActiveConnection();
10262d43be4eSopenharmony_ci    con.IsBandwidthSourceModem();
10272d43be4eSopenharmony_ci    ASSERT_EQ(-1, con.GetDataRecoveryState());
10282d43be4eSopenharmony_ci    con.IsNeedDoRecovery(true);
10292d43be4eSopenharmony_ci    ASSERT_TRUE(con.GetActiveConnectionByCid(0) == nullptr);
10302d43be4eSopenharmony_ci    ASSERT_TRUE(con.isNoActiveConnection());
10312d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
10322d43be4eSopenharmony_ci    event = nullptr;
10332d43be4eSopenharmony_ci    CcmDefaultState ccmDefaultState { con, "CcmDefaultState" };
10342d43be4eSopenharmony_ci    ASSERT_FALSE(ccmDefaultState.StateProcess(event));
10352d43be4eSopenharmony_ci    event = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_CONNECTED);
10362d43be4eSopenharmony_ci    ASSERT_TRUE(ccmDefaultState.StateProcess(event));
10372d43be4eSopenharmony_ci    event = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_DATA_CALL_LIST_CHANGED);
10382d43be4eSopenharmony_ci    ASSERT_TRUE(ccmDefaultState.StateProcess(event));
10392d43be4eSopenharmony_ci    event = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_LINK_CAPABILITY_CHANGED);
10402d43be4eSopenharmony_ci    ASSERT_TRUE(ccmDefaultState.StateProcess(event));
10412d43be4eSopenharmony_ci    event = AppExecFwk::InnerEvent::Get(0);
10422d43be4eSopenharmony_ci    ASSERT_FALSE(ccmDefaultState.StateProcess(event));
10432d43be4eSopenharmony_ci    ccmDefaultState.RadioDataCallListChanged(event);
10442d43be4eSopenharmony_ci    ccmDefaultState.UpdateNetworkInfo(event);
10452d43be4eSopenharmony_ci    ccmDefaultState.RadioLinkCapabilityChanged(event);
10462d43be4eSopenharmony_ci    con.GetDataFlowType();
10472d43be4eSopenharmony_ci    con.GetDefaultBandWidthsConfig();
10482d43be4eSopenharmony_ci    con.GetDefaultTcpBufferConfig();
10492d43be4eSopenharmony_ci    con.SetDataFlowType(CellDataFlowType::DATA_FLOW_TYPE_NONE);
10502d43be4eSopenharmony_ci    con.UpdateCallState(0);
10512d43be4eSopenharmony_ci    ASSERT_EQ("", con.GetTcpBufferByRadioTech(0));
10522d43be4eSopenharmony_ci    ASSERT_TRUE(con.GetBandwidthsByRadioTech(0).upBandwidth == DEFAULT_BANDWIDTH);
10532d43be4eSopenharmony_ci}
10542d43be4eSopenharmony_ci
10552d43be4eSopenharmony_ci/**
10562d43be4eSopenharmony_ci * @tc.number  CellularDataConnectionManager_002
10572d43be4eSopenharmony_ci * @tc.name     test error branch
10582d43be4eSopenharmony_ci * @tc.desc     Function test
10592d43be4eSopenharmony_ci */
10602d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_CellularDataConnectionManager_002, Function | MediumTest | Level3)
10612d43be4eSopenharmony_ci{
10622d43be4eSopenharmony_ci    DataConnectionManager con { 0 };
10632d43be4eSopenharmony_ci    con.Init();
10642d43be4eSopenharmony_ci    std::shared_ptr<StateMachineTest> machine = std::make_shared<StateMachineTest>();
10652d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> stateMachine = machine->CreateCellularDataConnect(0);
10662d43be4eSopenharmony_ci    con.AddConnectionStateMachine(stateMachine);
10672d43be4eSopenharmony_ci    con.RemoveConnectionStateMachine(stateMachine);
10682d43be4eSopenharmony_ci    con.AddActiveConnectionByCid(stateMachine);
10692d43be4eSopenharmony_ci    con.GetActiveConnectionByCid(1);
10702d43be4eSopenharmony_ci    con.GetAllConnectionMachine();
10712d43be4eSopenharmony_ci    con.StartStallDetectionTimer();
10722d43be4eSopenharmony_ci    con.StopStallDetectionTimer();
10732d43be4eSopenharmony_ci    con.RegisterRadioObserver();
10742d43be4eSopenharmony_ci    con.UnRegisterRadioObserver();
10752d43be4eSopenharmony_ci    con.uplinkUseLte_ = true;
10762d43be4eSopenharmony_ci    con.UpdateBandWidthsUseLte();
10772d43be4eSopenharmony_ci    con.GetActiveConnection();
10782d43be4eSopenharmony_ci    con.IsBandwidthSourceModem();
10792d43be4eSopenharmony_ci    ASSERT_NE(-1, con.GetDataRecoveryState());
10802d43be4eSopenharmony_ci    con.IsNeedDoRecovery(true);
10812d43be4eSopenharmony_ci    con.GetActiveConnectionByCid(0);
10822d43be4eSopenharmony_ci    con.isNoActiveConnection();
10832d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
10842d43be4eSopenharmony_ci    CcmDefaultState ccmDefaultState { con, "CcmDefaultState" };
10852d43be4eSopenharmony_ci    ASSERT_FALSE(ccmDefaultState.StateProcess(event));
10862d43be4eSopenharmony_ci    event = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_CONNECTED);
10872d43be4eSopenharmony_ci    ASSERT_TRUE(ccmDefaultState.StateProcess(event));
10882d43be4eSopenharmony_ci    event = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_DATA_CALL_LIST_CHANGED);
10892d43be4eSopenharmony_ci    ASSERT_TRUE(ccmDefaultState.StateProcess(event));
10902d43be4eSopenharmony_ci    event = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_LINK_CAPABILITY_CHANGED);
10912d43be4eSopenharmony_ci    ASSERT_TRUE(ccmDefaultState.StateProcess(event));
10922d43be4eSopenharmony_ci    event = AppExecFwk::InnerEvent::Get(0);
10932d43be4eSopenharmony_ci    ASSERT_FALSE(ccmDefaultState.StateProcess(event));
10942d43be4eSopenharmony_ci    ccmDefaultState.RadioDataCallListChanged(event);
10952d43be4eSopenharmony_ci    ccmDefaultState.UpdateNetworkInfo(event);
10962d43be4eSopenharmony_ci    ccmDefaultState.RadioLinkCapabilityChanged(event);
10972d43be4eSopenharmony_ci    con.GetDataFlowType();
10982d43be4eSopenharmony_ci    con.GetDefaultBandWidthsConfig();
10992d43be4eSopenharmony_ci    con.GetDefaultTcpBufferConfig();
11002d43be4eSopenharmony_ci    con.SetDataFlowType(CellDataFlowType::DATA_FLOW_TYPE_NONE);
11012d43be4eSopenharmony_ci    con.UpdateCallState(0);
11022d43be4eSopenharmony_ci    ASSERT_EQ("", con.GetTcpBufferByRadioTech(0));
11032d43be4eSopenharmony_ci    ASSERT_TRUE(con.GetBandwidthsByRadioTech(0).upBandwidth == DEFAULT_BANDWIDTH);
11042d43be4eSopenharmony_ci}
11052d43be4eSopenharmony_ci
11062d43be4eSopenharmony_ci/**
11072d43be4eSopenharmony_ci * @tc.number  DataConnectionMonitor_001
11082d43be4eSopenharmony_ci * @tc.name     test error branch
11092d43be4eSopenharmony_ci * @tc.desc     Function test
11102d43be4eSopenharmony_ci */
11112d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_DataConnectionMonitor_001, Function | MediumTest | Level3)
11122d43be4eSopenharmony_ci{
11132d43be4eSopenharmony_ci    DataConnectionManager con { 0 };
11142d43be4eSopenharmony_ci    ASSERT_FALSE(con.connectionMonitor_ == nullptr);
11152d43be4eSopenharmony_ci    con.connectionMonitor_->trafficManager_ = nullptr;
11162d43be4eSopenharmony_ci    con.connectionMonitor_->stallDetectionTrafficManager_ = nullptr;
11172d43be4eSopenharmony_ci    con.connectionMonitor_->UpdateFlowInfo();
11182d43be4eSopenharmony_ci    con.connectionMonitor_->UpdateCallState(0);
11192d43be4eSopenharmony_ci    con.connectionMonitor_->OnStallDetectionTimer();
11202d43be4eSopenharmony_ci    con.connectionMonitor_->StopStallDetectionTimer();
11212d43be4eSopenharmony_ci    con.connectionMonitor_->dataRecoveryState_ = RecoveryState::STATE_REQUEST_CONTEXT_LIST;
11222d43be4eSopenharmony_ci    con.connectionMonitor_->HandleRecovery();
11232d43be4eSopenharmony_ci    con.connectionMonitor_->dataRecoveryState_ = RecoveryState::STATE_CLEANUP_CONNECTIONS;
11242d43be4eSopenharmony_ci    con.connectionMonitor_->HandleRecovery();
11252d43be4eSopenharmony_ci    con.connectionMonitor_->dataRecoveryState_ = RecoveryState::STATE_REREGISTER_NETWORK;
11262d43be4eSopenharmony_ci    con.connectionMonitor_->HandleRecovery();
11272d43be4eSopenharmony_ci    con.connectionMonitor_->dataRecoveryState_ = RecoveryState::STATE_RADIO_STATUS_RESTART;
11282d43be4eSopenharmony_ci    con.connectionMonitor_->HandleRecovery();
11292d43be4eSopenharmony_ci    con.connectionMonitor_->EndNetStatistics();
11302d43be4eSopenharmony_ci    con.connectionMonitor_->UpdateNetTrafficState();
11312d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
11322d43be4eSopenharmony_ci    con.connectionMonitor_->SetPreferredNetworkPara(event);
11332d43be4eSopenharmony_ci    con.connectionMonitor_->UpdateDataFlowType();
11342d43be4eSopenharmony_ci    con.connectionMonitor_->ProcessEvent(event);
11352d43be4eSopenharmony_ci    event = nullptr;
11362d43be4eSopenharmony_ci    con.connectionMonitor_->ProcessEvent(event);
11372d43be4eSopenharmony_ci    ASSERT_EQ(CellDataFlowType::DATA_FLOW_TYPE_NONE, con.connectionMonitor_->GetDataFlowType());
11382d43be4eSopenharmony_ci}
11392d43be4eSopenharmony_ci
11402d43be4eSopenharmony_ci/**
11412d43be4eSopenharmony_ci * @tc.number  DataConnectionMonitor_002
11422d43be4eSopenharmony_ci * @tc.name     test error branch
11432d43be4eSopenharmony_ci * @tc.desc     Function test
11442d43be4eSopenharmony_ci */
11452d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_DataConnectionMonitor_002, Function | MediumTest | Level3)
11462d43be4eSopenharmony_ci{
11472d43be4eSopenharmony_ci    DataConnectionManager con { 0 };
11482d43be4eSopenharmony_ci    ASSERT_FALSE(con.connectionMonitor_ == nullptr);
11492d43be4eSopenharmony_ci    con.connectionMonitor_->UpdateFlowInfo();
11502d43be4eSopenharmony_ci    con.connectionMonitor_->UpdateCallState(0);
11512d43be4eSopenharmony_ci    con.connectionMonitor_->OnStallDetectionTimer();
11522d43be4eSopenharmony_ci    con.connectionMonitor_->StopStallDetectionTimer();
11532d43be4eSopenharmony_ci    con.connectionMonitor_->dataRecoveryState_ = RecoveryState::STATE_REQUEST_CONTEXT_LIST;
11542d43be4eSopenharmony_ci    con.connectionMonitor_->HandleRecovery();
11552d43be4eSopenharmony_ci    con.connectionMonitor_->dataRecoveryState_ = RecoveryState::STATE_CLEANUP_CONNECTIONS;
11562d43be4eSopenharmony_ci    con.connectionMonitor_->HandleRecovery();
11572d43be4eSopenharmony_ci    con.connectionMonitor_->dataRecoveryState_ = RecoveryState::STATE_REREGISTER_NETWORK;
11582d43be4eSopenharmony_ci    con.connectionMonitor_->HandleRecovery();
11592d43be4eSopenharmony_ci    con.connectionMonitor_->dataRecoveryState_ = RecoveryState::STATE_RADIO_STATUS_RESTART;
11602d43be4eSopenharmony_ci    con.connectionMonitor_->HandleRecovery();
11612d43be4eSopenharmony_ci    con.connectionMonitor_->EndNetStatistics();
11622d43be4eSopenharmony_ci    con.connectionMonitor_->UpdateNetTrafficState();
11632d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
11642d43be4eSopenharmony_ci    con.connectionMonitor_->SetPreferredNetworkPara(event);
11652d43be4eSopenharmony_ci    con.connectionMonitor_->UpdateDataFlowType();
11662d43be4eSopenharmony_ci    con.connectionMonitor_->ProcessEvent(event);
11672d43be4eSopenharmony_ci    event = nullptr;
11682d43be4eSopenharmony_ci    con.connectionMonitor_->ProcessEvent(event);
11692d43be4eSopenharmony_ci    ASSERT_EQ(CellDataFlowType::DATA_FLOW_TYPE_NONE, con.connectionMonitor_->GetDataFlowType());
11702d43be4eSopenharmony_ci}
11712d43be4eSopenharmony_ci
11722d43be4eSopenharmony_ci/**
11732d43be4eSopenharmony_ci * @tc.number  CellularDataUtils_001
11742d43be4eSopenharmony_ci * @tc.name     test error branch
11752d43be4eSopenharmony_ci * @tc.desc     Function test
11762d43be4eSopenharmony_ci */
11772d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_CellularDataUtils_001, Function | MediumTest | Level3)
11782d43be4eSopenharmony_ci{
11792d43be4eSopenharmony_ci    ASSERT_EQ("unknown",
11802d43be4eSopenharmony_ci        CellularDataUtils::ConvertRadioTechToRadioName(static_cast<int32_t>(RadioTech::RADIO_TECHNOLOGY_UNKNOWN)));
11812d43be4eSopenharmony_ci    ASSERT_EQ(
11822d43be4eSopenharmony_ci        "EDGE", CellularDataUtils::ConvertRadioTechToRadioName(static_cast<int32_t>(RadioTech::RADIO_TECHNOLOGY_GSM)));
11832d43be4eSopenharmony_ci    ASSERT_EQ("1xRTT",
11842d43be4eSopenharmony_ci        CellularDataUtils::ConvertRadioTechToRadioName(static_cast<int32_t>(RadioTech::RADIO_TECHNOLOGY_1XRTT)));
11852d43be4eSopenharmony_ci    ASSERT_EQ("UMTS",
11862d43be4eSopenharmony_ci        CellularDataUtils::ConvertRadioTechToRadioName(static_cast<int32_t>(RadioTech::RADIO_TECHNOLOGY_WCDMA)));
11872d43be4eSopenharmony_ci    ASSERT_EQ(
11882d43be4eSopenharmony_ci        "HSPA", CellularDataUtils::ConvertRadioTechToRadioName(static_cast<int32_t>(RadioTech::RADIO_TECHNOLOGY_HSPA)));
11892d43be4eSopenharmony_ci    ASSERT_EQ("HSPAP",
11902d43be4eSopenharmony_ci        CellularDataUtils::ConvertRadioTechToRadioName(static_cast<int32_t>(RadioTech::RADIO_TECHNOLOGY_HSPAP)));
11912d43be4eSopenharmony_ci    ASSERT_EQ("TD-SCDMA",
11922d43be4eSopenharmony_ci        CellularDataUtils::ConvertRadioTechToRadioName(static_cast<int32_t>(RadioTech::RADIO_TECHNOLOGY_TD_SCDMA)));
11932d43be4eSopenharmony_ci    ASSERT_EQ(
11942d43be4eSopenharmony_ci        "EVDO", CellularDataUtils::ConvertRadioTechToRadioName(static_cast<int32_t>(RadioTech::RADIO_TECHNOLOGY_EVDO)));
11952d43be4eSopenharmony_ci    ASSERT_EQ("eHRPD",
11962d43be4eSopenharmony_ci        CellularDataUtils::ConvertRadioTechToRadioName(static_cast<int32_t>(RadioTech::RADIO_TECHNOLOGY_EHRPD)));
11972d43be4eSopenharmony_ci    ASSERT_EQ(
11982d43be4eSopenharmony_ci        "LTE", CellularDataUtils::ConvertRadioTechToRadioName(static_cast<int32_t>(RadioTech::RADIO_TECHNOLOGY_LTE)));
11992d43be4eSopenharmony_ci    ASSERT_EQ("LTE_CA",
12002d43be4eSopenharmony_ci        CellularDataUtils::ConvertRadioTechToRadioName(static_cast<int32_t>(RadioTech::RADIO_TECHNOLOGY_LTE_CA)));
12012d43be4eSopenharmony_ci    ASSERT_EQ("IWAN",
12022d43be4eSopenharmony_ci        CellularDataUtils::ConvertRadioTechToRadioName(static_cast<int32_t>(RadioTech::RADIO_TECHNOLOGY_IWLAN)));
12032d43be4eSopenharmony_ci    ASSERT_EQ(
12042d43be4eSopenharmony_ci        "NR", CellularDataUtils::ConvertRadioTechToRadioName(static_cast<int32_t>(RadioTech::RADIO_TECHNOLOGY_NR)));
12052d43be4eSopenharmony_ci    ASSERT_EQ(
12062d43be4eSopenharmony_ci        "unknown", CellularDataUtils::ConvertRadioTechToRadioName(static_cast<int32_t>(INVALID_SLOTID)));
12072d43be4eSopenharmony_ci    ASSERT_TRUE(CellularDataUtils::Split("", "").empty());
12082d43be4eSopenharmony_ci    EXPECT_GE(DelayedSingleton<CellularDataClient>::GetInstance()->GetCellularDataFlowType(), 0);
12092d43be4eSopenharmony_ci    auto recipient =
12102d43be4eSopenharmony_ci        std::make_shared<CellularDataClient::CellularDataDeathRecipient>(CellularDataClient::GetInstance());
12112d43be4eSopenharmony_ci    recipient->OnRemoteDied(nullptr);
12122d43be4eSopenharmony_ci    EXPECT_GE(DelayedSingleton<CellularDataClient>::GetInstance()->GetCellularDataFlowType(), 0);
12132d43be4eSopenharmony_ci}
12142d43be4eSopenharmony_ci
12152d43be4eSopenharmony_ci/**
12162d43be4eSopenharmony_ci * @tc.number   Telephony_ApnHolder_001
12172d43be4eSopenharmony_ci * @tc.name     test error branch
12182d43be4eSopenharmony_ci * @tc.desc     Function test
12192d43be4eSopenharmony_ci */
12202d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_ApnHolder_001, Function | MediumTest | Level3)
12212d43be4eSopenharmony_ci{
12222d43be4eSopenharmony_ci    sptr<ApnHolder> apnHolder = new ApnHolder("", 0);
12232d43be4eSopenharmony_ci    apnHolder->ReleaseAllCellularData();
12242d43be4eSopenharmony_ci    apnHolder->GetNextRetryApn();
12252d43be4eSopenharmony_ci    std::vector<sptr<ApnItem>> matchedApns;
12262d43be4eSopenharmony_ci    apnHolder->SetAllMatchedApns(matchedApns);
12272d43be4eSopenharmony_ci    apnHolder->GetRetryDelay(0, 0, RetryScene::RETRY_SCENE_OTHERS, 0);
12282d43be4eSopenharmony_ci    apnHolder->MarkCurrentApnBad();
12292d43be4eSopenharmony_ci    sptr<ApnItem> apnItem = ApnItem::MakeDefaultApn(DATA_CONTEXT_ROLE_DEFAULT);
12302d43be4eSopenharmony_ci    apnHolder->SetCurrentApn(apnItem);
12312d43be4eSopenharmony_ci    apnHolder->GetCurrentApn();
12322d43be4eSopenharmony_ci    apnHolder->ClearCurrentApnBad();
12332d43be4eSopenharmony_ci    EXPECT_FALSE(apnItem->IsBadApn());
12342d43be4eSopenharmony_ci    apnHolder->SetApnState(ApnProfileState::PROFILE_STATE_IDLE);
12352d43be4eSopenharmony_ci    apnHolder->SetApnState(ApnProfileState::PROFILE_STATE_FAILED);
12362d43be4eSopenharmony_ci    apnHolder->GetApnState();
12372d43be4eSopenharmony_ci    apnHolder->IsDataCallEnabled();
12382d43be4eSopenharmony_ci    apnHolder->GetApnType();
12392d43be4eSopenharmony_ci    apnHolder->ReleaseDataConnection();
12402d43be4eSopenharmony_ci    apnHolder->cellularDataStateMachine_ = nullptr;
12412d43be4eSopenharmony_ci    apnHolder->ReleaseDataConnection();
12422d43be4eSopenharmony_ci    apnHolder->SetCellularDataStateMachine(apnHolder->cellularDataStateMachine_);
12432d43be4eSopenharmony_ci    apnHolder->InitialApnRetryCount();
12442d43be4eSopenharmony_ci    apnHolder->GetCellularDataStateMachine();
12452d43be4eSopenharmony_ci    apnHolder->GetCapability();
12462d43be4eSopenharmony_ci    apnHolder->GetPriority();
12472d43be4eSopenharmony_ci    apnHolder->InitialApnRetryCount();
12482d43be4eSopenharmony_ci    NetRequest request;
12492d43be4eSopenharmony_ci    request.ident = "test";
12502d43be4eSopenharmony_ci    request.capability = -1;
12512d43be4eSopenharmony_ci    apnHolder->RequestCellularData(request);
12522d43be4eSopenharmony_ci    apnHolder->ReleaseCellularData(request);
12532d43be4eSopenharmony_ci    apnHolder->RequestCellularData(request);
12542d43be4eSopenharmony_ci    apnHolder->ReleaseCellularData(request);
12552d43be4eSopenharmony_ci    ASSERT_FALSE(apnHolder->IsEmergencyType());
12562d43be4eSopenharmony_ci    ASSERT_FALSE(apnHolder->IsMmsType());
12572d43be4eSopenharmony_ci    EXPECT_GE(apnHolder->GetProfileId(DATA_CONTEXT_ROLE_DEFAULT), DATA_PROFILE_DEFAULT);
12582d43be4eSopenharmony_ci    EXPECT_GE(apnHolder->GetProfileId("test"), DATA_PROFILE_DEFAULT);
12592d43be4eSopenharmony_ci}
12602d43be4eSopenharmony_ci
12612d43be4eSopenharmony_ci/**
12622d43be4eSopenharmony_ci * @tc.number   Telephony_ApnHolder_002
12632d43be4eSopenharmony_ci * @tc.name     test error branch
12642d43be4eSopenharmony_ci * @tc.desc     Function test
12652d43be4eSopenharmony_ci */
12662d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_ApnHolder_002, Function | MediumTest | Level3)
12672d43be4eSopenharmony_ci{
12682d43be4eSopenharmony_ci    sptr<ApnHolder> apnHolder = new ApnHolder("", 0);
12692d43be4eSopenharmony_ci    std::vector<sptr<ApnItem>> newMatchedApns;
12702d43be4eSopenharmony_ci    std::vector<sptr<ApnItem>> oldMatchedApns;
12712d43be4eSopenharmony_ci    apnHolder->SetAllMatchedApns(oldMatchedApns);
12722d43be4eSopenharmony_ci    ASSERT_FALSE(apnHolder->IsSameMatchedApns(newMatchedApns, true));
12732d43be4eSopenharmony_ci    sptr<ApnItem> apnItemFirst = ApnItem::MakeDefaultApn(DATA_CONTEXT_ROLE_DEFAULT);
12742d43be4eSopenharmony_ci    newMatchedApns.push_back(apnItemFirst);
12752d43be4eSopenharmony_ci    oldMatchedApns.push_back(apnItemFirst);
12762d43be4eSopenharmony_ci    apnHolder->SetAllMatchedApns(oldMatchedApns);
12772d43be4eSopenharmony_ci    ASSERT_TRUE(apnHolder->IsSameMatchedApns(newMatchedApns, true));
12782d43be4eSopenharmony_ci    sptr<ApnItem> apnItemSecond = ApnItem::MakeDefaultApn(DATA_CONTEXT_ROLE_DEFAULT);
12792d43be4eSopenharmony_ci    newMatchedApns.push_back(apnItemSecond);
12802d43be4eSopenharmony_ci    ASSERT_FALSE(apnHolder->IsSameMatchedApns(newMatchedApns, true));
12812d43be4eSopenharmony_ci}
12822d43be4eSopenharmony_ci
12832d43be4eSopenharmony_ci/**
12842d43be4eSopenharmony_ci * @tc.number   Telephony_ApnHolder_003
12852d43be4eSopenharmony_ci * @tc.name     test error branch
12862d43be4eSopenharmony_ci * @tc.desc     Function test
12872d43be4eSopenharmony_ci */
12882d43be4eSopenharmony_ciHWTEST_F(BranchTest, Telephony_ApnHolder_003, Function | MediumTest | Level3)
12892d43be4eSopenharmony_ci{
12902d43be4eSopenharmony_ci    sptr<ApnItem> newApnItem;
12912d43be4eSopenharmony_ci    sptr<ApnItem> oldApnItem;
12922d43be4eSopenharmony_ci    ASSERT_FALSE(ApnHolder::IsSameApnItem(newApnItem, oldApnItem, true));
12932d43be4eSopenharmony_ci    oldApnItem = ApnItem::MakeDefaultApn(DATA_CONTEXT_ROLE_DEFAULT);
12942d43be4eSopenharmony_ci    ASSERT_FALSE(ApnHolder::IsSameApnItem(newApnItem, oldApnItem, true));
12952d43be4eSopenharmony_ci    newApnItem = ApnItem::MakeDefaultApn(DATA_CONTEXT_ROLE_DEFAULT);
12962d43be4eSopenharmony_ci    oldApnItem = ApnItem::MakeDefaultApn(DATA_CONTEXT_ROLE_DEFAULT);
12972d43be4eSopenharmony_ci    ASSERT_TRUE(ApnHolder::IsSameApnItem(newApnItem, oldApnItem, false));
12982d43be4eSopenharmony_ci    oldApnItem->CanDealWithType(DATA_CONTEXT_ROLE_DEFAULT);
12992d43be4eSopenharmony_ci    oldApnItem->GetApnTypes();
13002d43be4eSopenharmony_ci    PdpProfile apnBean;
13012d43be4eSopenharmony_ci    oldApnItem->MakeApn(apnBean);
13022d43be4eSopenharmony_ci    oldApnItem->MarkBadApn(false);
13032d43be4eSopenharmony_ci    ASSERT_FALSE(oldApnItem->IsBadApn());
13042d43be4eSopenharmony_ci}
13052d43be4eSopenharmony_ci
13062d43be4eSopenharmony_ci/**
13072d43be4eSopenharmony_ci * @tc.number   NetworkSearchCallback_Test_01
13082d43be4eSopenharmony_ci * @tc.name    TestDump
13092d43be4eSopenharmony_ci * @tc.desc     Function test
13102d43be4eSopenharmony_ci */
13112d43be4eSopenharmony_ciHWTEST_F(BranchTest, NetworkSearchCallback_Test_01, Function | MediumTest | Level3)
13122d43be4eSopenharmony_ci{
13132d43be4eSopenharmony_ci    auto networkSearchCallback = std::make_shared<NetworkSearchCallback>();
13142d43be4eSopenharmony_ci    networkSearchCallback->ClearCellularDataConnections(0);
13152d43be4eSopenharmony_ci    networkSearchCallback->ClearCellularDataConnections(-1);
13162d43be4eSopenharmony_ci    ASSERT_FALSE(networkSearchCallback->HasInternetCapability(0, 0));
13172d43be4eSopenharmony_ci    StateNotification::GetInstance().UpdateCellularDataConnectState(0, PROFILE_STATE_DISCONNECTING, 0);
13182d43be4eSopenharmony_ci    StateNotification::GetInstance().OnUpDataFlowtype(0, CellDataFlowType::DATA_FLOW_TYPE_NONE);
13192d43be4eSopenharmony_ci    StateNotification::GetInstance().OnUpDataFlowtype(1, CellDataFlowType::DATA_FLOW_TYPE_UP_DOWN);
13202d43be4eSopenharmony_ci    StateNotification::GetInstance().OnUpDataFlowtype(2, CellDataFlowType::DATA_FLOW_TYPE_UP_DOWN);
13212d43be4eSopenharmony_ci    ASSERT_FALSE(networkSearchCallback->HasInternetCapability(-1, -1));
13222d43be4eSopenharmony_ci}
13232d43be4eSopenharmony_ci
13242d43be4eSopenharmony_ci/**
13252d43be4eSopenharmony_ci * @tc.number   Active_Test_01
13262d43be4eSopenharmony_ci * @tc.name    TestDump
13272d43be4eSopenharmony_ci * @tc.desc     Function test
13282d43be4eSopenharmony_ci */
13292d43be4eSopenharmony_ciHWTEST_F(BranchTest, Active_Test_01, Function | MediumTest | Level3)
13302d43be4eSopenharmony_ci{
13312d43be4eSopenharmony_ci    std::shared_ptr<StateMachineTest> machine = std::make_shared<StateMachineTest>();
13322d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> cellularMachine = machine->CreateCellularDataConnect(0);
13332d43be4eSopenharmony_ci    cellularMachine->Init();
13342d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
13352d43be4eSopenharmony_ci    std::weak_ptr<CellularDataStateMachine> stateMachine1;
13362d43be4eSopenharmony_ci    active->stateMachine_ = stateMachine1;
13372d43be4eSopenharmony_ci    active->StateBegin();
13382d43be4eSopenharmony_ci    active->StateEnd();
13392d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
13402d43be4eSopenharmony_ci    event = nullptr;
13412d43be4eSopenharmony_ci    active->RefreshTcpBufferSizes();
13422d43be4eSopenharmony_ci    active->RefreshConnectionBandwidths();
13432d43be4eSopenharmony_ci    active->ProcessConnectDone(event);
13442d43be4eSopenharmony_ci    ASSERT_FALSE(active->StateProcess(event));
13452d43be4eSopenharmony_ci    ASSERT_FALSE(active->ProcessDisconnectDone(event));
13462d43be4eSopenharmony_ci    ASSERT_FALSE(active->ProcessDisconnectAllDone(event));
13472d43be4eSopenharmony_ci    ASSERT_FALSE(active->ProcessLostConnection(event));
13482d43be4eSopenharmony_ci    ASSERT_FALSE(active->ProcessRilAdapterHostDied(event));
13492d43be4eSopenharmony_ci    ASSERT_FALSE(active->ProcessLinkCapabilityChanged(event));
13502d43be4eSopenharmony_ci    ASSERT_FALSE(active->ProcessNrStateChanged(event));
13512d43be4eSopenharmony_ci    ASSERT_FALSE(active->ProcessNrFrequencyChanged(event));
13522d43be4eSopenharmony_ci    ASSERT_FALSE(active->ProcessDataConnectionComplete(event));
13532d43be4eSopenharmony_ci    ASSERT_FALSE(active->ProcessDataConnectionVoiceCallStartedOrEnded(event));
13542d43be4eSopenharmony_ci    ASSERT_FALSE(active->ProcessDataConnectionRoamOn(event));
13552d43be4eSopenharmony_ci    ASSERT_FALSE(active->ProcessDataConnectionRoamOff(event));
13562d43be4eSopenharmony_ci}
13572d43be4eSopenharmony_ci
13582d43be4eSopenharmony_ci/**
13592d43be4eSopenharmony_ci * @tc.number   Activating_Test_01
13602d43be4eSopenharmony_ci * @tc.name    TestDump
13612d43be4eSopenharmony_ci * @tc.desc     Function test
13622d43be4eSopenharmony_ci */
13632d43be4eSopenharmony_ciHWTEST_F(BranchTest, Activating_Test_02, Function | MediumTest | Level3)
13642d43be4eSopenharmony_ci{
13652d43be4eSopenharmony_ci    std::shared_ptr<StateMachineTest> machine = std::make_shared<StateMachineTest>();
13662d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> cellularMachine = machine->CreateCellularDataConnect(0);
13672d43be4eSopenharmony_ci    cellularMachine->Init();
13682d43be4eSopenharmony_ci    auto activating = static_cast<Activating *>(cellularMachine->activatingState_.GetRefPtr());
13692d43be4eSopenharmony_ci    std::weak_ptr<CellularDataStateMachine> stateMachine1;
13702d43be4eSopenharmony_ci    activating->stateMachine_ = stateMachine1;
13712d43be4eSopenharmony_ci    activating->StateBegin();
13722d43be4eSopenharmony_ci    activating->StateEnd();
13732d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
13742d43be4eSopenharmony_ci    event = nullptr;
13752d43be4eSopenharmony_ci    activating->ProcessConnectTimeout(event);
13762d43be4eSopenharmony_ci    ASSERT_FALSE(activating->RilActivatePdpContextDone(event));
13772d43be4eSopenharmony_ci    ASSERT_FALSE(activating->RilErrorResponse(event));
13782d43be4eSopenharmony_ci    ASSERT_FALSE(activating->StateProcess(event));
13792d43be4eSopenharmony_ci}
13802d43be4eSopenharmony_ci
13812d43be4eSopenharmony_ci/**
13822d43be4eSopenharmony_ci * @tc.number   Inactive_Test_01
13832d43be4eSopenharmony_ci * @tc.name    TestDump
13842d43be4eSopenharmony_ci * @tc.desc     Function test
13852d43be4eSopenharmony_ci */
13862d43be4eSopenharmony_ciHWTEST_F(BranchTest, Inactive_Test_01, Function | MediumTest | Level3)
13872d43be4eSopenharmony_ci{
13882d43be4eSopenharmony_ci    std::shared_ptr<StateMachineTest> machine = std::make_shared<StateMachineTest>();
13892d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> cellularMachine = machine->CreateCellularDataConnect(0);
13902d43be4eSopenharmony_ci    cellularMachine->Init();
13912d43be4eSopenharmony_ci    auto inactive = static_cast<Inactive *>(cellularMachine->inActiveState_.GetRefPtr());
13922d43be4eSopenharmony_ci    std::weak_ptr<CellularDataStateMachine> stateMachine1;
13932d43be4eSopenharmony_ci    inactive->SetStateMachine(stateMachine1);
13942d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
13952d43be4eSopenharmony_ci    event = nullptr;
13962d43be4eSopenharmony_ci    inactive->StateBegin();
13972d43be4eSopenharmony_ci    inactive->StateEnd();
13982d43be4eSopenharmony_ci    inactive->SetDeActiveApnTypeId(0);
13992d43be4eSopenharmony_ci    ASSERT_FALSE(inactive->StateProcess(event));
14002d43be4eSopenharmony_ci}
14012d43be4eSopenharmony_ci
14022d43be4eSopenharmony_ci/**
14032d43be4eSopenharmony_ci * @tc.number   Disconnecting_Test_01
14042d43be4eSopenharmony_ci * @tc.name    TestDump
14052d43be4eSopenharmony_ci * @tc.desc     Function test
14062d43be4eSopenharmony_ci */
14072d43be4eSopenharmony_ciHWTEST_F(BranchTest, Disconnecting_Test_01, Function | MediumTest | Level3)
14082d43be4eSopenharmony_ci{
14092d43be4eSopenharmony_ci    std::shared_ptr<StateMachineTest> machine = std::make_shared<StateMachineTest>();
14102d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> cellularMachine = machine->CreateCellularDataConnect(0);
14112d43be4eSopenharmony_ci    cellularMachine->Init();
14122d43be4eSopenharmony_ci    auto disconnecting = static_cast<Disconnecting *>(cellularMachine->disconnectingState_.GetRefPtr());
14132d43be4eSopenharmony_ci    std::weak_ptr<CellularDataStateMachine> stateMachine1;
14142d43be4eSopenharmony_ci    disconnecting->stateMachine_ = stateMachine1;
14152d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
14162d43be4eSopenharmony_ci    event = nullptr;
14172d43be4eSopenharmony_ci    disconnecting->StateBegin();
14182d43be4eSopenharmony_ci    disconnecting->StateEnd();
14192d43be4eSopenharmony_ci    disconnecting->ProcessDisconnectTimeout(event);
14202d43be4eSopenharmony_ci    disconnecting->ProcessRilAdapterHostDied(event);
14212d43be4eSopenharmony_ci    ASSERT_FALSE(disconnecting->StateProcess(event));
14222d43be4eSopenharmony_ci}
14232d43be4eSopenharmony_ci
14242d43be4eSopenharmony_ci/**
14252d43be4eSopenharmony_ci * @tc.number   Default_Test_01
14262d43be4eSopenharmony_ci * @tc.name    TestDump
14272d43be4eSopenharmony_ci * @tc.desc     Function test
14282d43be4eSopenharmony_ci */
14292d43be4eSopenharmony_ciHWTEST_F(BranchTest, Default_Test_01, Function | MediumTest | Level3)
14302d43be4eSopenharmony_ci{
14312d43be4eSopenharmony_ci    std::shared_ptr<StateMachineTest> machine = std::make_shared<StateMachineTest>();
14322d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> cellularMachine = machine->CreateCellularDataConnect(0);
14332d43be4eSopenharmony_ci    cellularMachine->Init();
14342d43be4eSopenharmony_ci    auto mDefault = static_cast<Default *>(cellularMachine->defaultState_.GetRefPtr());
14352d43be4eSopenharmony_ci    std::weak_ptr<CellularDataStateMachine> stateMachine1;
14362d43be4eSopenharmony_ci    mDefault->stateMachine_ = stateMachine1;
14372d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
14382d43be4eSopenharmony_ci    event = nullptr;
14392d43be4eSopenharmony_ci    mDefault->StateBegin();
14402d43be4eSopenharmony_ci    mDefault->StateEnd();
14412d43be4eSopenharmony_ci    ASSERT_FALSE(mDefault->StateProcess(event));
14422d43be4eSopenharmony_ci    ASSERT_FALSE(mDefault->ProcessConnectDone(event));
14432d43be4eSopenharmony_ci    ASSERT_FALSE(mDefault->ProcessDisconnectDone(event));
14442d43be4eSopenharmony_ci    ASSERT_FALSE(mDefault->ProcessDisconnectAllDone(event));
14452d43be4eSopenharmony_ci    ASSERT_FALSE(mDefault->ProcessDataConnectionDrsOrRatChanged(event));
14462d43be4eSopenharmony_ci    ASSERT_FALSE(mDefault->ProcessDataConnectionRoamOn(event));
14472d43be4eSopenharmony_ci    ASSERT_FALSE(mDefault->ProcessDataConnectionRoamOff(event));
14482d43be4eSopenharmony_ci}
14492d43be4eSopenharmony_ci
14502d43be4eSopenharmony_ci/**
14512d43be4eSopenharmony_ci * @tc.number   ApnManager_Test_01
14522d43be4eSopenharmony_ci * @tc.name    TestDump
14532d43be4eSopenharmony_ci * @tc.desc     Function test
14542d43be4eSopenharmony_ci */
14552d43be4eSopenharmony_ciHWTEST_F(BranchTest, ApnManager_Test_01, Function | MediumTest | Level3)
14562d43be4eSopenharmony_ci{
14572d43be4eSopenharmony_ci    auto apnManager = std::make_shared<ApnManager>();
14582d43be4eSopenharmony_ci    EXPECT_GE(apnManager->CreateAllApnItemByDatabase(0), 0);
14592d43be4eSopenharmony_ci    EXPECT_EQ(apnManager->CreateAllApnItemByDatabase(0), 0);
14602d43be4eSopenharmony_ci    apnManager->ResetApns(0);
14612d43be4eSopenharmony_ci    std::string operatorNumeric = "46011";
14622d43be4eSopenharmony_ci    apnManager->GetCTOperator(0, operatorNumeric);
14632d43be4eSopenharmony_ci    EXPECT_EQ(operatorNumeric, "46011");
14642d43be4eSopenharmony_ci    apnManager->GetApnHolder(DATA_CONTEXT_ROLE_DEFAULT);
14652d43be4eSopenharmony_ci    apnManager->ClearAllApnBad();
14662d43be4eSopenharmony_ci    apnManager->FindApnNameByApnId(1);
14672d43be4eSopenharmony_ci    std::shared_ptr<StateMachineTest> machine = std::make_shared<StateMachineTest>();
14682d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> cellularMachine = machine->CreateCellularDataConnect(0);
14692d43be4eSopenharmony_ci    cellularMachine->Init();
14702d43be4eSopenharmony_ci    ASSERT_TRUE(apnManager->IsDataConnectionNotUsed(cellularMachine));
14712d43be4eSopenharmony_ci    auto helper = CellularDataRdbHelper::GetInstance();
14722d43be4eSopenharmony_ci    helper->ResetApns(0);
14732d43be4eSopenharmony_ci    std::shared_ptr<DataShare::DataShareResultSet> result = nullptr;
14742d43be4eSopenharmony_ci    std::vector<PdpProfile> apnVec;
14752d43be4eSopenharmony_ci    helper->ReadMvnoApnResult(result, "", apnVec);
14762d43be4eSopenharmony_ci    PdpProfile apnBean;
14772d43be4eSopenharmony_ci    ASSERT_FALSE(helper->IsMvnoDataMatched("", apnBean));
14782d43be4eSopenharmony_ci    apnBean.mvnoType = MvnoType::ICCID;
14792d43be4eSopenharmony_ci    apnBean.mvnoMatchData = "test";
14802d43be4eSopenharmony_ci    ASSERT_TRUE(helper->IsMvnoDataMatched("test", apnBean));
14812d43be4eSopenharmony_ci    apnBean.mvnoType = MvnoType::SPN;
14822d43be4eSopenharmony_ci    ASSERT_TRUE(helper->IsMvnoDataMatched("test", apnBean));
14832d43be4eSopenharmony_ci    apnBean.mvnoType = MvnoType::GID1;
14842d43be4eSopenharmony_ci    ASSERT_TRUE(helper->IsMvnoDataMatched("test", apnBean));
14852d43be4eSopenharmony_ci    apnBean.mvnoType = MvnoType::IMSI;
14862d43be4eSopenharmony_ci    ASSERT_TRUE(helper->IsMvnoDataMatched("test", apnBean));
14872d43be4eSopenharmony_ci    apnBean.mvnoType = "error";
14882d43be4eSopenharmony_ci    ASSERT_FALSE(helper->IsMvnoDataMatched("test", apnBean));
14892d43be4eSopenharmony_ci    helper->QueryPreferApn(0, apnVec);
14902d43be4eSopenharmony_ci    ASSERT_FALSE(helper->QueryPreferApn(-1, apnVec));
14912d43be4eSopenharmony_ci}
14922d43be4eSopenharmony_ci
14932d43be4eSopenharmony_ci/**
14942d43be4eSopenharmony_ci * @tc.number   IsMvnoDataMatched_Test_01
14952d43be4eSopenharmony_ci * @tc.name     Test IsMvnoDataMatched
14962d43be4eSopenharmony_ci * @tc.desc     Function test
14972d43be4eSopenharmony_ci */
14982d43be4eSopenharmony_ciHWTEST_F(BranchTest, IsMvnoDataMatched_Test_01, Function | MediumTest | Level3)
14992d43be4eSopenharmony_ci{
15002d43be4eSopenharmony_ci    auto helper = CellularDataRdbHelper::GetInstance();
15012d43be4eSopenharmony_ci    PdpProfile apnBean;
15022d43be4eSopenharmony_ci    ASSERT_EQ(apnBean.mvnoMatchData, "");
15032d43be4eSopenharmony_ci    ASSERT_EQ(apnBean.mvnoType, "");
15042d43be4eSopenharmony_ci    ASSERT_FALSE(helper->IsMvnoDataMatched("", apnBean));
15052d43be4eSopenharmony_ci
15062d43be4eSopenharmony_ci    apnBean.mvnoType = MvnoType::ICCID;
15072d43be4eSopenharmony_ci    apnBean.mvnoMatchData = "";
15082d43be4eSopenharmony_ci    ASSERT_FALSE(helper->IsMvnoDataMatched("test", apnBean));
15092d43be4eSopenharmony_ci
15102d43be4eSopenharmony_ci    apnBean.mvnoType = MvnoType::SPN;
15112d43be4eSopenharmony_ci    apnBean.mvnoMatchData = "\\";
15122d43be4eSopenharmony_ci    ASSERT_FALSE(helper->IsMvnoDataMatched("test", apnBean));
15132d43be4eSopenharmony_ci
15142d43be4eSopenharmony_ci    apnBean.mvnoType = MvnoType::IMSI;
15152d43be4eSopenharmony_ci    apnBean.mvnoMatchData = "";
15162d43be4eSopenharmony_ci    ASSERT_FALSE(helper->IsMvnoDataMatched("test", apnBean));
15172d43be4eSopenharmony_ci
15182d43be4eSopenharmony_ci    apnBean.mvnoType = MvnoType::GID1;
15192d43be4eSopenharmony_ci    ASSERT_TRUE(helper->IsMvnoDataMatched("test", apnBean));
15202d43be4eSopenharmony_ci}
15212d43be4eSopenharmony_ci
15222d43be4eSopenharmony_ci/**
15232d43be4eSopenharmony_ci * @tc.number   IdleState_Test_01
15242d43be4eSopenharmony_ci * @tc.name     test error branch
15252d43be4eSopenharmony_ci * @tc.desc     Function test
15262d43be4eSopenharmony_ci */
15272d43be4eSopenharmony_ciHWTEST_F(BranchTest, Idle_Test_01, Function | MediumTest | Level3)
15282d43be4eSopenharmony_ci{
15292d43be4eSopenharmony_ci    std::shared_ptr<IncallStateMachineTest> incallStateMachineTest = std::make_shared<IncallStateMachineTest>();
15302d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
15312d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
15322d43be4eSopenharmony_ci    incallStateMachine->Init(TelCallStatus::CALL_STATUS_DIALING);
15332d43be4eSopenharmony_ci    incallStateMachine->GetCurrentState();
15342d43be4eSopenharmony_ci    incallStateMachine->GetSlotId();
15352d43be4eSopenharmony_ci    incallStateMachine->GetCallState();
15362d43be4eSopenharmony_ci    incallStateMachine->HasAnyConnectedState();
15372d43be4eSopenharmony_ci    incallStateMachine->UpdateCallState(TelCallStatus::CALL_STATUS_ALERTING);
15382d43be4eSopenharmony_ci    incallStateMachine->IsIncallDataSwitchOn();
15392d43be4eSopenharmony_ci    incallStateMachine->IsSecondaryCanActiveData();
15402d43be4eSopenharmony_ci    incallStateMachine->CanActiveDataByRadioTech();
15412d43be4eSopenharmony_ci    auto idleState = static_cast<IdleState *>(incallStateMachine->idleState_.GetRefPtr());
15422d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
15432d43be4eSopenharmony_ci    event = nullptr;
15442d43be4eSopenharmony_ci    idleState->StateBegin();
15452d43be4eSopenharmony_ci    ASSERT_FALSE(idleState->StateProcess(event));
15462d43be4eSopenharmony_ci    ASSERT_TRUE(idleState->ProcessCallStarted(event));
15472d43be4eSopenharmony_ci    ASSERT_TRUE(idleState->ProcessCallEnded(event));
15482d43be4eSopenharmony_ci    ASSERT_TRUE(idleState->ProcessSettingsOn(event));
15492d43be4eSopenharmony_ci    ASSERT_TRUE(idleState->ProcessDsdsChanged(event));
15502d43be4eSopenharmony_ci    idleState->StateEnd();
15512d43be4eSopenharmony_ci}
15522d43be4eSopenharmony_ci
15532d43be4eSopenharmony_ci/**
15542d43be4eSopenharmony_ci * @tc.number   ActivatingSecondaryState_Test_01
15552d43be4eSopenharmony_ci * @tc.name     test error branch
15562d43be4eSopenharmony_ci * @tc.desc     Function test
15572d43be4eSopenharmony_ci */
15582d43be4eSopenharmony_ciHWTEST_F(BranchTest, ActivatingSecondaryState_Test_01, Function | MediumTest | Level3)
15592d43be4eSopenharmony_ci{
15602d43be4eSopenharmony_ci    std::shared_ptr<IncallStateMachineTest> incallStateMachineTest = std::make_shared<IncallStateMachineTest>();
15612d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
15622d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
15632d43be4eSopenharmony_ci    incallStateMachine->Init(TelCallStatus::CALL_STATUS_DIALING);
15642d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->activatingSecondaryState_);
15652d43be4eSopenharmony_ci    auto activatingSecondaryState =
15662d43be4eSopenharmony_ci        static_cast<ActivatingSecondaryState *>(incallStateMachine->activatingSecondaryState_.GetRefPtr());
15672d43be4eSopenharmony_ci    auto secondaryActiveState =
15682d43be4eSopenharmony_ci        static_cast<SecondaryActiveState *>(incallStateMachine->secondaryActiveState_.GetRefPtr());
15692d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
15702d43be4eSopenharmony_ci    event = nullptr;
15712d43be4eSopenharmony_ci    secondaryActiveState->StateBegin();
15722d43be4eSopenharmony_ci    activatingSecondaryState->StateBegin();
15732d43be4eSopenharmony_ci    ASSERT_FALSE(activatingSecondaryState->StateProcess(event));
15742d43be4eSopenharmony_ci    ASSERT_FALSE(secondaryActiveState->StateProcess(event));
15752d43be4eSopenharmony_ci    ASSERT_TRUE(secondaryActiveState->ProcessSettingsOn(event));
15762d43be4eSopenharmony_ci    ASSERT_TRUE(secondaryActiveState->ProcessCallEnded(event));
15772d43be4eSopenharmony_ci    ASSERT_TRUE(secondaryActiveState->ProcessSettingsOff(event));
15782d43be4eSopenharmony_ci    ASSERT_TRUE(secondaryActiveState->ProcessDsdsChanged(event));
15792d43be4eSopenharmony_ci    activatingSecondaryState->StateEnd();
15802d43be4eSopenharmony_ci    secondaryActiveState->StateEnd();
15812d43be4eSopenharmony_ci}
15822d43be4eSopenharmony_ci
15832d43be4eSopenharmony_ci/**
15842d43be4eSopenharmony_ci * @tc.number   ActivatedSecondaryState_Test_01
15852d43be4eSopenharmony_ci * @tc.name     test error branch
15862d43be4eSopenharmony_ci * @tc.desc     Function test
15872d43be4eSopenharmony_ci */
15882d43be4eSopenharmony_ciHWTEST_F(BranchTest, ActivatedSecondaryState_Test_01, Function | MediumTest | Level3)
15892d43be4eSopenharmony_ci{
15902d43be4eSopenharmony_ci    std::shared_ptr<IncallStateMachineTest> incallStateMachineTest = std::make_shared<IncallStateMachineTest>();
15912d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
15922d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
15932d43be4eSopenharmony_ci    incallStateMachine->Init(TelCallStatus::CALL_STATUS_DIALING);
15942d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->activatingSecondaryState_);
15952d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->activatedSecondaryState_);
15962d43be4eSopenharmony_ci    auto activatedSecondaryState =
15972d43be4eSopenharmony_ci        static_cast<ActivatedSecondaryState *>(incallStateMachine->activatedSecondaryState_.GetRefPtr());
15982d43be4eSopenharmony_ci    auto secondaryActiveState =
15992d43be4eSopenharmony_ci        static_cast<SecondaryActiveState *>(incallStateMachine->secondaryActiveState_.GetRefPtr());
16002d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
16012d43be4eSopenharmony_ci    event = nullptr;
16022d43be4eSopenharmony_ci    secondaryActiveState->StateBegin();
16032d43be4eSopenharmony_ci    activatedSecondaryState->StateBegin();
16042d43be4eSopenharmony_ci    ASSERT_FALSE(activatedSecondaryState->StateProcess(event));
16052d43be4eSopenharmony_ci    ASSERT_FALSE(secondaryActiveState->StateProcess(event));
16062d43be4eSopenharmony_ci    ASSERT_TRUE(secondaryActiveState->ProcessCallEnded(event));
16072d43be4eSopenharmony_ci    ASSERT_TRUE(secondaryActiveState->ProcessSettingsOff(event));
16082d43be4eSopenharmony_ci    activatedSecondaryState->StateEnd();
16092d43be4eSopenharmony_ci    secondaryActiveState->StateEnd();
16102d43be4eSopenharmony_ci}
16112d43be4eSopenharmony_ci
16122d43be4eSopenharmony_ci/**
16132d43be4eSopenharmony_ci * @tc.number   DeactivatingSecondaryState_Test_01
16142d43be4eSopenharmony_ci * @tc.name     test error branch
16152d43be4eSopenharmony_ci * @tc.desc     Function test
16162d43be4eSopenharmony_ci */
16172d43be4eSopenharmony_ciHWTEST_F(BranchTest, DeactivatingSecondaryState_Test_01, Function | MediumTest | Level3)
16182d43be4eSopenharmony_ci{
16192d43be4eSopenharmony_ci    std::shared_ptr<IncallStateMachineTest> incallStateMachineTest = std::make_shared<IncallStateMachineTest>();
16202d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
16212d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
16222d43be4eSopenharmony_ci    incallStateMachine->Init(TelCallStatus::CALL_STATUS_DIALING);
16232d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->activatingSecondaryState_);
16242d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->activatedSecondaryState_);
16252d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->deactivatingSecondaryState_);
16262d43be4eSopenharmony_ci    auto deactivatingSecondaryState =
16272d43be4eSopenharmony_ci        static_cast<DeactivatingSecondaryState *>(incallStateMachine->deactivatingSecondaryState_.GetRefPtr());
16282d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
16292d43be4eSopenharmony_ci    event = nullptr;
16302d43be4eSopenharmony_ci    deactivatingSecondaryState->StateBegin();
16312d43be4eSopenharmony_ci    ASSERT_FALSE(deactivatingSecondaryState->StateProcess(event));
16322d43be4eSopenharmony_ci    deactivatingSecondaryState->StateEnd();
16332d43be4eSopenharmony_ci}
16342d43be4eSopenharmony_ci
16352d43be4eSopenharmony_ci/**
16362d43be4eSopenharmony_ci * @tc.number   GetIpType_Test_01
16372d43be4eSopenharmony_ci * @tc.name     TestDump
16382d43be4eSopenharmony_ci * @tc.desc     Function test
16392d43be4eSopenharmony_ci */
16402d43be4eSopenharmony_ciHWTEST_F(BranchTest, GetIpType_Test_01, Function | MediumTest | Level3)
16412d43be4eSopenharmony_ci{
16422d43be4eSopenharmony_ci    std::shared_ptr<StateMachineTest> machine = std::make_shared<StateMachineTest>();
16432d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> cellularMachine = machine->CreateCellularDataConnect(0);
16442d43be4eSopenharmony_ci    cellularMachine->Init();
16452d43be4eSopenharmony_ci    std::string result = "";
16462d43be4eSopenharmony_ci    std::string address = "";
16472d43be4eSopenharmony_ci    std::vector<AddressInfo> ipInfoArray = CellularDataUtils::ParseIpAddr(address);
16482d43be4eSopenharmony_ci    result = cellularMachine->GetIpType(ipInfoArray);
16492d43be4eSopenharmony_ci    ASSERT_TRUE(result == "");
16502d43be4eSopenharmony_ci}
16512d43be4eSopenharmony_ci
16522d43be4eSopenharmony_ci/**
16532d43be4eSopenharmony_ci * @tc.number   DataSwitchSettings_Test_01
16542d43be4eSopenharmony_ci * @tc.name     test error branch
16552d43be4eSopenharmony_ci * @tc.desc     Function test
16562d43be4eSopenharmony_ci */
16572d43be4eSopenharmony_ciHWTEST_F(BranchTest, DataSwitchSettings_Test_01, Function | MediumTest | Level3)
16582d43be4eSopenharmony_ci{
16592d43be4eSopenharmony_ci    std::unique_ptr<DataSwitchSettings> dataSwitchSettings = std::make_unique<DataSwitchSettings>(0);
16602d43be4eSopenharmony_ci    dataSwitchSettings->LoadSwitchValue();
16612d43be4eSopenharmony_ci    bool status = true;
16622d43be4eSopenharmony_ci    dataSwitchSettings->QueryUserDataStatus(status);
16632d43be4eSopenharmony_ci    dataSwitchSettings->QueryUserDataRoamingStatus(status);
16642d43be4eSopenharmony_ci    dataSwitchSettings->QueryIntelligenceSwitchStatus(status);
16652d43be4eSopenharmony_ci    dataSwitchSettings->SetPolicyDataOn(true);
16662d43be4eSopenharmony_ci    ASSERT_TRUE(dataSwitchSettings->IsPolicyDataOn());
16672d43be4eSopenharmony_ci    dataSwitchSettings->IsAllowActiveData();
16682d43be4eSopenharmony_ci    dataSwitchSettings->SetUserDataOn(true);
16692d43be4eSopenharmony_ci    dataSwitchSettings->IsUserDataOn();
16702d43be4eSopenharmony_ci    dataSwitchSettings->SetCarrierDataOn(true);
16712d43be4eSopenharmony_ci    ASSERT_TRUE(dataSwitchSettings->IsCarrierDataOn());
16722d43be4eSopenharmony_ci    dataSwitchSettings->SetUserDataRoamingOn(true);
16732d43be4eSopenharmony_ci    dataSwitchSettings->IsUserDataRoamingOn();
16742d43be4eSopenharmony_ci    dataSwitchSettings->SetInternalDataOn(true);
16752d43be4eSopenharmony_ci    ASSERT_TRUE(dataSwitchSettings->IsInternalDataOn());
16762d43be4eSopenharmony_ci    dataSwitchSettings->SetIntelliSwitchOn(true);
16772d43be4eSopenharmony_ci    dataSwitchSettings->UpdateUserDataRoamingOn(false);
16782d43be4eSopenharmony_ci    ASSERT_FALSE(dataSwitchSettings->IsUserDataRoamingOn());
16792d43be4eSopenharmony_ci}
16802d43be4eSopenharmony_ci
16812d43be4eSopenharmony_ci/**
16822d43be4eSopenharmony_ci * @tc.number   CellularDataStateMachine_Test_01
16832d43be4eSopenharmony_ci * @tc.name     test error branch
16842d43be4eSopenharmony_ci * @tc.desc     Function test
16852d43be4eSopenharmony_ci */
16862d43be4eSopenharmony_ciHWTEST_F(BranchTest, CellularDataStateMachine_Test_01, Function | MediumTest | Level3)
16872d43be4eSopenharmony_ci{
16882d43be4eSopenharmony_ci    std::shared_ptr<StateMachineTest> machine = std::make_shared<StateMachineTest>();
16892d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> cellularMachine = machine->CreateCellularDataConnect(0);
16902d43be4eSopenharmony_ci    cellularMachine->IsInactiveState();
16912d43be4eSopenharmony_ci    uint64_t capability = 1;
16922d43be4eSopenharmony_ci    cellularMachine->SetCapability(capability);
16932d43be4eSopenharmony_ci    cellularMachine->GetCapability();
16942d43be4eSopenharmony_ci    const int32_t cid = 1;
16952d43be4eSopenharmony_ci    cellularMachine->SetCid(cid);
16962d43be4eSopenharmony_ci    cellularMachine->GetSlotId();
16972d43be4eSopenharmony_ci    cellularMachine->GetApnItem();
16982d43be4eSopenharmony_ci    cellularMachine->GetCurrentState();
16992d43be4eSopenharmony_ci    const uint32_t upBandwidth = 0;
17002d43be4eSopenharmony_ci    const uint32_t downBandwidth = 0;
17012d43be4eSopenharmony_ci    cellularMachine->SetConnectionBandwidth(upBandwidth, downBandwidth);
17022d43be4eSopenharmony_ci    const std::string tcpBuffer = "";
17032d43be4eSopenharmony_ci    cellularMachine->SetConnectionTcpBuffer(tcpBuffer);
17042d43be4eSopenharmony_ci    std::string proxyIpAddress = "1234:567";
17052d43be4eSopenharmony_ci    std::string host = "";
17062d43be4eSopenharmony_ci    uint16_t port = 0;
17072d43be4eSopenharmony_ci    cellularMachine->SplitProxyIpAddress(proxyIpAddress, host, port);
17082d43be4eSopenharmony_ci    EXPECT_EQ(host, "1234");
17092d43be4eSopenharmony_ci    EXPECT_EQ(port, 567);
17102d43be4eSopenharmony_ci    EXPECT_TRUE(cellularMachine != nullptr);
17112d43be4eSopenharmony_ci    CellularDataDumpHelper dumpHelper;
17122d43be4eSopenharmony_ci    std::string result = "";
17132d43be4eSopenharmony_ci    dumpHelper.ShowHelp(result);
17142d43be4eSopenharmony_ci    EXPECT_GE(result.size(), 0);
17152d43be4eSopenharmony_ci}
17162d43be4eSopenharmony_ci
17172d43be4eSopenharmony_ci/**
17182d43be4eSopenharmony_ci * @tc.number   CellularDataUtils_Test_01
17192d43be4eSopenharmony_ci * @tc.name     test error branch
17202d43be4eSopenharmony_ci * @tc.desc     Function test
17212d43be4eSopenharmony_ci */
17222d43be4eSopenharmony_ciHWTEST_F(BranchTest, CellularDataUtils_Test_01, Function | MediumTest | Level3)
17232d43be4eSopenharmony_ci{
17242d43be4eSopenharmony_ci    CellularDataUtils::ParseNormalIpAddr(ADDRESS);
17252d43be4eSopenharmony_ci    CellularDataUtils::ParseRoute(ADDRESS);
17262d43be4eSopenharmony_ci    CellularDataUtils::GetPrefixLen(ADDRESS, FLAG);
17272d43be4eSopenharmony_ci    auto cellularDataHiSysEvent = DelayedSingleton<CellularDataHiSysEvent>::GetInstance();
17282d43be4eSopenharmony_ci    cellularDataHiSysEvent->WriteRoamingConnectStateBehaviorEvent(1);
17292d43be4eSopenharmony_ci    cellularDataHiSysEvent->SetCellularDataActivateStartTime();
17302d43be4eSopenharmony_ci    cellularDataHiSysEvent->JudgingDataActivateTimeOut(0, 1);
17312d43be4eSopenharmony_ci    std::shared_ptr<DataConnectionMonitor> dataConnectionMonitor = std::make_shared<DataConnectionMonitor>(0);
17322d43be4eSopenharmony_ci    dataConnectionMonitor->HandleRecovery();
17332d43be4eSopenharmony_ci    dataConnectionMonitor->GetPdpContextList();
17342d43be4eSopenharmony_ci    dataConnectionMonitor->SetRadioState(0, RadioEvent::RADIO_ON);
17352d43be4eSopenharmony_ci    dataConnectionMonitor->GetPreferredNetworkPara();
17362d43be4eSopenharmony_ci    dataConnectionMonitor->GetDataFlowType();
17372d43be4eSopenharmony_ci    dataConnectionMonitor->IsNeedDoRecovery(true);
17382d43be4eSopenharmony_ci    dataConnectionMonitor->IsNeedDoRecovery(false);
17392d43be4eSopenharmony_ci    auto cellularDataService = DelayedSingleton<CellularDataService>::GetInstance();
17402d43be4eSopenharmony_ci    MessageParcel data;
17412d43be4eSopenharmony_ci    MessageParcel reply;
17422d43be4eSopenharmony_ci    EXPECT_GE(cellularDataService->OnIsCellularDataEnabled(data, reply), 0);
17432d43be4eSopenharmony_ci    EXPECT_GE(cellularDataService->OnEnableCellularData(data, reply), 0);
17442d43be4eSopenharmony_ci    EXPECT_GE(cellularDataService->OnGetCellularDataState(data, reply), 0);
17452d43be4eSopenharmony_ci    EXPECT_GE(cellularDataService->OnIsCellularDataRoamingEnabled(data, reply), 0);
17462d43be4eSopenharmony_ci    EXPECT_GE(cellularDataService->OnEnableCellularDataRoaming(data, reply), 0);
17472d43be4eSopenharmony_ci    EXPECT_GE(cellularDataService->OnHandleApnChanged(data, reply), 0);
17482d43be4eSopenharmony_ci    cellularDataService->OnGetDefaultCellularDataSlotId(data, reply);
17492d43be4eSopenharmony_ci    EXPECT_GE(cellularDataService->OnGetDefaultCellularDataSimId(data, reply), 0);
17502d43be4eSopenharmony_ci    EXPECT_GE(cellularDataService->OnSetDefaultCellularDataSlotId(data, reply), 0);
17512d43be4eSopenharmony_ci    EXPECT_GE(cellularDataService->OnGetCellularDataFlowType(data, reply), 0);
17522d43be4eSopenharmony_ci    EXPECT_GE(cellularDataService->OnHasInternetCapability(data, reply), 0);
17532d43be4eSopenharmony_ci    EXPECT_GE(cellularDataService->OnClearCellularDataConnections(data, reply), 0);
17542d43be4eSopenharmony_ci    EXPECT_GE(cellularDataService->OnRegisterSimAccountCallback(data, reply), 0);
17552d43be4eSopenharmony_ci    EXPECT_GE(cellularDataService->OnUnregisterSimAccountCallback(data, reply), 0);
17562d43be4eSopenharmony_ci    EXPECT_GE(cellularDataService->OnEnableIntelligenceSwitch(data, reply), 0);
17572d43be4eSopenharmony_ci    EXPECT_GE(cellularDataService->OnGetDataConnApnAttr(data, reply), 0);
17582d43be4eSopenharmony_ci    EXPECT_GE(cellularDataService->OnGetDataConnIpType(data, reply), 0);
17592d43be4eSopenharmony_ci    EXPECT_GE(cellularDataService->OnGetApnState(data, reply), 0);
17602d43be4eSopenharmony_ci    EXPECT_GE(cellularDataService->OnGetRecoveryState(data, reply), 0);
17612d43be4eSopenharmony_ci    EXPECT_GE(cellularDataService->OnIsNeedDoRecovery(data, reply), 0);
17622d43be4eSopenharmony_ci    EXPECT_GE(cellularDataService->OnIsNeedDoRecovery(data, reply), 0);
17632d43be4eSopenharmony_ci    EXPECT_GE(cellularDataService->OnClearAllConnections(data, reply), 0);
17642d43be4eSopenharmony_ci}
17652d43be4eSopenharmony_ci
17662d43be4eSopenharmony_ci/**
17672d43be4eSopenharmony_ci * @tc.number   CellularDataSettingsRdbHelper_Test_01
17682d43be4eSopenharmony_ci * @tc.name     test error branch
17692d43be4eSopenharmony_ci * @tc.desc     Function test
17702d43be4eSopenharmony_ci */
17712d43be4eSopenharmony_ciHWTEST_F(BranchTest, CellularDataSettingsRdbHelper_Test_01, Function | MediumTest | Level3)
17722d43be4eSopenharmony_ci{
17732d43be4eSopenharmony_ci    auto settingHelper = CellularDataSettingsRdbHelper::GetInstance();
17742d43be4eSopenharmony_ci    if (settingHelper == nullptr) {
17752d43be4eSopenharmony_ci        TELEPHONY_LOGE("settingHelper is null");
17762d43be4eSopenharmony_ci        return;
17772d43be4eSopenharmony_ci    }
17782d43be4eSopenharmony_ci    Uri dataEnableUri(CELLULAR_DATA_SETTING_DATA_ROAMING_URI);
17792d43be4eSopenharmony_ci    settingHelper->RegisterSettingsObserver(dataEnableUri, nullptr);
17802d43be4eSopenharmony_ci    settingHelper->UnRegisterSettingsObserver(dataEnableUri, nullptr);
17812d43be4eSopenharmony_ci    EXPECT_TRUE(settingHelper != nullptr);
17822d43be4eSopenharmony_ci}
17832d43be4eSopenharmony_ci
17842d43be4eSopenharmony_ci/**
17852d43be4eSopenharmony_ci * @tc.number   FindBestCapability_Test_01
17862d43be4eSopenharmony_ci * @tc.name     test branch
17872d43be4eSopenharmony_ci * @tc.desc     Function test
17882d43be4eSopenharmony_ci */
17892d43be4eSopenharmony_ciHWTEST_F(BranchTest, FindBestCapability_Test_01, Function | MediumTest | Level3)
17902d43be4eSopenharmony_ci{
17912d43be4eSopenharmony_ci    auto apnManager = std::make_shared<ApnManager>();
17922d43be4eSopenharmony_ci
17932d43be4eSopenharmony_ci    uint64_t capabilities = 1L << NetManagerStandard::NetCap::NET_CAPABILITY_INTERNET;
17942d43be4eSopenharmony_ci    auto ret = apnManager->FindBestCapability(capabilities);
17952d43be4eSopenharmony_ci    EXPECT_EQ(ret, NetManagerStandard::NetCap::NET_CAPABILITY_INTERNET);
17962d43be4eSopenharmony_ci
17972d43be4eSopenharmony_ci    capabilities |= 1L << NetManagerStandard::NetCap::NET_CAPABILITY_INTERNAL_DEFAULT;
17982d43be4eSopenharmony_ci    ret = apnManager->FindBestCapability(capabilities);
17992d43be4eSopenharmony_ci    EXPECT_EQ(ret, NetManagerStandard::NetCap::NET_CAPABILITY_INTERNAL_DEFAULT);
18002d43be4eSopenharmony_ci
18012d43be4eSopenharmony_ci    capabilities |= 1L << NetManagerStandard::NetCap::NET_CAPABILITY_MMS;
18022d43be4eSopenharmony_ci    ret = apnManager->FindBestCapability(capabilities);
18032d43be4eSopenharmony_ci    EXPECT_EQ(ret, NetManagerStandard::NetCap::NET_CAPABILITY_MMS);
18042d43be4eSopenharmony_ci}
18052d43be4eSopenharmony_ci
18062d43be4eSopenharmony_ci/**
18072d43be4eSopenharmony_ci * @tc.number   GetOverallDefaultApnState_Test_01
18082d43be4eSopenharmony_ci * @tc.name     test branch
18092d43be4eSopenharmony_ci * @tc.desc     Function test
18102d43be4eSopenharmony_ci */
18112d43be4eSopenharmony_ciHWTEST_F(BranchTest, GetOverallDefaultApnState_Test_01, Function | MediumTest | Level3)
18122d43be4eSopenharmony_ci{
18132d43be4eSopenharmony_ci    auto apnManager = std::make_shared<ApnManager>();
18142d43be4eSopenharmony_ci    apnManager->InitApnHolders();
18152d43be4eSopenharmony_ci    auto &apnHolders = apnManager->apnHolders_;
18162d43be4eSopenharmony_ci    for (auto &apnHolder : apnHolders) {
18172d43be4eSopenharmony_ci        if (apnHolder->GetApnType() == DATA_CONTEXT_ROLE_DEFAULT) {
18182d43be4eSopenharmony_ci            apnHolder->SetApnState(ApnProfileState::PROFILE_STATE_IDLE);
18192d43be4eSopenharmony_ci        }
18202d43be4eSopenharmony_ci        if (apnHolder->GetApnType() == DATA_CONTEXT_ROLE_INTERNAL_DEFAULT) {
18212d43be4eSopenharmony_ci            apnHolder->SetApnState(ApnProfileState::PROFILE_STATE_IDLE);
18222d43be4eSopenharmony_ci        }
18232d43be4eSopenharmony_ci    }
18242d43be4eSopenharmony_ci    auto ret = apnManager->GetOverallDefaultApnState();
18252d43be4eSopenharmony_ci    EXPECT_EQ(ret, ApnProfileState::PROFILE_STATE_IDLE);
18262d43be4eSopenharmony_ci
18272d43be4eSopenharmony_ci    for (auto &apnHolder : apnHolders) {
18282d43be4eSopenharmony_ci        if (apnHolder->GetApnType() == DATA_CONTEXT_ROLE_DEFAULT) {
18292d43be4eSopenharmony_ci            apnHolder->SetApnState(ApnProfileState::PROFILE_STATE_CONNECTING);
18302d43be4eSopenharmony_ci        }
18312d43be4eSopenharmony_ci        if (apnHolder->GetApnType() == DATA_CONTEXT_ROLE_INTERNAL_DEFAULT) {
18322d43be4eSopenharmony_ci            apnHolder->SetApnState(ApnProfileState::PROFILE_STATE_IDLE);
18332d43be4eSopenharmony_ci        }
18342d43be4eSopenharmony_ci    }
18352d43be4eSopenharmony_ci    ret = apnManager->GetOverallDefaultApnState();
18362d43be4eSopenharmony_ci    EXPECT_EQ(ret, ApnProfileState::PROFILE_STATE_CONNECTING);
18372d43be4eSopenharmony_ci
18382d43be4eSopenharmony_ci    for (auto &apnHolder : apnHolders) {
18392d43be4eSopenharmony_ci        if (apnHolder->GetApnType() == DATA_CONTEXT_ROLE_DEFAULT) {
18402d43be4eSopenharmony_ci            apnHolder->SetApnState(ApnProfileState::PROFILE_STATE_IDLE);
18412d43be4eSopenharmony_ci        }
18422d43be4eSopenharmony_ci        if (apnHolder->GetApnType() == DATA_CONTEXT_ROLE_INTERNAL_DEFAULT) {
18432d43be4eSopenharmony_ci            apnHolder->SetApnState(ApnProfileState::PROFILE_STATE_CONNECTING);
18442d43be4eSopenharmony_ci        }
18452d43be4eSopenharmony_ci    }
18462d43be4eSopenharmony_ci    ret = apnManager->GetOverallDefaultApnState();
18472d43be4eSopenharmony_ci    EXPECT_EQ(ret, ApnProfileState::PROFILE_STATE_CONNECTING);
18482d43be4eSopenharmony_ci}
18492d43be4eSopenharmony_ci
18502d43be4eSopenharmony_ci/**
18512d43be4eSopenharmony_ci * @tc.number   ParseIpAddr_001
18522d43be4eSopenharmony_ci * @tc.name     test branch
18532d43be4eSopenharmony_ci * @tc.desc     Function test
18542d43be4eSopenharmony_ci */
18552d43be4eSopenharmony_ciHWTEST_F(BranchTest, ParseIpAddr_001, Function | MediumTest | Level0)
18562d43be4eSopenharmony_ci{
18572d43be4eSopenharmony_ci    std::string address = "";
18582d43be4eSopenharmony_ci    std::vector<AddressInfo> ipInfoArray = CellularDataUtils::ParseIpAddr(address);
18592d43be4eSopenharmony_ci    EXPECT_EQ(ipInfoArray.size(), 0);
18602d43be4eSopenharmony_ci}
18612d43be4eSopenharmony_ci
18622d43be4eSopenharmony_ci/**
18632d43be4eSopenharmony_ci * @tc.number   ParseIpAddr_002
18642d43be4eSopenharmony_ci * @tc.name     test branch
18652d43be4eSopenharmony_ci * @tc.desc     Function test
18662d43be4eSopenharmony_ci */
18672d43be4eSopenharmony_ciHWTEST_F(BranchTest, ParseIpAddr_002, Function | MediumTest | Level0)
18682d43be4eSopenharmony_ci{
18692d43be4eSopenharmony_ci    std::string address = "192.000.1.1/24";
18702d43be4eSopenharmony_ci    std::vector<AddressInfo> ipInfoArray = CellularDataUtils::ParseIpAddr(address);
18712d43be4eSopenharmony_ci    EXPECT_EQ(ipInfoArray.size(), 1);
18722d43be4eSopenharmony_ci}
18732d43be4eSopenharmony_ci
18742d43be4eSopenharmony_ci/**
18752d43be4eSopenharmony_ci * @tc.number   ParseIpAddr_003
18762d43be4eSopenharmony_ci * @tc.name     test branch
18772d43be4eSopenharmony_ci * @tc.desc     Function test
18782d43be4eSopenharmony_ci */
18792d43be4eSopenharmony_ciHWTEST_F(BranchTest, ParseIpAddr_003, Function | MediumTest | Level0)
18802d43be4eSopenharmony_ci{
18812d43be4eSopenharmony_ci    std::string address = "192.000.1.1/24 192.000.1.2/24";
18822d43be4eSopenharmony_ci    std::vector<AddressInfo> ipInfoArray = CellularDataUtils::ParseIpAddr(address);
18832d43be4eSopenharmony_ci    EXPECT_EQ(ipInfoArray.size(), 2);
18842d43be4eSopenharmony_ci}
18852d43be4eSopenharmony_ci
18862d43be4eSopenharmony_ci/**
18872d43be4eSopenharmony_ci * @tc.number   ParseIpAddr_004
18882d43be4eSopenharmony_ci * @tc.name     test branch
18892d43be4eSopenharmony_ci * @tc.desc     Function test
18902d43be4eSopenharmony_ci */
18912d43be4eSopenharmony_ciHWTEST_F(BranchTest, ParseIpAddr_004, Function | MediumTest | Level0)
18922d43be4eSopenharmony_ci{
18932d43be4eSopenharmony_ci    std::string address = "2001:0000:0000:0000:0000:0000:0000:0000/64";
18942d43be4eSopenharmony_ci    std::vector<AddressInfo> ipInfoArray = CellularDataUtils::ParseIpAddr(address);
18952d43be4eSopenharmony_ci    EXPECT_EQ(ipInfoArray.size(), 1);
18962d43be4eSopenharmony_ci}
18972d43be4eSopenharmony_ci
18982d43be4eSopenharmony_ci/**
18992d43be4eSopenharmony_ci * @tc.number   ParseIpAddr_005
19002d43be4eSopenharmony_ci * @tc.name     test branch
19012d43be4eSopenharmony_ci * @tc.desc     Function test
19022d43be4eSopenharmony_ci */
19032d43be4eSopenharmony_ciHWTEST_F(BranchTest, ParseIpAddr_005, Function | MediumTest | Level0)
19042d43be4eSopenharmony_ci{
19052d43be4eSopenharmony_ci    std::string address = "2001:0000:0000:0000:0000:0000:0000:0000/64 2001:0000:0000:0000:0000:0000:0000:0000/64";
19062d43be4eSopenharmony_ci    std::vector<AddressInfo> ipInfoArray = CellularDataUtils::ParseIpAddr(address);
19072d43be4eSopenharmony_ci    EXPECT_EQ(ipInfoArray.size(), 2);
19082d43be4eSopenharmony_ci}
19092d43be4eSopenharmony_ci
19102d43be4eSopenharmony_ci/**
19112d43be4eSopenharmony_ci * @tc.number   GetPrefixLen_001
19122d43be4eSopenharmony_ci * @tc.name     test branch
19132d43be4eSopenharmony_ci * @tc.desc     Function test
19142d43be4eSopenharmony_ci */
19152d43be4eSopenharmony_ciHWTEST_F(BranchTest, GetPrefixLen_001, Function | MediumTest | Level0)
19162d43be4eSopenharmony_ci{
19172d43be4eSopenharmony_ci    std::vector<std::string> netmask;
19182d43be4eSopenharmony_ci    int32_t result = CellularDataUtils::GetPrefixLen(netmask, 0);
19192d43be4eSopenharmony_ci    EXPECT_EQ(result, 0);
19202d43be4eSopenharmony_ci}
19212d43be4eSopenharmony_ci
19222d43be4eSopenharmony_ci/**
19232d43be4eSopenharmony_ci * @tc.number   GetPrefixLen_002
19242d43be4eSopenharmony_ci * @tc.name     test branch
19252d43be4eSopenharmony_ci * @tc.desc     Function test
19262d43be4eSopenharmony_ci */
19272d43be4eSopenharmony_ciHWTEST_F(BranchTest, GetPrefixLen_002, Function | MediumTest | Level0)
19282d43be4eSopenharmony_ci{
19292d43be4eSopenharmony_ci    std::vector<std::string> netmask = {"255", "invalid", "255"};
19302d43be4eSopenharmony_ci    int32_t result = CellularDataUtils::GetPrefixLen(netmask, 0);
19312d43be4eSopenharmony_ci    EXPECT_EQ(result, 8);
19322d43be4eSopenharmony_ci}
19332d43be4eSopenharmony_ci
19342d43be4eSopenharmony_ci/**
19352d43be4eSopenharmony_ci * @tc.number   GetPrefixLen_003
19362d43be4eSopenharmony_ci * @tc.name     test branch
19372d43be4eSopenharmony_ci * @tc.desc     Function test
19382d43be4eSopenharmony_ci */
19392d43be4eSopenharmony_ciHWTEST_F(BranchTest, GetPrefixLen_003, Function | MediumTest | Level0)
19402d43be4eSopenharmony_ci{
19412d43be4eSopenharmony_ci    std::vector<std::string> netmask = {"255", "0", "255"};
19422d43be4eSopenharmony_ci    int32_t result = CellularDataUtils::GetPrefixLen(netmask, 0);
19432d43be4eSopenharmony_ci    EXPECT_EQ(result, 8);
19442d43be4eSopenharmony_ci}
19452d43be4eSopenharmony_ci
19462d43be4eSopenharmony_ci/**
19472d43be4eSopenharmony_ci * @tc.number   GetPrefixLen_004
19482d43be4eSopenharmony_ci * @tc.name     test branch
19492d43be4eSopenharmony_ci * @tc.desc     Function test
19502d43be4eSopenharmony_ci */
19512d43be4eSopenharmony_ciHWTEST_F(BranchTest, GetPrefixLen_004, Function | MediumTest | Level0)
19522d43be4eSopenharmony_ci{
19532d43be4eSopenharmony_ci    std::vector<std::string> netmask = {"255", "254", "255"};
19542d43be4eSopenharmony_ci    int32_t result = CellularDataUtils::GetPrefixLen(netmask, 0);
19552d43be4eSopenharmony_ci    EXPECT_EQ(result, 15);
19562d43be4eSopenharmony_ci}
19572d43be4eSopenharmony_ci
19582d43be4eSopenharmony_ci/**
19592d43be4eSopenharmony_ci * @tc.number   GetPrefixLen_005
19602d43be4eSopenharmony_ci * @tc.name     test branch
19612d43be4eSopenharmony_ci * @tc.desc     Function test
19622d43be4eSopenharmony_ci */
19632d43be4eSopenharmony_ciHWTEST_F(BranchTest, GetPrefixLen_005, Function | MediumTest | Level0)
19642d43be4eSopenharmony_ci{
19652d43be4eSopenharmony_ci    std::vector<std::string> netmask = {"255", "256", "255"};
19662d43be4eSopenharmony_ci    int32_t result = CellularDataUtils::GetPrefixLen(netmask, 0);
19672d43be4eSopenharmony_ci    EXPECT_EQ(result, 8);
19682d43be4eSopenharmony_ci}
19692d43be4eSopenharmony_ci
19702d43be4eSopenharmony_ci/**
19712d43be4eSopenharmony_ci * @tc.number   GetPrefixLen_006
19722d43be4eSopenharmony_ci * @tc.name     test branch
19732d43be4eSopenharmony_ci * @tc.desc     Function test
19742d43be4eSopenharmony_ci */
19752d43be4eSopenharmony_ciHWTEST_F(BranchTest, GetPrefixLen_006, Function | MediumTest | Level0)
19762d43be4eSopenharmony_ci{
19772d43be4eSopenharmony_ci    std::vector<std::string> netmask = {"255", "254", "255"};
19782d43be4eSopenharmony_ci    int32_t result = CellularDataUtils::GetPrefixLen(netmask, 0);
19792d43be4eSopenharmony_ci    EXPECT_EQ(result, 15);
19802d43be4eSopenharmony_ci}
19812d43be4eSopenharmony_ci
19822d43be4eSopenharmony_ci/**
19832d43be4eSopenharmony_ci * @tc.number   GetPrefixLen_007
19842d43be4eSopenharmony_ci * @tc.name     test branch
19852d43be4eSopenharmony_ci * @tc.desc     Function test
19862d43be4eSopenharmony_ci */
19872d43be4eSopenharmony_ciHWTEST_F(BranchTest, GetPrefixLen_007, Function | MediumTest | Level0)
19882d43be4eSopenharmony_ci{
19892d43be4eSopenharmony_ci    std::vector<std::string> netmask = {"255", "255", "255"};
19902d43be4eSopenharmony_ci    int32_t result = CellularDataUtils::GetPrefixLen(netmask, 0);
19912d43be4eSopenharmony_ci    EXPECT_EQ(result, 24);
19922d43be4eSopenharmony_ci}
19932d43be4eSopenharmony_ci
19942d43be4eSopenharmony_ci/**
19952d43be4eSopenharmony_ci * @tc.number   JudgingDataActivateTimeOut_001
19962d43be4eSopenharmony_ci * @tc.name     test branch
19972d43be4eSopenharmony_ci * @tc.desc     Function test
19982d43be4eSopenharmony_ci */
19992d43be4eSopenharmony_ciHWTEST_F(BranchTest, JudgingDataActivateTimeOut_001, Function | MediumTest | Level0)
20002d43be4eSopenharmony_ci{
20012d43be4eSopenharmony_ci    auto cellularDataHiSysEvent = DelayedSingleton<CellularDataHiSysEvent>::GetInstance();
20022d43be4eSopenharmony_ci    int32_t slotId = 1;
20032d43be4eSopenharmony_ci    int32_t switchState = 1;
20042d43be4eSopenharmony_ci    cellularDataHiSysEvent->dataActivateStartTime_ = -1000;
20052d43be4eSopenharmony_ci    cellularDataHiSysEvent->JudgingDataActivateTimeOut(slotId, switchState);
20062d43be4eSopenharmony_ci    cellularDataHiSysEvent->SetCellularDataActivateStartTime();
20072d43be4eSopenharmony_ci    EXPECT_NE(cellularDataHiSysEvent->dataActivateStartTime_, -1000);
20082d43be4eSopenharmony_ci}
20092d43be4eSopenharmony_ci
20102d43be4eSopenharmony_ci/**
20112d43be4eSopenharmony_ci * @tc.number   ReadMvnoApnResult_001
20122d43be4eSopenharmony_ci * @tc.name     Test the function
20132d43be4eSopenharmony_ci * @tc.desc     Function test
20142d43be4eSopenharmony_ci */
20152d43be4eSopenharmony_ciHWTEST_F(BranchTest, ReadMvnoApnResult_001, TestSize.Level3)
20162d43be4eSopenharmony_ci{
20172d43be4eSopenharmony_ci    std::shared_ptr<DataShare::DataShareResultSet> result = nullptr;
20182d43be4eSopenharmony_ci    std::string mvnoDataFromSim = "mvnoDataFromSim";
20192d43be4eSopenharmony_ci    std::vector<PdpProfile> apnVec;
20202d43be4eSopenharmony_ci    CellularDataRdbHelper cellularDataRdbHelper;
20212d43be4eSopenharmony_ci    cellularDataRdbHelper.ReadMvnoApnResult(nullptr, mvnoDataFromSim, apnVec);
20222d43be4eSopenharmony_ci    ASSERT_TRUE(apnVec.empty());
20232d43be4eSopenharmony_ci}
20242d43be4eSopenharmony_ci
20252d43be4eSopenharmony_ci/**
20262d43be4eSopenharmony_ci * @tc.number   ReadMvnoApnResult_002
20272d43be4eSopenharmony_ci * @tc.name     Test the function
20282d43be4eSopenharmony_ci * @tc.desc     Function test
20292d43be4eSopenharmony_ci */
20302d43be4eSopenharmony_ciHWTEST_F(BranchTest, ReadMvnoApnResult_002, TestSize.Level3)
20312d43be4eSopenharmony_ci{
20322d43be4eSopenharmony_ci    std::shared_ptr<DataShare::DataShareResultSet> result = std::make_shared<DataShare::DataShareResultSet>();
20332d43be4eSopenharmony_ci    std::string mvnoDataFromSim = "mvnoDataFromSim";
20342d43be4eSopenharmony_ci    std::vector<PdpProfile> apnVec;
20352d43be4eSopenharmony_ci    CellularDataRdbHelper cellularDataRdbHelper;
20362d43be4eSopenharmony_ci    cellularDataRdbHelper.ReadMvnoApnResult(nullptr, mvnoDataFromSim, apnVec);
20372d43be4eSopenharmony_ci    ASSERT_TRUE(apnVec.empty());
20382d43be4eSopenharmony_ci}
20392d43be4eSopenharmony_ci
20402d43be4eSopenharmony_ci/**
20412d43be4eSopenharmony_ci * @tc.number   MakePdpProfile_001
20422d43be4eSopenharmony_ci * @tc.name     Test the function
20432d43be4eSopenharmony_ci * @tc.desc     Function test
20442d43be4eSopenharmony_ci */
20452d43be4eSopenharmony_ciHWTEST_F(BranchTest, MakePdpProfile_001, TestSize.Level3)
20462d43be4eSopenharmony_ci{
20472d43be4eSopenharmony_ci    std::shared_ptr<DataShare::DataShareResultSet> result = std::make_shared<DataShare::DataShareResultSet>();
20482d43be4eSopenharmony_ci    int i = 0;
20492d43be4eSopenharmony_ci    PdpProfile apnBean;
20502d43be4eSopenharmony_ci    apnBean.pdpProtocol = "";
20512d43be4eSopenharmony_ci    apnBean.roamPdpProtocol = "";
20522d43be4eSopenharmony_ci    CellularDataRdbHelper cellularDataRdbHelper;
20532d43be4eSopenharmony_ci    cellularDataRdbHelper.MakePdpProfile(result, i, apnBean);
20542d43be4eSopenharmony_ci    ASSERT_EQ("IP", apnBean.pdpProtocol);
20552d43be4eSopenharmony_ci    ASSERT_EQ("IP", apnBean.roamPdpProtocol);
20562d43be4eSopenharmony_ci}
20572d43be4eSopenharmony_ci
20582d43be4eSopenharmony_ci/**
20592d43be4eSopenharmony_ci * @tc.number   MakePdpProfile_002
20602d43be4eSopenharmony_ci * @tc.name     Test the function
20612d43be4eSopenharmony_ci * @tc.desc     Function test
20622d43be4eSopenharmony_ci */
20632d43be4eSopenharmony_ciHWTEST_F(BranchTest, MakePdpProfile_002, TestSize.Level3)
20642d43be4eSopenharmony_ci{
20652d43be4eSopenharmony_ci    std::shared_ptr<DataShare::DataShareResultSet> result = std::make_shared<DataShare::DataShareResultSet>();
20662d43be4eSopenharmony_ci    int i = 0;
20672d43be4eSopenharmony_ci    PdpProfile apnBean;
20682d43be4eSopenharmony_ci    apnBean.pdpProtocol = "ABC";
20692d43be4eSopenharmony_ci    apnBean.roamPdpProtocol = "abc";
20702d43be4eSopenharmony_ci    CellularDataRdbHelper cellularDataRdbHelper;
20712d43be4eSopenharmony_ci    cellularDataRdbHelper.MakePdpProfile(result, i, apnBean);
20722d43be4eSopenharmony_ci    ASSERT_EQ("ABC", apnBean.pdpProtocol);
20732d43be4eSopenharmony_ci    ASSERT_EQ("abc", apnBean.roamPdpProtocol);
20742d43be4eSopenharmony_ci}
20752d43be4eSopenharmony_ci
20762d43be4eSopenharmony_ci/**
20772d43be4eSopenharmony_ci * @tc.number   WriteEventCellularRequest_Test_01
20782d43be4eSopenharmony_ci * @tc.name     test error branch
20792d43be4eSopenharmony_ci * @tc.desc     Function test
20802d43be4eSopenharmony_ci */
20812d43be4eSopenharmony_ciHWTEST_F(BranchTest, WriteEventCellularRequest_Test_01, TestSize.Level3)
20822d43be4eSopenharmony_ci{
20832d43be4eSopenharmony_ci    CellularDataUtils::ParseNormalIpAddr(ADDRESS);
20842d43be4eSopenharmony_ci    CellularDataUtils::ParseRoute(ADDRESS);
20852d43be4eSopenharmony_ci    CellularDataUtils::GetPrefixLen(ADDRESS, FLAG);
20862d43be4eSopenharmony_ci    auto cellularDataHiSysEvent = DelayedSingleton<CellularDataHiSysEvent>::GetInstance();
20872d43be4eSopenharmony_ci    cellularDataHiSysEvent->WriteCellularRequestBehaviorEvent(1, "abc", 1, 1);
20882d43be4eSopenharmony_ci    CellularDataController controller { 0 };
20892d43be4eSopenharmony_ci    controller.Init();
20902d43be4eSopenharmony_ci    NetRequest request;
20912d43be4eSopenharmony_ci    int32_t state = 0;
20922d43be4eSopenharmony_ci    ASSERT_FALSE(controller.cellularDataHandler_->WriteEventCellularRequest(request, state));
20932d43be4eSopenharmony_ci    request.capability = NetCap::NET_CAPABILITY_INTERNET;
20942d43be4eSopenharmony_ci    ASSERT_FALSE(controller.cellularDataHandler_->WriteEventCellularRequest(request, state));
20952d43be4eSopenharmony_ci    request.bearTypes |= (1ULL << NetBearType::BEARER_CELLULAR);
20962d43be4eSopenharmony_ci    ASSERT_TRUE(controller.cellularDataHandler_->WriteEventCellularRequest(request, state));
20972d43be4eSopenharmony_ci    request.capability = NetCap::NET_CAPABILITY_END;
20982d43be4eSopenharmony_ci    ASSERT_FALSE(controller.cellularDataHandler_->WriteEventCellularRequest(request, state));
20992d43be4eSopenharmony_ci}
21002d43be4eSopenharmony_ci
21012d43be4eSopenharmony_ci} // namespace Telephony
21022d43be4eSopenharmony_ci} // namespace OHOS
2103