12d43be4eSopenharmony_ci/*
22d43be4eSopenharmony_ci * Copyright (C) 2024 Huawei Device Co., Ltd.
32d43be4eSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
42d43be4eSopenharmony_ci * you may not use this file except in compliance with the License.
52d43be4eSopenharmony_ci * You may obtain a copy of the License at
62d43be4eSopenharmony_ci *
72d43be4eSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
82d43be4eSopenharmony_ci *
92d43be4eSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
102d43be4eSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
112d43be4eSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
122d43be4eSopenharmony_ci * See the License for the specific language governing permissions and
132d43be4eSopenharmony_ci * limitations under the License.
142d43be4eSopenharmony_ci */
152d43be4eSopenharmony_ci#define private public
162d43be4eSopenharmony_ci#define protected public
172d43be4eSopenharmony_ci
182d43be4eSopenharmony_ci#include "activating.h"
192d43be4eSopenharmony_ci#include "active.h"
202d43be4eSopenharmony_ci#include "apn_manager.h"
212d43be4eSopenharmony_ci#include "cellular_data_state_machine.h"
222d43be4eSopenharmony_ci#include "core_manager_inner.h"
232d43be4eSopenharmony_ci#include "data_connection_manager.h"
242d43be4eSopenharmony_ci#include "data_connection_params.h"
252d43be4eSopenharmony_ci#include "data_disconnect_params.h"
262d43be4eSopenharmony_ci#include "default.h"
272d43be4eSopenharmony_ci#include "disconnecting.h"
282d43be4eSopenharmony_ci#include "gtest/gtest.h"
292d43be4eSopenharmony_ci#include "inactive.h"
302d43be4eSopenharmony_ci#include "incall_data_state_machine.h"
312d43be4eSopenharmony_ci#include "mock/mock_sim_manager.h"
322d43be4eSopenharmony_ci#include "mock/mock_network_search.h"
332d43be4eSopenharmony_ci#include "tel_event_handler.h"
342d43be4eSopenharmony_ci#include "telephony_types.h"
352d43be4eSopenharmony_ci#include "tel_ril_data_parcel.h"
362d43be4eSopenharmony_ci
372d43be4eSopenharmony_cinamespace OHOS {
382d43be4eSopenharmony_cinamespace Telephony {
392d43be4eSopenharmony_ciusing namespace testing::ext;
402d43be4eSopenharmony_ciusing ::testing::_;
412d43be4eSopenharmony_ciusing ::testing::AtLeast;
422d43be4eSopenharmony_ciusing ::testing::DoAll;
432d43be4eSopenharmony_ciusing ::testing::Invoke;
442d43be4eSopenharmony_ciusing ::testing::Mock;
452d43be4eSopenharmony_ciusing ::testing::Return;
462d43be4eSopenharmony_ciusing ::testing::SetArgReferee;
472d43be4eSopenharmony_ci
482d43be4eSopenharmony_ciclass CellularStateMachineTest : public testing::Test {
492d43be4eSopenharmony_cipublic:
502d43be4eSopenharmony_ci    CellularStateMachineTest()
512d43be4eSopenharmony_ci    {
522d43be4eSopenharmony_ci        mockSimManager = new MockSimManager();
532d43be4eSopenharmony_ci        std::shared_ptr<MockSimManager> mockSimManagerPtr(mockSimManager);
542d43be4eSopenharmony_ci        CoreManagerInner::GetInstance().simManager_ = mockSimManagerPtr;
552d43be4eSopenharmony_ci
562d43be4eSopenharmony_ci        mockNetworkSearchManager = new MockNetworkSearchManager();
572d43be4eSopenharmony_ci        std::shared_ptr<MockNetworkSearchManager> mockNetworkSearchManagerPtr(mockNetworkSearchManager);
582d43be4eSopenharmony_ci        CoreManagerInner::GetInstance().networkSearchManager_ = mockNetworkSearchManagerPtr;
592d43be4eSopenharmony_ci    }
602d43be4eSopenharmony_ci    static void SetUpTestCase();
612d43be4eSopenharmony_ci    static void TearDownTestCase();
622d43be4eSopenharmony_ci    void SetUp();
632d43be4eSopenharmony_ci    void TearDown();
642d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> cellularMachine;
652d43be4eSopenharmony_ci    MockSimManager *mockSimManager;
662d43be4eSopenharmony_ci    MockNetworkSearchManager *mockNetworkSearchManager;
672d43be4eSopenharmony_ci};
682d43be4eSopenharmony_civoid CellularStateMachineTest::SetUpTestCase() {}
692d43be4eSopenharmony_ci
702d43be4eSopenharmony_civoid CellularStateMachineTest::TearDownTestCase() {}
712d43be4eSopenharmony_ci
722d43be4eSopenharmony_civoid CellularStateMachineTest::SetUp() {}
732d43be4eSopenharmony_ci
742d43be4eSopenharmony_civoid CellularStateMachineTest::TearDown() {}
752d43be4eSopenharmony_ci
762d43be4eSopenharmony_ciclass IncallDataStateMachineTest : public TelEventHandler {
772d43be4eSopenharmony_cipublic:
782d43be4eSopenharmony_ci    IncallDataStateMachineTest() : TelEventHandler("IncallDataStateMachineTest") {}
792d43be4eSopenharmony_ci    ~IncallDataStateMachineTest() = default;
802d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> CreateIncallDataStateMachine(int32_t slotId);
812d43be4eSopenharmony_ci
822d43be4eSopenharmony_cipublic:
832d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine_ = nullptr;
842d43be4eSopenharmony_ci};
852d43be4eSopenharmony_ci
862d43be4eSopenharmony_cistd::shared_ptr<IncallDataStateMachine> IncallDataStateMachineTest::CreateIncallDataStateMachine(int32_t slotId)
872d43be4eSopenharmony_ci{
882d43be4eSopenharmony_ci    if (incallStateMachine_ != nullptr) {
892d43be4eSopenharmony_ci        return incallStateMachine_;
902d43be4eSopenharmony_ci    }
912d43be4eSopenharmony_ci    sptr<ApnManager> apnManager = std::make_unique<ApnManager>().release();
922d43be4eSopenharmony_ci    if (apnManager == nullptr) {
932d43be4eSopenharmony_ci        return nullptr;
942d43be4eSopenharmony_ci    }
952d43be4eSopenharmony_ci    incallStateMachine_ = std::make_shared<IncallDataStateMachine>(slotId,
962d43be4eSopenharmony_ci        std::weak_ptr<TelEventHandler>(std::static_pointer_cast<TelEventHandler>(shared_from_this())), apnManager);
972d43be4eSopenharmony_ci    return incallStateMachine_;
982d43be4eSopenharmony_ci}
992d43be4eSopenharmony_ci
1002d43be4eSopenharmony_ciclass CellularMachineTest : public TelEventHandler {
1012d43be4eSopenharmony_cipublic:
1022d43be4eSopenharmony_ci    CellularMachineTest() : TelEventHandler("CellularDataStateMachineTest") {}
1032d43be4eSopenharmony_ci    ~CellularMachineTest() = default;
1042d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> CreateCellularDataConnect(int32_t slotId);
1052d43be4eSopenharmony_ci
1062d43be4eSopenharmony_cipublic:
1072d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> cellularDataStateMachine_ = nullptr;
1082d43be4eSopenharmony_ci};
1092d43be4eSopenharmony_ci
1102d43be4eSopenharmony_cistd::shared_ptr<CellularDataStateMachine> CellularMachineTest::CreateCellularDataConnect(int32_t slotId)
1112d43be4eSopenharmony_ci{
1122d43be4eSopenharmony_ci    if (cellularDataStateMachine_ != nullptr) {
1132d43be4eSopenharmony_ci        return cellularDataStateMachine_;
1142d43be4eSopenharmony_ci    }
1152d43be4eSopenharmony_ci    sptr<DataConnectionManager> connectionManager = std::make_unique<DataConnectionManager>(slotId).release();
1162d43be4eSopenharmony_ci    if (connectionManager == nullptr) {
1172d43be4eSopenharmony_ci        return nullptr;
1182d43be4eSopenharmony_ci    }
1192d43be4eSopenharmony_ci    connectionManager->Init();
1202d43be4eSopenharmony_ci    cellularDataStateMachine_ = std::make_shared<CellularDataStateMachine>(
1212d43be4eSopenharmony_ci        connectionManager, std::static_pointer_cast<TelEventHandler>(shared_from_this()));
1222d43be4eSopenharmony_ci    return cellularDataStateMachine_;
1232d43be4eSopenharmony_ci}
1242d43be4eSopenharmony_ci
1252d43be4eSopenharmony_ci/**
1262d43be4eSopenharmony_ci * @tc.number   HasAnyConnectedState_001
1272d43be4eSopenharmony_ci * @tc.name     test function branch
1282d43be4eSopenharmony_ci * @tc.desc     Function test
1292d43be4eSopenharmony_ci */
1302d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, HasAnyConnectedState_001, Function | MediumTest | Level1)
1312d43be4eSopenharmony_ci{
1322d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachineTest> incallStateMachineTest = std::make_shared<IncallDataStateMachineTest>();
1332d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
1342d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
1352d43be4eSopenharmony_ci    incallStateMachine->apnManager_ = nullptr;
1362d43be4eSopenharmony_ci    ASSERT_EQ(incallStateMachine->HasAnyConnectedState(), false);
1372d43be4eSopenharmony_ci}
1382d43be4eSopenharmony_ci
1392d43be4eSopenharmony_ci/**
1402d43be4eSopenharmony_ci * @tc.number   IdleState_StateBegin_001
1412d43be4eSopenharmony_ci * @tc.name     test function branch
1422d43be4eSopenharmony_ci * @tc.desc     Function test
1432d43be4eSopenharmony_ci */
1442d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, IdleState_StateBegin_001, Function | MediumTest | Level1)
1452d43be4eSopenharmony_ci{
1462d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachineTest> incallStateMachineTest = std::make_shared<IncallDataStateMachineTest>();
1472d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
1482d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
1492d43be4eSopenharmony_ci    incallStateMachine->Init(TelCallStatus::CALL_STATUS_DIALING);
1502d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->idleState_);
1512d43be4eSopenharmony_ci    auto idleState = static_cast<IdleState *>(incallStateMachine->idleState_.GetRefPtr());
1522d43be4eSopenharmony_ci    incallStateMachine = nullptr;
1532d43be4eSopenharmony_ci    idleState->stateMachine_ = incallStateMachine;
1542d43be4eSopenharmony_ci    idleState->StateBegin();
1552d43be4eSopenharmony_ci    ASSERT_EQ(idleState->isActive_, false);
1562d43be4eSopenharmony_ci}
1572d43be4eSopenharmony_ci
1582d43be4eSopenharmony_ci/**
1592d43be4eSopenharmony_ci * @tc.number   IdleState_StateBegin_002
1602d43be4eSopenharmony_ci * @tc.name     test function branch
1612d43be4eSopenharmony_ci * @tc.desc     Function test
1622d43be4eSopenharmony_ci */
1632d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, IdleState_StateBegin_002, Function | MediumTest | Level1)
1642d43be4eSopenharmony_ci{
1652d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachineTest> incallStateMachineTest = std::make_shared<IncallDataStateMachineTest>();
1662d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
1672d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
1682d43be4eSopenharmony_ci    incallStateMachine->Init(TelCallStatus::CALL_STATUS_DIALING);
1692d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->idleState_);
1702d43be4eSopenharmony_ci    auto idleState = static_cast<IdleState *>(incallStateMachine->idleState_.GetRefPtr());
1712d43be4eSopenharmony_ci    incallStateMachine->UpdateCallState(static_cast<int32_t>(TelCallStatus::CALL_STATUS_IDLE));
1722d43be4eSopenharmony_ci    idleState->stateMachine_ = incallStateMachine;
1732d43be4eSopenharmony_ci    idleState->StateBegin();
1742d43be4eSopenharmony_ci    ASSERT_EQ(idleState->isActive_, true);
1752d43be4eSopenharmony_ci}
1762d43be4eSopenharmony_ci
1772d43be4eSopenharmony_ci/**
1782d43be4eSopenharmony_ci * @tc.number   IdleState_StateBegin_003
1792d43be4eSopenharmony_ci * @tc.name     test function branch
1802d43be4eSopenharmony_ci * @tc.desc     Function test
1812d43be4eSopenharmony_ci */
1822d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, IdleState_StateBegin_003, Function | MediumTest | Level1)
1832d43be4eSopenharmony_ci{
1842d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachineTest> incallStateMachineTest = std::make_shared<IncallDataStateMachineTest>();
1852d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
1862d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
1872d43be4eSopenharmony_ci    incallStateMachine->Init(TelCallStatus::CALL_STATUS_DIALING);
1882d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->idleState_);
1892d43be4eSopenharmony_ci    auto idleState = static_cast<IdleState *>(incallStateMachine->idleState_.GetRefPtr());
1902d43be4eSopenharmony_ci    incallStateMachine->UpdateCallState(static_cast<int32_t>(TelCallStatus::CALL_STATUS_DISCONNECTED));
1912d43be4eSopenharmony_ci    idleState->stateMachine_ = incallStateMachine;
1922d43be4eSopenharmony_ci    idleState->StateBegin();
1932d43be4eSopenharmony_ci    ASSERT_EQ(idleState->isActive_, true);
1942d43be4eSopenharmony_ci}
1952d43be4eSopenharmony_ci
1962d43be4eSopenharmony_ci/**
1972d43be4eSopenharmony_ci * @tc.number   IdleState_StateProcess_001
1982d43be4eSopenharmony_ci * @tc.name     test function branch
1992d43be4eSopenharmony_ci * @tc.desc     Function test
2002d43be4eSopenharmony_ci */
2012d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, IdleState_StateProcess_001, Function | MediumTest | Level1)
2022d43be4eSopenharmony_ci{
2032d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachineTest> incallStateMachineTest = std::make_shared<IncallDataStateMachineTest>();
2042d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
2052d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
2062d43be4eSopenharmony_ci    incallStateMachine->Init(TelCallStatus::CALL_STATUS_DIALING);
2072d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->idleState_);
2082d43be4eSopenharmony_ci    auto idleState = static_cast<IdleState *>(incallStateMachine->idleState_.GetRefPtr());
2092d43be4eSopenharmony_ci    incallStateMachine = nullptr;
2102d43be4eSopenharmony_ci    idleState->stateMachine_ = incallStateMachine;
2112d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_INCALL_DATA_DATA_DISCONNECTED);
2122d43be4eSopenharmony_ci    idleState->StateProcess(event);
2132d43be4eSopenharmony_ci    ASSERT_EQ(idleState->isActive_, NOT_PROCESSED);
2142d43be4eSopenharmony_ci}
2152d43be4eSopenharmony_ci
2162d43be4eSopenharmony_ci/**
2172d43be4eSopenharmony_ci * @tc.number   IdleState_StateProcess_002
2182d43be4eSopenharmony_ci * @tc.name     test function branch
2192d43be4eSopenharmony_ci * @tc.desc     Function test
2202d43be4eSopenharmony_ci */
2212d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, IdleState_StateProcess_002, Function | MediumTest | Level1)
2222d43be4eSopenharmony_ci{
2232d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachineTest> incallStateMachineTest = std::make_shared<IncallDataStateMachineTest>();
2242d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
2252d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
2262d43be4eSopenharmony_ci    incallStateMachine->Init(TelCallStatus::CALL_STATUS_DIALING);
2272d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->idleState_);
2282d43be4eSopenharmony_ci    auto idleState = static_cast<IdleState *>(incallStateMachine->idleState_.GetRefPtr());
2292d43be4eSopenharmony_ci    idleState->stateMachine_ = incallStateMachine;
2302d43be4eSopenharmony_ci    idleState->eventIdFunMap_.clear();
2312d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_INCALL_DATA_CALL_STARTED);
2322d43be4eSopenharmony_ci    idleState->StateProcess(event);
2332d43be4eSopenharmony_ci    ASSERT_EQ(idleState->isActive_, NOT_PROCESSED);
2342d43be4eSopenharmony_ci}
2352d43be4eSopenharmony_ci
2362d43be4eSopenharmony_ci/**
2372d43be4eSopenharmony_ci * @tc.number   IdleState_IncallStateMachine_001
2382d43be4eSopenharmony_ci * @tc.name     test function branch
2392d43be4eSopenharmony_ci * @tc.desc     Function test
2402d43be4eSopenharmony_ci */
2412d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, IdleState_IncallStateMachine_001, Function | MediumTest | Level1)
2422d43be4eSopenharmony_ci{
2432d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachineTest> incallStateMachineTest = std::make_shared<IncallDataStateMachineTest>();
2442d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
2452d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
2462d43be4eSopenharmony_ci    incallStateMachine->Init(TelCallStatus::CALL_STATUS_DIALING);
2472d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->idleState_);
2482d43be4eSopenharmony_ci    auto idleState = static_cast<IdleState *>(incallStateMachine->idleState_.GetRefPtr());
2492d43be4eSopenharmony_ci    incallStateMachine = nullptr;
2502d43be4eSopenharmony_ci    idleState->stateMachine_ = incallStateMachine;
2512d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_INCALL_DATA_DATA_DISCONNECTED);
2522d43be4eSopenharmony_ci    bool result = idleState->ProcessCallStarted(event);
2532d43be4eSopenharmony_ci    ASSERT_EQ(result, NOT_PROCESSED);
2542d43be4eSopenharmony_ci    result = idleState->ProcessCallEnded(event);
2552d43be4eSopenharmony_ci    ASSERT_EQ(result, NOT_PROCESSED);
2562d43be4eSopenharmony_ci    result = idleState->ProcessSettingsOn(event);
2572d43be4eSopenharmony_ci    ASSERT_EQ(result, NOT_PROCESSED);
2582d43be4eSopenharmony_ci    result = idleState->ProcessDsdsChanged(event);
2592d43be4eSopenharmony_ci    ASSERT_EQ(result, NOT_PROCESSED);
2602d43be4eSopenharmony_ci}
2612d43be4eSopenharmony_ci
2622d43be4eSopenharmony_ci/**
2632d43be4eSopenharmony_ci * @tc.number   StateProcess_001
2642d43be4eSopenharmony_ci * @tc.name     test function branch
2652d43be4eSopenharmony_ci * @tc.desc     Function test
2662d43be4eSopenharmony_ci */
2672d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, StateProcess_001, Function | MediumTest | Level1)
2682d43be4eSopenharmony_ci{
2692d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachineTest> incallStateMachineTest = std::make_shared<IncallDataStateMachineTest>();
2702d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
2712d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
2722d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_INCALL_DATA_DATA_DISCONNECTED);
2732d43be4eSopenharmony_ci    incallStateMachine->Init(TelCallStatus::CALL_STATUS_DIALING);
2742d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->activatingSecondaryState_);
2752d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->activatedSecondaryState_);
2762d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->deactivatingSecondaryState_);
2772d43be4eSopenharmony_ci    auto deactivatingSecondaryState =
2782d43be4eSopenharmony_ci        static_cast<DeactivatingSecondaryState *>(incallStateMachine->deactivatingSecondaryState_.GetRefPtr());
2792d43be4eSopenharmony_ci    bool result = deactivatingSecondaryState->StateProcess(event);
2802d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
2812d43be4eSopenharmony_ci}
2822d43be4eSopenharmony_ci
2832d43be4eSopenharmony_ci/**
2842d43be4eSopenharmony_ci * @tc.number   StateProcess_002
2852d43be4eSopenharmony_ci * @tc.name     test function branch
2862d43be4eSopenharmony_ci * @tc.desc     Function test
2872d43be4eSopenharmony_ci */
2882d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, StateProcess_002, Function | MediumTest | Level1)
2892d43be4eSopenharmony_ci{
2902d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachineTest> incallStateMachineTest = std::make_shared<IncallDataStateMachineTest>();
2912d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
2922d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
2932d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_INCALL_DATA_DATA_DISCONNECTED);
2942d43be4eSopenharmony_ci    incallStateMachine->Init(TelCallStatus::CALL_STATUS_DIALING);
2952d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->activatingSecondaryState_);
2962d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->activatedSecondaryState_);
2972d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->deactivatingSecondaryState_);
2982d43be4eSopenharmony_ci    auto deactivatingSecondaryState =
2992d43be4eSopenharmony_ci        static_cast<DeactivatingSecondaryState *>(incallStateMachine->deactivatingSecondaryState_.GetRefPtr());
3002d43be4eSopenharmony_ci    bool result = deactivatingSecondaryState->StateProcess(event);
3012d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
3022d43be4eSopenharmony_ci}
3032d43be4eSopenharmony_ci
3042d43be4eSopenharmony_ci/**
3052d43be4eSopenharmony_ci * @tc.number   StateProcess_003
3062d43be4eSopenharmony_ci * @tc.name     test function branch
3072d43be4eSopenharmony_ci * @tc.desc     Function test
3082d43be4eSopenharmony_ci */
3092d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, StateProcess_003, Function | MediumTest | Level1)
3102d43be4eSopenharmony_ci{
3112d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachineTest> incallStateMachineTest = std::make_shared<IncallDataStateMachineTest>();
3122d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
3132d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
3142d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_INCALL_DATA_DATA_DISCONNECTED);
3152d43be4eSopenharmony_ci    incallStateMachine->Init(TelCallStatus::CALL_STATUS_DIALING);
3162d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->activatingSecondaryState_);
3172d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->activatedSecondaryState_);
3182d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->deactivatingSecondaryState_);
3192d43be4eSopenharmony_ci    auto deactivatingSecondaryState =
3202d43be4eSopenharmony_ci        static_cast<DeactivatingSecondaryState *>(incallStateMachine->deactivatingSecondaryState_.GetRefPtr());
3212d43be4eSopenharmony_ci    incallStateMachine = nullptr;
3222d43be4eSopenharmony_ci    deactivatingSecondaryState->stateMachine_ = incallStateMachine;
3232d43be4eSopenharmony_ci    bool result = deactivatingSecondaryState->StateProcess(event);
3242d43be4eSopenharmony_ci    deactivatingSecondaryState->StateBegin();
3252d43be4eSopenharmony_ci    EXPECT_EQ(result, NOT_PROCESSED);
3262d43be4eSopenharmony_ci}
3272d43be4eSopenharmony_ci
3282d43be4eSopenharmony_ci/**
3292d43be4eSopenharmony_ci * @tc.number   StateProcess_004
3302d43be4eSopenharmony_ci * @tc.name     test function branch
3312d43be4eSopenharmony_ci * @tc.desc     Function test
3322d43be4eSopenharmony_ci */
3332d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, StateProcess_004, Function | MediumTest | Level1)
3342d43be4eSopenharmony_ci{
3352d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachineTest> incallStateMachineTest = std::make_shared<IncallDataStateMachineTest>();
3362d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
3372d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
3382d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_INCALL_DATA_DATA_DISCONNECTED);
3392d43be4eSopenharmony_ci    incallStateMachine->Init(TelCallStatus::CALL_STATUS_DIALING);
3402d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->activatingSecondaryState_);
3412d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->activatedSecondaryState_);
3422d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->deactivatingSecondaryState_);
3432d43be4eSopenharmony_ci    auto deactivatingSecondaryState =
3442d43be4eSopenharmony_ci        static_cast<DeactivatingSecondaryState *>(incallStateMachine->deactivatingSecondaryState_.GetRefPtr());
3452d43be4eSopenharmony_ci    bool result = deactivatingSecondaryState->StateProcess(event);
3462d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
3472d43be4eSopenharmony_ci}
3482d43be4eSopenharmony_ci
3492d43be4eSopenharmony_ci/**
3502d43be4eSopenharmony_ci * @tc.number   ActivatingStateProcess_001
3512d43be4eSopenharmony_ci * @tc.name     test function branch
3522d43be4eSopenharmony_ci * @tc.desc     Function test
3532d43be4eSopenharmony_ci */
3542d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, ActivatingStateProcess_001, Function | MediumTest | Level1)
3552d43be4eSopenharmony_ci{
3562d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachineTest> incallStateMachineTest = std::make_shared<IncallDataStateMachineTest>();
3572d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
3582d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
3592d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_INCALL_DATA_DATA_CONNECTED);
3602d43be4eSopenharmony_ci    incallStateMachine->Init(TelCallStatus::CALL_STATUS_DIALING);
3612d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->activatingSecondaryState_);
3622d43be4eSopenharmony_ci    auto activatingSecondaryState =
3632d43be4eSopenharmony_ci        static_cast<ActivatingSecondaryState *>(incallStateMachine->activatingSecondaryState_.GetRefPtr());
3642d43be4eSopenharmony_ci    bool result = activatingSecondaryState->StateProcess(event);
3652d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
3662d43be4eSopenharmony_ci}
3672d43be4eSopenharmony_ci
3682d43be4eSopenharmony_ci/**
3692d43be4eSopenharmony_ci * @tc.number   ActivatingStateProcess_002
3702d43be4eSopenharmony_ci * @tc.name     test function branch
3712d43be4eSopenharmony_ci * @tc.desc     Function test
3722d43be4eSopenharmony_ci */
3732d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, ActivatingStateProcess_002, Function | MediumTest | Level1)
3742d43be4eSopenharmony_ci{
3752d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachineTest> incallStateMachineTest = std::make_shared<IncallDataStateMachineTest>();
3762d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
3772d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
3782d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(-1);
3792d43be4eSopenharmony_ci    incallStateMachine->Init(TelCallStatus::CALL_STATUS_DIALING);
3802d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->activatingSecondaryState_);
3812d43be4eSopenharmony_ci    auto activatingSecondaryState =
3822d43be4eSopenharmony_ci        static_cast<ActivatingSecondaryState *>(incallStateMachine->activatingSecondaryState_.GetRefPtr());
3832d43be4eSopenharmony_ci    bool result = activatingSecondaryState->StateProcess(event);
3842d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
3852d43be4eSopenharmony_ci}
3862d43be4eSopenharmony_ci
3872d43be4eSopenharmony_ci/**
3882d43be4eSopenharmony_ci * @tc.number   ActivatingSecondaryState_IncallDataStateMachine_001
3892d43be4eSopenharmony_ci * @tc.name     test function branch
3902d43be4eSopenharmony_ci * @tc.desc     Function test
3912d43be4eSopenharmony_ci */
3922d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, ActivatingSecondaryState_IncallDataStateMachine_001, Function | MediumTest | Level1)
3932d43be4eSopenharmony_ci{
3942d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachineTest> incallStateMachineTest = std::make_shared<IncallDataStateMachineTest>();
3952d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
3962d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
3972d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
3982d43be4eSopenharmony_ci    incallStateMachine->Init(TelCallStatus::CALL_STATUS_DIALING);
3992d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->activatingSecondaryState_);
4002d43be4eSopenharmony_ci    auto activatingSecondaryState =
4012d43be4eSopenharmony_ci        static_cast<ActivatingSecondaryState *>(incallStateMachine->activatingSecondaryState_.GetRefPtr());
4022d43be4eSopenharmony_ci    incallStateMachine = nullptr;
4032d43be4eSopenharmony_ci    activatingSecondaryState->stateMachine_ = incallStateMachine;
4042d43be4eSopenharmony_ci    bool result = activatingSecondaryState->StateProcess(event);
4052d43be4eSopenharmony_ci    activatingSecondaryState->StateBegin();
4062d43be4eSopenharmony_ci    EXPECT_EQ(result, NOT_PROCESSED);
4072d43be4eSopenharmony_ci}
4082d43be4eSopenharmony_ci
4092d43be4eSopenharmony_ci/**
4102d43be4eSopenharmony_ci * @tc.number   SecondaryActiveStateProcess_001
4112d43be4eSopenharmony_ci * @tc.name     test function branch
4122d43be4eSopenharmony_ci * @tc.desc     Function test
4132d43be4eSopenharmony_ci */
4142d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, SecondaryActiveStateProcess_001, Function | MediumTest | Level1)
4152d43be4eSopenharmony_ci{
4162d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachineTest> incallStateMachineTest = std::make_shared<IncallDataStateMachineTest>();
4172d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
4182d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
4192d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_INCALL_DATA_DATA_CONNECTED);
4202d43be4eSopenharmony_ci    incallStateMachine->Init(TelCallStatus::CALL_STATUS_DIALING);
4212d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->secondaryActiveState_);
4222d43be4eSopenharmony_ci    auto secondaryActiveState =
4232d43be4eSopenharmony_ci        static_cast<SecondaryActiveState *>(incallStateMachine->secondaryActiveState_.GetRefPtr());
4242d43be4eSopenharmony_ci    bool result = secondaryActiveState->StateProcess(event);
4252d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
4262d43be4eSopenharmony_ci}
4272d43be4eSopenharmony_ci
4282d43be4eSopenharmony_ci/**
4292d43be4eSopenharmony_ci * @tc.number   SecondaryActiveStateProcess_002
4302d43be4eSopenharmony_ci * @tc.name     test function branch
4312d43be4eSopenharmony_ci * @tc.desc     Function test
4322d43be4eSopenharmony_ci */
4332d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, SecondaryActiveStateProcess_002, Function | MediumTest | Level1)
4342d43be4eSopenharmony_ci{
4352d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachineTest> incallStateMachineTest = std::make_shared<IncallDataStateMachineTest>();
4362d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
4372d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
4382d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_INCALL_DATA_DATA_CONNECTED);
4392d43be4eSopenharmony_ci    incallStateMachine->Init(TelCallStatus::CALL_STATUS_DIALING);
4402d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->secondaryActiveState_);
4412d43be4eSopenharmony_ci    auto secondaryActiveState =
4422d43be4eSopenharmony_ci        static_cast<SecondaryActiveState *>(incallStateMachine->secondaryActiveState_.GetRefPtr());
4432d43be4eSopenharmony_ci    incallStateMachine = nullptr;
4442d43be4eSopenharmony_ci    secondaryActiveState->stateMachine_ = incallStateMachine;
4452d43be4eSopenharmony_ci    bool result = secondaryActiveState->StateProcess(event);
4462d43be4eSopenharmony_ci    EXPECT_EQ(result, NOT_PROCESSED);
4472d43be4eSopenharmony_ci}
4482d43be4eSopenharmony_ci
4492d43be4eSopenharmony_ci/**
4502d43be4eSopenharmony_ci * @tc.number   SecondaryActiveStateProcess_003
4512d43be4eSopenharmony_ci * @tc.name     test function branch
4522d43be4eSopenharmony_ci * @tc.desc     Function test
4532d43be4eSopenharmony_ci */
4542d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, SecondaryActiveStateProcess_003, Function | MediumTest | Level1)
4552d43be4eSopenharmony_ci{
4562d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachineTest> incallStateMachineTest = std::make_shared<IncallDataStateMachineTest>();
4572d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
4582d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
4592d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_INCALL_DATA_DATA_CONNECTED);
4602d43be4eSopenharmony_ci    incallStateMachine->Init(TelCallStatus::CALL_STATUS_DIALING);
4612d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->secondaryActiveState_);
4622d43be4eSopenharmony_ci    auto secondaryActiveState =
4632d43be4eSopenharmony_ci        static_cast<SecondaryActiveState *>(incallStateMachine->secondaryActiveState_.GetRefPtr());
4642d43be4eSopenharmony_ci    secondaryActiveState->stateMachine_ = incallStateMachine;
4652d43be4eSopenharmony_ci    secondaryActiveState->eventIdFunMap_.clear();
4662d43be4eSopenharmony_ci    bool result = secondaryActiveState->StateProcess(event);
4672d43be4eSopenharmony_ci    EXPECT_EQ(result, NOT_PROCESSED);
4682d43be4eSopenharmony_ci}
4692d43be4eSopenharmony_ci
4702d43be4eSopenharmony_ci/**
4712d43be4eSopenharmony_ci * @tc.number   SecondaryActiveState_ProcessCallEnded_001
4722d43be4eSopenharmony_ci * @tc.name     test function branch
4732d43be4eSopenharmony_ci * @tc.desc     Function test
4742d43be4eSopenharmony_ci */
4752d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, SecondaryActiveState_ProcessCallEnded_001, Function | MediumTest | Level1)
4762d43be4eSopenharmony_ci{
4772d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachineTest> incallStateMachineTest = std::make_shared<IncallDataStateMachineTest>();
4782d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
4792d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
4802d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_INCALL_DATA_DATA_CONNECTED);
4812d43be4eSopenharmony_ci    incallStateMachine->Init(TelCallStatus::CALL_STATUS_DIALING);
4822d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->secondaryActiveState_);
4832d43be4eSopenharmony_ci    auto secondaryActiveState =
4842d43be4eSopenharmony_ci        static_cast<SecondaryActiveState *>(incallStateMachine->secondaryActiveState_.GetRefPtr());
4852d43be4eSopenharmony_ci    incallStateMachine = nullptr;
4862d43be4eSopenharmony_ci    secondaryActiveState->stateMachine_ = incallStateMachine;
4872d43be4eSopenharmony_ci    bool result = secondaryActiveState->ProcessCallEnded(event);
4882d43be4eSopenharmony_ci    EXPECT_EQ(result, NOT_PROCESSED);
4892d43be4eSopenharmony_ci}
4902d43be4eSopenharmony_ci
4912d43be4eSopenharmony_ci/**
4922d43be4eSopenharmony_ci * @tc.number   SecondaryActiveState_ProcessCallEnded_002
4932d43be4eSopenharmony_ci * @tc.name     test function branch
4942d43be4eSopenharmony_ci * @tc.desc     Function test
4952d43be4eSopenharmony_ci */
4962d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, SecondaryActiveState_ProcessCallEnded_002, Function | MediumTest | Level1)
4972d43be4eSopenharmony_ci{
4982d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachineTest> incallStateMachineTest = std::make_shared<IncallDataStateMachineTest>();
4992d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
5002d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
5012d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_INCALL_DATA_DATA_CONNECTED);
5022d43be4eSopenharmony_ci    incallStateMachine->Init(TelCallStatus::CALL_STATUS_DIALING);
5032d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->secondaryActiveState_);
5042d43be4eSopenharmony_ci    incallStateMachine->UpdateCallState(static_cast<int32_t>(TelCallStatus::CALL_STATUS_IDLE));
5052d43be4eSopenharmony_ci    auto secondaryActiveState =
5062d43be4eSopenharmony_ci        static_cast<SecondaryActiveState *>(incallStateMachine->secondaryActiveState_.GetRefPtr());
5072d43be4eSopenharmony_ci    secondaryActiveState->stateMachine_ = incallStateMachine;
5082d43be4eSopenharmony_ci    bool result = secondaryActiveState->ProcessCallEnded(event);
5092d43be4eSopenharmony_ci    EXPECT_EQ(result, PROCESSED);
5102d43be4eSopenharmony_ci    incallStateMachine->UpdateCallState(static_cast<int32_t>(TelCallStatus::CALL_STATUS_DISCONNECTED));
5112d43be4eSopenharmony_ci    result = secondaryActiveState->ProcessCallEnded(event);
5122d43be4eSopenharmony_ci    EXPECT_EQ(result, PROCESSED);
5132d43be4eSopenharmony_ci}
5142d43be4eSopenharmony_ci
5152d43be4eSopenharmony_ci/**
5162d43be4eSopenharmony_ci * @tc.number   SecondaryActiveState_IncallDataStateMachine_001
5172d43be4eSopenharmony_ci * @tc.name     test function branch
5182d43be4eSopenharmony_ci * @tc.desc     Function test
5192d43be4eSopenharmony_ci */
5202d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, SecondaryActiveState_IncallDataStateMachine_001, Function | MediumTest | Level1)
5212d43be4eSopenharmony_ci{
5222d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachineTest> incallStateMachineTest = std::make_shared<IncallDataStateMachineTest>();
5232d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
5242d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
5252d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_INCALL_DATA_DATA_CONNECTED);
5262d43be4eSopenharmony_ci    incallStateMachine->Init(TelCallStatus::CALL_STATUS_DIALING);
5272d43be4eSopenharmony_ci    incallStateMachine->TransitionTo(incallStateMachine->secondaryActiveState_);
5282d43be4eSopenharmony_ci    auto secondaryActiveState =
5292d43be4eSopenharmony_ci        static_cast<SecondaryActiveState *>(incallStateMachine->secondaryActiveState_.GetRefPtr());
5302d43be4eSopenharmony_ci    incallStateMachine = nullptr;
5312d43be4eSopenharmony_ci    secondaryActiveState->stateMachine_ = incallStateMachine;
5322d43be4eSopenharmony_ci    bool result = secondaryActiveState->ProcessCallEnded(event);
5332d43be4eSopenharmony_ci    EXPECT_EQ(result, NOT_PROCESSED);
5342d43be4eSopenharmony_ci    result = secondaryActiveState->ProcessSettingsOff(event);
5352d43be4eSopenharmony_ci    EXPECT_EQ(result, NOT_PROCESSED);
5362d43be4eSopenharmony_ci}
5372d43be4eSopenharmony_ci
5382d43be4eSopenharmony_ci/**
5392d43be4eSopenharmony_ci * @tc.number   InactiveStateBegin_001
5402d43be4eSopenharmony_ci * @tc.name     test function branch
5412d43be4eSopenharmony_ci * @tc.desc     Function test
5422d43be4eSopenharmony_ci */
5432d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, InactiveStateBegin_001, Function | MediumTest | Level1)
5442d43be4eSopenharmony_ci{
5452d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
5462d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
5472d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
5482d43be4eSopenharmony_ci        cellularMachine->Init();
5492d43be4eSopenharmony_ci    }
5502d43be4eSopenharmony_ci    auto inactive = static_cast<Inactive *>(cellularMachine->inActiveState_.GetRefPtr());
5512d43be4eSopenharmony_ci    inactive->deActiveApnTypeId_ = 0;
5522d43be4eSopenharmony_ci    inactive->SetStateMachine(cellularMachine);
5532d43be4eSopenharmony_ci    inactive->SetDataCallResultInfoToRetry();
5542d43be4eSopenharmony_ci    EXPECT_EQ(inactive->resultInfo_->reason, static_cast<int32_t>(PdpErrorReason::PDP_ERR_RETRY));
5552d43be4eSopenharmony_ci    inactive->SetDataCallResultInfoToClear();
5562d43be4eSopenharmony_ci    EXPECT_EQ(inactive->resultInfo_->reason,
5572d43be4eSopenharmony_ci        static_cast<int32_t>(PdpErrorReason::PDP_ERR_UNKNOWN_TO_CLEAR_CONNECTION));
5582d43be4eSopenharmony_ci}
5592d43be4eSopenharmony_ci
5602d43be4eSopenharmony_ci/**
5612d43be4eSopenharmony_ci * @tc.number   InactiveStateProcess_002
5622d43be4eSopenharmony_ci * @tc.name     test function branch
5632d43be4eSopenharmony_ci * @tc.desc     Function test
5642d43be4eSopenharmony_ci */
5652d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, InactiveStateProcess_002, Function | MediumTest | Level1)
5662d43be4eSopenharmony_ci{
5672d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
5682d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
5692d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
5702d43be4eSopenharmony_ci        cellularMachine->Init();
5712d43be4eSopenharmony_ci    }
5722d43be4eSopenharmony_ci    auto inactive = static_cast<Inactive *>(cellularMachine->inActiveState_.GetRefPtr());
5732d43be4eSopenharmony_ci    inactive->stateMachine_ = cellularMachine;
5742d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_DISCONNECT);
5752d43be4eSopenharmony_ci    bool result = inactive->StateProcess(event);
5762d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
5772d43be4eSopenharmony_ci}
5782d43be4eSopenharmony_ci
5792d43be4eSopenharmony_ci/**
5802d43be4eSopenharmony_ci * @tc.number   InactiveStateProcess_003
5812d43be4eSopenharmony_ci * @tc.name     test function branch
5822d43be4eSopenharmony_ci * @tc.desc     Function test
5832d43be4eSopenharmony_ci */
5842d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, InactiveStateProcess_003, Function | MediumTest | Level1)
5852d43be4eSopenharmony_ci{
5862d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
5872d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
5882d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
5892d43be4eSopenharmony_ci        cellularMachine->Init();
5902d43be4eSopenharmony_ci    }
5912d43be4eSopenharmony_ci    auto inactive = static_cast<Inactive *>(cellularMachine->inActiveState_.GetRefPtr());
5922d43be4eSopenharmony_ci    inactive->SetStateMachine(cellularMachine);
5932d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_DISCONNECT_ALL);
5942d43be4eSopenharmony_ci    bool result = inactive->StateProcess(event);
5952d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
5962d43be4eSopenharmony_ci}
5972d43be4eSopenharmony_ci
5982d43be4eSopenharmony_ci/**
5992d43be4eSopenharmony_ci * @tc.number   Inactive_CellularDataStateMachine_001
6002d43be4eSopenharmony_ci * @tc.name     test function branch
6012d43be4eSopenharmony_ci * @tc.desc     Function test
6022d43be4eSopenharmony_ci */
6032d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Inactive_CellularDataStateMachine_001, Function | MediumTest | Level1)
6042d43be4eSopenharmony_ci{
6052d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
6062d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
6072d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
6082d43be4eSopenharmony_ci        cellularMachine->Init();
6092d43be4eSopenharmony_ci    }
6102d43be4eSopenharmony_ci    auto inactive = static_cast<Inactive *>(cellularMachine->inActiveState_.GetRefPtr());
6112d43be4eSopenharmony_ci    cellularMachine = nullptr;
6122d43be4eSopenharmony_ci    inactive->stateMachine_ = cellularMachine;
6132d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_DISCONNECT_ALL);
6142d43be4eSopenharmony_ci    bool result = inactive->StateProcess(event);
6152d43be4eSopenharmony_ci    inactive->StateBegin();
6162d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
6172d43be4eSopenharmony_ci}
6182d43be4eSopenharmony_ci
6192d43be4eSopenharmony_ci/**
6202d43be4eSopenharmony_ci * @tc.number   DefaultStateProcess_001
6212d43be4eSopenharmony_ci * @tc.name     test function branch
6222d43be4eSopenharmony_ci * @tc.desc     Function test
6232d43be4eSopenharmony_ci */
6242d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, DefaultStateProcess_001, Function | MediumTest | Level1)
6252d43be4eSopenharmony_ci{
6262d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
6272d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
6282d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
6292d43be4eSopenharmony_ci        cellularMachine->Init();
6302d43be4eSopenharmony_ci    }
6312d43be4eSopenharmony_ci    auto mDefault = static_cast<Default *>(cellularMachine->defaultState_.GetRefPtr());
6322d43be4eSopenharmony_ci    mDefault->stateMachine_ = cellularMachine;
6332d43be4eSopenharmony_ci    mDefault->eventIdFunMap_.clear();
6342d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_CONNECT);
6352d43be4eSopenharmony_ci    bool result = mDefault->StateProcess(event);
6362d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
6372d43be4eSopenharmony_ci}
6382d43be4eSopenharmony_ci
6392d43be4eSopenharmony_ci/**
6402d43be4eSopenharmony_ci * @tc.number   DefaultStateProcess_002
6412d43be4eSopenharmony_ci * @tc.name     test function branch
6422d43be4eSopenharmony_ci * @tc.desc     Function test
6432d43be4eSopenharmony_ci */
6442d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, DefaultStateProcess_002, Function | MediumTest | Level1)
6452d43be4eSopenharmony_ci{
6462d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
6472d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
6482d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
6492d43be4eSopenharmony_ci        cellularMachine->Init();
6502d43be4eSopenharmony_ci    }
6512d43be4eSopenharmony_ci    auto mDefault = static_cast<Default *>(cellularMachine->defaultState_.GetRefPtr());
6522d43be4eSopenharmony_ci    cellularMachine = nullptr;
6532d43be4eSopenharmony_ci    mDefault->stateMachine_ = cellularMachine;
6542d43be4eSopenharmony_ci    mDefault->eventIdFunMap_.clear();
6552d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_CONNECT);
6562d43be4eSopenharmony_ci    bool result = mDefault->StateProcess(event);
6572d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
6582d43be4eSopenharmony_ci}
6592d43be4eSopenharmony_ci
6602d43be4eSopenharmony_ci/**
6612d43be4eSopenharmony_ci * @tc.number   DefaultProcessDisconnectDone_001
6622d43be4eSopenharmony_ci * @tc.name     test function branch
6632d43be4eSopenharmony_ci * @tc.desc     Function test
6642d43be4eSopenharmony_ci */
6652d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, DefaultProcessDisconnectDone_001, Function | MediumTest | Level1)
6662d43be4eSopenharmony_ci{
6672d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
6682d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
6692d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
6702d43be4eSopenharmony_ci        cellularMachine->Init();
6712d43be4eSopenharmony_ci    }
6722d43be4eSopenharmony_ci    auto mDefault = static_cast<Default *>(cellularMachine->defaultState_.GetRefPtr());
6732d43be4eSopenharmony_ci    mDefault->stateMachine_ = cellularMachine;
6742d43be4eSopenharmony_ci    mDefault->eventIdFunMap_.clear();
6752d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_CONNECT);
6762d43be4eSopenharmony_ci    bool result = mDefault->ProcessDisconnectDone(event);
6772d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
6782d43be4eSopenharmony_ci}
6792d43be4eSopenharmony_ci
6802d43be4eSopenharmony_ci/**
6812d43be4eSopenharmony_ci * @tc.number   DefaultProcessDisconnectDone_002
6822d43be4eSopenharmony_ci * @tc.name     test function branch
6832d43be4eSopenharmony_ci * @tc.desc     Function test
6842d43be4eSopenharmony_ci */
6852d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, DefaultProcessDisconnectDone_002, Function | MediumTest | Level1)
6862d43be4eSopenharmony_ci{
6872d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
6882d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
6892d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
6902d43be4eSopenharmony_ci        cellularMachine->Init();
6912d43be4eSopenharmony_ci    }
6922d43be4eSopenharmony_ci    auto mDefault = static_cast<Default *>(cellularMachine->defaultState_.GetRefPtr());
6932d43be4eSopenharmony_ci    cellularMachine = nullptr;
6942d43be4eSopenharmony_ci    mDefault->stateMachine_ = cellularMachine;
6952d43be4eSopenharmony_ci    mDefault->eventIdFunMap_.clear();
6962d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_CONNECT);
6972d43be4eSopenharmony_ci    bool result = mDefault->ProcessDisconnectDone(event);
6982d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
6992d43be4eSopenharmony_ci}
7002d43be4eSopenharmony_ci
7012d43be4eSopenharmony_ci/**
7022d43be4eSopenharmony_ci * @tc.number   DefaultProcessDisconnectAllDone_001
7032d43be4eSopenharmony_ci * @tc.name     test function branch
7042d43be4eSopenharmony_ci * @tc.desc     Function test
7052d43be4eSopenharmony_ci */
7062d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, DefaultProcessDisconnectAllDone_001, Function | MediumTest | Level1)
7072d43be4eSopenharmony_ci{
7082d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
7092d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
7102d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
7112d43be4eSopenharmony_ci        cellularMachine->Init();
7122d43be4eSopenharmony_ci    }
7132d43be4eSopenharmony_ci    auto mDefault = static_cast<Default *>(cellularMachine->defaultState_.GetRefPtr());
7142d43be4eSopenharmony_ci    mDefault->stateMachine_ = cellularMachine;
7152d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_CONNECT);
7162d43be4eSopenharmony_ci    bool result = mDefault->ProcessDisconnectAllDone(event);
7172d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
7182d43be4eSopenharmony_ci}
7192d43be4eSopenharmony_ci
7202d43be4eSopenharmony_ci/**
7212d43be4eSopenharmony_ci * @tc.number   DefaultProcessDisconnectAllDone_002
7222d43be4eSopenharmony_ci * @tc.name     test function branch
7232d43be4eSopenharmony_ci * @tc.desc     Function test
7242d43be4eSopenharmony_ci */
7252d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, DefaultProcessDisconnectAllDone_002, Function | MediumTest | Level1)
7262d43be4eSopenharmony_ci{
7272d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
7282d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
7292d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
7302d43be4eSopenharmony_ci        cellularMachine->Init();
7312d43be4eSopenharmony_ci    }
7322d43be4eSopenharmony_ci    auto mDefault = static_cast<Default *>(cellularMachine->defaultState_.GetRefPtr());
7332d43be4eSopenharmony_ci    cellularMachine = nullptr;
7342d43be4eSopenharmony_ci    mDefault->stateMachine_ = cellularMachine;
7352d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_CONNECT);
7362d43be4eSopenharmony_ci    bool result = mDefault->ProcessDisconnectAllDone(event);
7372d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
7382d43be4eSopenharmony_ci}
7392d43be4eSopenharmony_ci
7402d43be4eSopenharmony_ci/**
7412d43be4eSopenharmony_ci * @tc.number   DefaultProcessDataConnectionDrsOrRatChanged_001
7422d43be4eSopenharmony_ci * @tc.name     test function branch
7432d43be4eSopenharmony_ci * @tc.desc     Function test
7442d43be4eSopenharmony_ci */
7452d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, DefaultProcessDataConnectionDrsOrRatChanged_001, Function | MediumTest | Level1)
7462d43be4eSopenharmony_ci{
7472d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
7482d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
7492d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
7502d43be4eSopenharmony_ci        cellularMachine->Init();
7512d43be4eSopenharmony_ci    }
7522d43be4eSopenharmony_ci    auto mDefault = static_cast<Default *>(cellularMachine->defaultState_.GetRefPtr());
7532d43be4eSopenharmony_ci    cellularMachine->TransitionTo(cellularMachine->activeState_);
7542d43be4eSopenharmony_ci    mDefault->stateMachine_ = cellularMachine;
7552d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_CONNECT);
7562d43be4eSopenharmony_ci    bool result = mDefault->ProcessDataConnectionDrsOrRatChanged(event);
7572d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
7582d43be4eSopenharmony_ci}
7592d43be4eSopenharmony_ci
7602d43be4eSopenharmony_ci/**
7612d43be4eSopenharmony_ci * @tc.number   DefaultProcessDataConnectionDrsOrRatChanged_002
7622d43be4eSopenharmony_ci * @tc.name     test function branch
7632d43be4eSopenharmony_ci * @tc.desc     Function test
7642d43be4eSopenharmony_ci */
7652d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, DefaultProcessDataConnectionDrsOrRatChanged_002, Function | MediumTest | Level1)
7662d43be4eSopenharmony_ci{
7672d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
7682d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
7692d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
7702d43be4eSopenharmony_ci        cellularMachine->Init();
7712d43be4eSopenharmony_ci    }
7722d43be4eSopenharmony_ci    auto mDefault = static_cast<Default *>(cellularMachine->defaultState_.GetRefPtr());
7732d43be4eSopenharmony_ci    cellularMachine->TransitionTo(cellularMachine->activatingState_);
7742d43be4eSopenharmony_ci    mDefault->stateMachine_ = cellularMachine;
7752d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_CONNECT);
7762d43be4eSopenharmony_ci    bool result = mDefault->ProcessDataConnectionDrsOrRatChanged(event);
7772d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
7782d43be4eSopenharmony_ci}
7792d43be4eSopenharmony_ci
7802d43be4eSopenharmony_ci/**
7812d43be4eSopenharmony_ci * @tc.number   DefaultProcessDataConnectionDrsOrRatChanged_003
7822d43be4eSopenharmony_ci * @tc.name     test function branch
7832d43be4eSopenharmony_ci * @tc.desc     Function test
7842d43be4eSopenharmony_ci */
7852d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, DefaultProcessDataConnectionDrsOrRatChanged_003, Function | MediumTest | Level1)
7862d43be4eSopenharmony_ci{
7872d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
7882d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
7892d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
7902d43be4eSopenharmony_ci        cellularMachine->Init();
7912d43be4eSopenharmony_ci    }
7922d43be4eSopenharmony_ci    auto mDefault = static_cast<Default *>(cellularMachine->defaultState_.GetRefPtr());
7932d43be4eSopenharmony_ci    cellularMachine->TransitionTo(cellularMachine->disconnectingState_);
7942d43be4eSopenharmony_ci    mDefault->stateMachine_ = cellularMachine;
7952d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_CONNECT);
7962d43be4eSopenharmony_ci    bool result = mDefault->ProcessDataConnectionDrsOrRatChanged(event);
7972d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
7982d43be4eSopenharmony_ci}
7992d43be4eSopenharmony_ci
8002d43be4eSopenharmony_ci/**
8012d43be4eSopenharmony_ci * @tc.number   DefaultProcessDataConnectionDrsOrRatChanged_004
8022d43be4eSopenharmony_ci * @tc.name     test function branch
8032d43be4eSopenharmony_ci * @tc.desc     Function test
8042d43be4eSopenharmony_ci */
8052d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, DefaultProcessDataConnectionDrsOrRatChanged_004, Function | MediumTest | Level1)
8062d43be4eSopenharmony_ci{
8072d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
8082d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
8092d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
8102d43be4eSopenharmony_ci        cellularMachine->Init();
8112d43be4eSopenharmony_ci    }
8122d43be4eSopenharmony_ci    auto mDefault = static_cast<Default *>(cellularMachine->defaultState_.GetRefPtr());
8132d43be4eSopenharmony_ci    cellularMachine = nullptr;
8142d43be4eSopenharmony_ci    mDefault->stateMachine_ = cellularMachine;
8152d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_CONNECT);
8162d43be4eSopenharmony_ci    bool result = mDefault->ProcessDataConnectionDrsOrRatChanged(event);
8172d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
8182d43be4eSopenharmony_ci}
8192d43be4eSopenharmony_ci
8202d43be4eSopenharmony_ci/**
8212d43be4eSopenharmony_ci * @tc.number   Active_StateBegin_001
8222d43be4eSopenharmony_ci * @tc.name     test function branch
8232d43be4eSopenharmony_ci * @tc.desc     Function test
8242d43be4eSopenharmony_ci */
8252d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_StateBegin_001, Function | MediumTest | Level1)
8262d43be4eSopenharmony_ci{
8272d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
8282d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
8292d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
8302d43be4eSopenharmony_ci        cellularMachine->Init();
8312d43be4eSopenharmony_ci    }
8322d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
8332d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
8342d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_CONNECT);
8352d43be4eSopenharmony_ci    active->StateBegin();
8362d43be4eSopenharmony_ci    EXPECT_EQ(active->isActive_, true);
8372d43be4eSopenharmony_ci}
8382d43be4eSopenharmony_ci
8392d43be4eSopenharmony_ci/**
8402d43be4eSopenharmony_ci * @tc.number   Active_StateProcess_001
8412d43be4eSopenharmony_ci * @tc.name     test function branch
8422d43be4eSopenharmony_ci * @tc.desc     Function test
8432d43be4eSopenharmony_ci */
8442d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_StateProcess_001, Function | MediumTest | Level1)
8452d43be4eSopenharmony_ci{
8462d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
8472d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
8482d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
8492d43be4eSopenharmony_ci        cellularMachine->Init();
8502d43be4eSopenharmony_ci    }
8512d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
8522d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
8532d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_CONNECT);
8542d43be4eSopenharmony_ci    bool result = active->StateProcess(event);
8552d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
8562d43be4eSopenharmony_ci}
8572d43be4eSopenharmony_ci
8582d43be4eSopenharmony_ci/**
8592d43be4eSopenharmony_ci * @tc.number   Active_StateProcess_002
8602d43be4eSopenharmony_ci * @tc.name     test function branch
8612d43be4eSopenharmony_ci * @tc.desc     Function test
8622d43be4eSopenharmony_ci */
8632d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_StateProcess_002, Function | MediumTest | Level1)
8642d43be4eSopenharmony_ci{
8652d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
8662d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
8672d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
8682d43be4eSopenharmony_ci        cellularMachine->Init();
8692d43be4eSopenharmony_ci    }
8702d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
8712d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
8722d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
8732d43be4eSopenharmony_ci    bool result = active->StateProcess(event);
8742d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
8752d43be4eSopenharmony_ci}
8762d43be4eSopenharmony_ci
8772d43be4eSopenharmony_ci/**
8782d43be4eSopenharmony_ci * @tc.number   Active_StateProcess_003
8792d43be4eSopenharmony_ci * @tc.name     test function branch
8802d43be4eSopenharmony_ci * @tc.desc     Function test
8812d43be4eSopenharmony_ci */
8822d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_StateProcess_003, Function | MediumTest | Level1)
8832d43be4eSopenharmony_ci{
8842d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
8852d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
8862d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
8872d43be4eSopenharmony_ci        cellularMachine->Init();
8882d43be4eSopenharmony_ci    }
8892d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
8902d43be4eSopenharmony_ci    cellularMachine = nullptr;
8912d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
8922d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_CONNECT);
8932d43be4eSopenharmony_ci    bool result = active->StateProcess(event);
8942d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
8952d43be4eSopenharmony_ci}
8962d43be4eSopenharmony_ci
8972d43be4eSopenharmony_ci/**
8982d43be4eSopenharmony_ci * @tc.number   Active_ProcessDisconnectDone_001
8992d43be4eSopenharmony_ci * @tc.name     test function branch
9002d43be4eSopenharmony_ci * @tc.desc     Function test
9012d43be4eSopenharmony_ci */
9022d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_ProcessDisconnectDone_001, Function | MediumTest | Level1)
9032d43be4eSopenharmony_ci{
9042d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
9052d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
9062d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
9072d43be4eSopenharmony_ci        cellularMachine->Init();
9082d43be4eSopenharmony_ci    }
9092d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
9102d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
9112d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
9122d43be4eSopenharmony_ci    event = nullptr;
9132d43be4eSopenharmony_ci    bool result = active->ProcessDisconnectDone(event);
9142d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
9152d43be4eSopenharmony_ci}
9162d43be4eSopenharmony_ci
9172d43be4eSopenharmony_ci/**
9182d43be4eSopenharmony_ci * @tc.number   Active_ProcessDisconnectDone_002
9192d43be4eSopenharmony_ci * @tc.name     test function branch
9202d43be4eSopenharmony_ci * @tc.desc     Function test
9212d43be4eSopenharmony_ci */
9222d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_ProcessDisconnectDone_002, Function | MediumTest | Level1)
9232d43be4eSopenharmony_ci{
9242d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
9252d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
9262d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
9272d43be4eSopenharmony_ci        cellularMachine->Init();
9282d43be4eSopenharmony_ci    }
9292d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
9302d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
9312d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
9322d43be4eSopenharmony_ci    bool result = active->ProcessDisconnectDone(event);
9332d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
9342d43be4eSopenharmony_ci}
9352d43be4eSopenharmony_ci
9362d43be4eSopenharmony_ci/**
9372d43be4eSopenharmony_ci * @tc.number   Active_ProcessDisconnectAllDone_001
9382d43be4eSopenharmony_ci * @tc.name     test function branch
9392d43be4eSopenharmony_ci * @tc.desc     Function test
9402d43be4eSopenharmony_ci */
9412d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_ProcessDisconnectAllDone_001, Function | MediumTest | Level1)
9422d43be4eSopenharmony_ci{
9432d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
9442d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
9452d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
9462d43be4eSopenharmony_ci        cellularMachine->Init();
9472d43be4eSopenharmony_ci    }
9482d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
9492d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
9502d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
9512d43be4eSopenharmony_ci    event = nullptr;
9522d43be4eSopenharmony_ci    bool result = active->ProcessDisconnectAllDone(event);
9532d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
9542d43be4eSopenharmony_ci}
9552d43be4eSopenharmony_ci
9562d43be4eSopenharmony_ci/**
9572d43be4eSopenharmony_ci * @tc.number   Active_ProcessDisconnectAllDone_002
9582d43be4eSopenharmony_ci * @tc.name     test function branch
9592d43be4eSopenharmony_ci * @tc.desc     Function test
9602d43be4eSopenharmony_ci */
9612d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_ProcessDisconnectAllDone_002, Function | MediumTest | Level1)
9622d43be4eSopenharmony_ci{
9632d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
9642d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
9652d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
9662d43be4eSopenharmony_ci        cellularMachine->Init();
9672d43be4eSopenharmony_ci    }
9682d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
9692d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
9702d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
9712d43be4eSopenharmony_ci    bool result = active->ProcessDisconnectAllDone(event);
9722d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
9732d43be4eSopenharmony_ci}
9742d43be4eSopenharmony_ci
9752d43be4eSopenharmony_ci/**
9762d43be4eSopenharmony_ci * @tc.number   Active_ProcessDisconnectAllDone_003
9772d43be4eSopenharmony_ci * @tc.name     test function branch
9782d43be4eSopenharmony_ci * @tc.desc     Function test
9792d43be4eSopenharmony_ci */
9802d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_ProcessDisconnectAllDone_003, Function | MediumTest | Level1)
9812d43be4eSopenharmony_ci{
9822d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
9832d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
9842d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
9852d43be4eSopenharmony_ci        cellularMachine->Init();
9862d43be4eSopenharmony_ci    }
9872d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
9882d43be4eSopenharmony_ci    cellularMachine->TransitionTo(cellularMachine->inActiveState_);
9892d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
9902d43be4eSopenharmony_ci    std::shared_ptr<DataDisconnectParams> dataDisconnectParams =
9912d43be4eSopenharmony_ci        std::make_shared<DataDisconnectParams>("", DisConnectionReason::REASON_NORMAL);
9922d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0, dataDisconnectParams);
9932d43be4eSopenharmony_ci    bool result = active->ProcessDisconnectAllDone(event);
9942d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
9952d43be4eSopenharmony_ci}
9962d43be4eSopenharmony_ci
9972d43be4eSopenharmony_ci/**
9982d43be4eSopenharmony_ci * @tc.number   Active_ProcessDisconnectAllDone_004
9992d43be4eSopenharmony_ci * @tc.name     test function branch
10002d43be4eSopenharmony_ci * @tc.desc     Function test
10012d43be4eSopenharmony_ci */
10022d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_ProcessDisconnectAllDone_004, Function | MediumTest | Level1)
10032d43be4eSopenharmony_ci{
10042d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
10052d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
10062d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
10072d43be4eSopenharmony_ci        cellularMachine->Init();
10082d43be4eSopenharmony_ci    }
10092d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
10102d43be4eSopenharmony_ci    cellularMachine->inActiveState_ = nullptr;
10112d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
10122d43be4eSopenharmony_ci    std::shared_ptr<DataDisconnectParams> dataDisconnectParams =
10132d43be4eSopenharmony_ci        std::make_shared<DataDisconnectParams>("", DisConnectionReason::REASON_NORMAL);
10142d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0, dataDisconnectParams);
10152d43be4eSopenharmony_ci    bool result = active->ProcessDisconnectAllDone(event);
10162d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
10172d43be4eSopenharmony_ci}
10182d43be4eSopenharmony_ci
10192d43be4eSopenharmony_ci/**
10202d43be4eSopenharmony_ci * @tc.number   Active_ProcessLinkCapabilityChanged_001
10212d43be4eSopenharmony_ci * @tc.name     test function branch
10222d43be4eSopenharmony_ci * @tc.desc     Function test
10232d43be4eSopenharmony_ci */
10242d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_ProcessLinkCapabilityChanged_001, Function | MediumTest | Level1)
10252d43be4eSopenharmony_ci{
10262d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
10272d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
10282d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
10292d43be4eSopenharmony_ci        cellularMachine->Init();
10302d43be4eSopenharmony_ci    }
10312d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
10322d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
10332d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
10342d43be4eSopenharmony_ci    bool result = active->ProcessLinkCapabilityChanged(event);
10352d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
10362d43be4eSopenharmony_ci}
10372d43be4eSopenharmony_ci
10382d43be4eSopenharmony_ci/**
10392d43be4eSopenharmony_ci * @tc.number   Active_ProcessLinkCapabilityChanged_002
10402d43be4eSopenharmony_ci * @tc.name     test function branch
10412d43be4eSopenharmony_ci * @tc.desc     Function test
10422d43be4eSopenharmony_ci */
10432d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_ProcessLinkCapabilityChanged_002, Function | MediumTest | Level1)
10442d43be4eSopenharmony_ci{
10452d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
10462d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
10472d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
10482d43be4eSopenharmony_ci        cellularMachine->Init();
10492d43be4eSopenharmony_ci    }
10502d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
10512d43be4eSopenharmony_ci    cellularMachine = nullptr;
10522d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
10532d43be4eSopenharmony_ci    std::shared_ptr<DataLinkCapability> linkCapability = std::make_shared<DataLinkCapability>();
10542d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0, linkCapability);
10552d43be4eSopenharmony_ci    bool result = active->ProcessLinkCapabilityChanged(event);
10562d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
10572d43be4eSopenharmony_ci}
10582d43be4eSopenharmony_ci
10592d43be4eSopenharmony_ci/**
10602d43be4eSopenharmony_ci * @tc.number   Active_ProcessLinkCapabilityChanged_003
10612d43be4eSopenharmony_ci * @tc.name     test function branch
10622d43be4eSopenharmony_ci * @tc.desc     Function test
10632d43be4eSopenharmony_ci */
10642d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_ProcessLinkCapabilityChanged_003, Function | MediumTest | Level1)
10652d43be4eSopenharmony_ci{
10662d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
10672d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
10682d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
10692d43be4eSopenharmony_ci        cellularMachine->Init();
10702d43be4eSopenharmony_ci    }
10712d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
10722d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
10732d43be4eSopenharmony_ci    std::shared_ptr<DataLinkCapability> linkCapability = std::make_shared<DataLinkCapability>();
10742d43be4eSopenharmony_ci    linkCapability->primaryUplinkKbps = 0;
10752d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0, linkCapability);
10762d43be4eSopenharmony_ci    bool result = active->ProcessLinkCapabilityChanged(event);
10772d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
10782d43be4eSopenharmony_ci}
10792d43be4eSopenharmony_ci
10802d43be4eSopenharmony_ci/**
10812d43be4eSopenharmony_ci * @tc.number   Active_ProcessLinkCapabilityChanged_004
10822d43be4eSopenharmony_ci * @tc.name     test function branch
10832d43be4eSopenharmony_ci * @tc.desc     Function test
10842d43be4eSopenharmony_ci */
10852d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_ProcessLinkCapabilityChanged_004, Function | MediumTest | Level1)
10862d43be4eSopenharmony_ci{
10872d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
10882d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
10892d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
10902d43be4eSopenharmony_ci        cellularMachine->Init();
10912d43be4eSopenharmony_ci    }
10922d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
10932d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
10942d43be4eSopenharmony_ci    std::shared_ptr<DataLinkCapability> linkCapability = std::make_shared<DataLinkCapability>();
10952d43be4eSopenharmony_ci    linkCapability->primaryUplinkKbps = 1;
10962d43be4eSopenharmony_ci    linkCapability->primaryDownlinkKbps = 0;
10972d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0, linkCapability);
10982d43be4eSopenharmony_ci    bool result = active->ProcessLinkCapabilityChanged(event);
10992d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
11002d43be4eSopenharmony_ci}
11012d43be4eSopenharmony_ci
11022d43be4eSopenharmony_ci/**
11032d43be4eSopenharmony_ci * @tc.number   Active_ProcessLinkCapabilityChanged_005
11042d43be4eSopenharmony_ci * @tc.name     test function branch
11052d43be4eSopenharmony_ci * @tc.desc     Function test
11062d43be4eSopenharmony_ci */
11072d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_ProcessLinkCapabilityChanged_005, Function | MediumTest | Level1)
11082d43be4eSopenharmony_ci{
11092d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
11102d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
11112d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
11122d43be4eSopenharmony_ci        cellularMachine->Init();
11132d43be4eSopenharmony_ci    }
11142d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
11152d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
11162d43be4eSopenharmony_ci    std::shared_ptr<DataLinkCapability> linkCapability = std::make_shared<DataLinkCapability>();
11172d43be4eSopenharmony_ci    linkCapability->primaryUplinkKbps = 1;
11182d43be4eSopenharmony_ci    linkCapability->primaryDownlinkKbps = 1;
11192d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0, linkCapability);
11202d43be4eSopenharmony_ci    bool result = active->ProcessLinkCapabilityChanged(event);
11212d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
11222d43be4eSopenharmony_ci}
11232d43be4eSopenharmony_ci
11242d43be4eSopenharmony_ci/**
11252d43be4eSopenharmony_ci * @tc.number   Active_ProcessDataConnectionComplete_001
11262d43be4eSopenharmony_ci * @tc.name     test function branch
11272d43be4eSopenharmony_ci * @tc.desc     Function test
11282d43be4eSopenharmony_ci */
11292d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_ProcessDataConnectionComplete_001, Function | MediumTest | Level1)
11302d43be4eSopenharmony_ci{
11312d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
11322d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
11332d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
11342d43be4eSopenharmony_ci        cellularMachine->Init();
11352d43be4eSopenharmony_ci    }
11362d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
11372d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
11382d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
11392d43be4eSopenharmony_ci    bool result = active->ProcessDataConnectionComplete(event);
11402d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
11412d43be4eSopenharmony_ci}
11422d43be4eSopenharmony_ci
11432d43be4eSopenharmony_ci/**
11442d43be4eSopenharmony_ci * @tc.number   Active_ProcessDataConnectionComplete_002
11452d43be4eSopenharmony_ci * @tc.name     test function branch
11462d43be4eSopenharmony_ci * @tc.desc     Function test
11472d43be4eSopenharmony_ci */
11482d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_ProcessDataConnectionComplete_002, Function | MediumTest | Level1)
11492d43be4eSopenharmony_ci{
11502d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
11512d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
11522d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
11532d43be4eSopenharmony_ci        cellularMachine->Init();
11542d43be4eSopenharmony_ci    }
11552d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
11562d43be4eSopenharmony_ci    cellularMachine = nullptr;
11572d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
11582d43be4eSopenharmony_ci    std::shared_ptr<SetupDataCallResultInfo> setupDataCallResultInfo = std::make_shared<SetupDataCallResultInfo>();
11592d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0, setupDataCallResultInfo);
11602d43be4eSopenharmony_ci    bool result = active->ProcessDataConnectionComplete(event);
11612d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
11622d43be4eSopenharmony_ci}
11632d43be4eSopenharmony_ci
11642d43be4eSopenharmony_ci/**
11652d43be4eSopenharmony_ci * @tc.number   Active_ProcessDataConnectionComplete_003
11662d43be4eSopenharmony_ci * @tc.name     test function branch
11672d43be4eSopenharmony_ci * @tc.desc     Function test
11682d43be4eSopenharmony_ci */
11692d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_ProcessDataConnectionComplete_003, Function | MediumTest | Level1)
11702d43be4eSopenharmony_ci{
11712d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
11722d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
11732d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
11742d43be4eSopenharmony_ci        cellularMachine->Init();
11752d43be4eSopenharmony_ci    }
11762d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
11772d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
11782d43be4eSopenharmony_ci    std::shared_ptr<SetupDataCallResultInfo> setupDataCallResultInfo = std::make_shared<SetupDataCallResultInfo>();
11792d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0, setupDataCallResultInfo);
11802d43be4eSopenharmony_ci    bool result = active->ProcessDataConnectionComplete(event);
11812d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
11822d43be4eSopenharmony_ci}
11832d43be4eSopenharmony_ci
11842d43be4eSopenharmony_ci/**
11852d43be4eSopenharmony_ci * @tc.number   Active_ProcessDataConnectionComplete_004
11862d43be4eSopenharmony_ci * @tc.name     test function branch
11872d43be4eSopenharmony_ci * @tc.desc     Function test
11882d43be4eSopenharmony_ci */
11892d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_ProcessDataConnectionComplete_004, Function | MediumTest | Level1)
11902d43be4eSopenharmony_ci{
11912d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
11922d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
11932d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
11942d43be4eSopenharmony_ci        cellularMachine->Init();
11952d43be4eSopenharmony_ci    }
11962d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
11972d43be4eSopenharmony_ci    cellularMachine->stateMachineEventHandler_ = nullptr;
11982d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
11992d43be4eSopenharmony_ci    std::shared_ptr<SetupDataCallResultInfo> setupDataCallResultInfo = std::make_shared<SetupDataCallResultInfo>();
12002d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0, setupDataCallResultInfo);
12012d43be4eSopenharmony_ci    bool result = active->ProcessDataConnectionComplete(event);
12022d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
12032d43be4eSopenharmony_ci}
12042d43be4eSopenharmony_ci
12052d43be4eSopenharmony_ci/**
12062d43be4eSopenharmony_ci * @tc.number   Active_ProcessNrStateChanged_001
12072d43be4eSopenharmony_ci * @tc.name     test function branch
12082d43be4eSopenharmony_ci * @tc.desc     Function test
12092d43be4eSopenharmony_ci */
12102d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_ProcessNrStateChanged_001, Function | MediumTest | Level1)
12112d43be4eSopenharmony_ci{
12122d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
12132d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
12142d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
12152d43be4eSopenharmony_ci        cellularMachine->Init();
12162d43be4eSopenharmony_ci    }
12172d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
12182d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
12192d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_CONNECT);
12202d43be4eSopenharmony_ci    bool result = active->ProcessNrStateChanged(event);
12212d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
12222d43be4eSopenharmony_ci}
12232d43be4eSopenharmony_ci
12242d43be4eSopenharmony_ci/**
12252d43be4eSopenharmony_ci * @tc.number   Active_ProcessNrStateChanged_002
12262d43be4eSopenharmony_ci * @tc.name     test function branch
12272d43be4eSopenharmony_ci * @tc.desc     Function test
12282d43be4eSopenharmony_ci */
12292d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_ProcessNrStateChanged_002, Function | MediumTest | Level1)
12302d43be4eSopenharmony_ci{
12312d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
12322d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
12332d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
12342d43be4eSopenharmony_ci        cellularMachine->Init();
12352d43be4eSopenharmony_ci    }
12362d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
12372d43be4eSopenharmony_ci    cellularMachine = nullptr;
12382d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
12392d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_CONNECT);
12402d43be4eSopenharmony_ci    bool result = active->ProcessNrStateChanged(event);
12412d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
12422d43be4eSopenharmony_ci}
12432d43be4eSopenharmony_ci
12442d43be4eSopenharmony_ci/**
12452d43be4eSopenharmony_ci * @tc.number   Active_ProcessNrFrequencyChanged_001
12462d43be4eSopenharmony_ci * @tc.name     test function branch
12472d43be4eSopenharmony_ci * @tc.desc     Function test
12482d43be4eSopenharmony_ci */
12492d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_ProcessNrFrequencyChanged_001, Function | MediumTest | Level1)
12502d43be4eSopenharmony_ci{
12512d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
12522d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
12532d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
12542d43be4eSopenharmony_ci        cellularMachine->Init();
12552d43be4eSopenharmony_ci    }
12562d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
12572d43be4eSopenharmony_ci    cellularMachine = nullptr;
12582d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
12592d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_CONNECT);
12602d43be4eSopenharmony_ci    bool result = active->ProcessNrFrequencyChanged(event);
12612d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
12622d43be4eSopenharmony_ci}
12632d43be4eSopenharmony_ci
12642d43be4eSopenharmony_ci/**
12652d43be4eSopenharmony_ci * @tc.number   Active_ProcessDisconnectAllDone_001
12662d43be4eSopenharmony_ci * @tc.name     test function branch
12672d43be4eSopenharmony_ci * @tc.desc     Function test
12682d43be4eSopenharmony_ci */
12692d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_ProcessLostConnection_001, Function | MediumTest | Level1)
12702d43be4eSopenharmony_ci{
12712d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
12722d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
12732d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
12742d43be4eSopenharmony_ci        cellularMachine->Init();
12752d43be4eSopenharmony_ci    }
12762d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
12772d43be4eSopenharmony_ci    cellularMachine->TransitionTo(cellularMachine->inActiveState_);
12782d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
12792d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
12802d43be4eSopenharmony_ci    bool result = active->ProcessLostConnection(event);
12812d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
12822d43be4eSopenharmony_ci}
12832d43be4eSopenharmony_ci
12842d43be4eSopenharmony_ci/**
12852d43be4eSopenharmony_ci * @tc.number   Active_ProcessLostConnection_002
12862d43be4eSopenharmony_ci * @tc.name     test function branch
12872d43be4eSopenharmony_ci * @tc.desc     Function test
12882d43be4eSopenharmony_ci */
12892d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_ProcessLostConnection_002, Function | MediumTest | Level1)
12902d43be4eSopenharmony_ci{
12912d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
12922d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
12932d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
12942d43be4eSopenharmony_ci        cellularMachine->Init();
12952d43be4eSopenharmony_ci    }
12962d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
12972d43be4eSopenharmony_ci    cellularMachine->inActiveState_ = nullptr;
12982d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
12992d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
13002d43be4eSopenharmony_ci    bool result = active->ProcessLostConnection(event);
13012d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
13022d43be4eSopenharmony_ci}
13032d43be4eSopenharmony_ci
13042d43be4eSopenharmony_ci/**
13052d43be4eSopenharmony_ci * @tc.number   Active_ProcessDataConnectionRoamOn_001
13062d43be4eSopenharmony_ci * @tc.name     test function branch
13072d43be4eSopenharmony_ci * @tc.desc     Function test
13082d43be4eSopenharmony_ci */
13092d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_ProcessDataConnectionRoamOn_001, Function | MediumTest | Level1)
13102d43be4eSopenharmony_ci{
13112d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
13122d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
13132d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
13142d43be4eSopenharmony_ci        cellularMachine->Init();
13152d43be4eSopenharmony_ci    }
13162d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
13172d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
13182d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_CONNECT);
13192d43be4eSopenharmony_ci    bool result = active->ProcessDataConnectionRoamOn(event);
13202d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
13212d43be4eSopenharmony_ci}
13222d43be4eSopenharmony_ci
13232d43be4eSopenharmony_ci/**
13242d43be4eSopenharmony_ci * @tc.number   Active_ProcessDataConnectionRoamOff_001
13252d43be4eSopenharmony_ci * @tc.name     test function branch
13262d43be4eSopenharmony_ci * @tc.desc     Function test
13272d43be4eSopenharmony_ci */
13282d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_ProcessDataConnectionRoamOff_001, Function | MediumTest | Level1)
13292d43be4eSopenharmony_ci{
13302d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
13312d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
13322d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
13332d43be4eSopenharmony_ci        cellularMachine->Init();
13342d43be4eSopenharmony_ci    }
13352d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
13362d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
13372d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_CONNECT);
13382d43be4eSopenharmony_ci    bool result = active->ProcessDataConnectionRoamOff(event);
13392d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
13402d43be4eSopenharmony_ci}
13412d43be4eSopenharmony_ci
13422d43be4eSopenharmony_ci/**
13432d43be4eSopenharmony_ci * @tc.number   Active_ProcessDataConnectionVoiceCallStartedOrEnded_001
13442d43be4eSopenharmony_ci * @tc.name     test function branch
13452d43be4eSopenharmony_ci * @tc.desc     Function test
13462d43be4eSopenharmony_ci */
13472d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, ProcessDataConnectionVoiceCallStartedOrEnded_001, Function | MediumTest | Level1)
13482d43be4eSopenharmony_ci{
13492d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
13502d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
13512d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
13522d43be4eSopenharmony_ci        cellularMachine->Init();
13532d43be4eSopenharmony_ci    }
13542d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
13552d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
13562d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_CONNECT);
13572d43be4eSopenharmony_ci    bool result = active->ProcessDataConnectionVoiceCallStartedOrEnded(event);
13582d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
13592d43be4eSopenharmony_ci}
13602d43be4eSopenharmony_ci
13612d43be4eSopenharmony_ci/**
13622d43be4eSopenharmony_ci * @tc.number   CellularDataStateMachine_GetSlotId_001
13632d43be4eSopenharmony_ci * @tc.name     test function branch
13642d43be4eSopenharmony_ci * @tc.desc     Function test
13652d43be4eSopenharmony_ci */
13662d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, CellularDataStateMachine_GetSlotId_001, Function | MediumTest | Level1)
13672d43be4eSopenharmony_ci{
13682d43be4eSopenharmony_ci    std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
13692d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> cellularMachine = machine->CreateCellularDataConnect(0);
13702d43be4eSopenharmony_ci    int result = cellularMachine->GetSlotId();
13712d43be4eSopenharmony_ci    ASSERT_EQ(result, DEFAULT_SIM_SLOT_ID);
13722d43be4eSopenharmony_ci}
13732d43be4eSopenharmony_ci
13742d43be4eSopenharmony_ci/**
13752d43be4eSopenharmony_ci * @tc.number   CellularDataStateMachine_HasMatchedIpTypeAddrs_001
13762d43be4eSopenharmony_ci * @tc.name     test function branch
13772d43be4eSopenharmony_ci * @tc.desc     Function test
13782d43be4eSopenharmony_ci */
13792d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, CellularDataStateMachine_HasMatchedIpTypeAddrs_001, Function | MediumTest | Level1)
13802d43be4eSopenharmony_ci{
13812d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
13822d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
13832d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
13842d43be4eSopenharmony_ci        cellularMachine->Init();
13852d43be4eSopenharmony_ci    }
13862d43be4eSopenharmony_ci    uint8_t ipType = 1;
13872d43be4eSopenharmony_ci    uint8_t ipInfoArraySize = 2;
13882d43be4eSopenharmony_ci    std::vector<AddressInfo> ipInfoArray;
13892d43be4eSopenharmony_ci    AddressInfo info1;
13902d43be4eSopenharmony_ci    info1.type = 1;
13912d43be4eSopenharmony_ci    AddressInfo info2;
13922d43be4eSopenharmony_ci    info2.type = 3;
13932d43be4eSopenharmony_ci    ipInfoArray.push_back(info1);
13942d43be4eSopenharmony_ci    ipInfoArray.push_back(info2);
13952d43be4eSopenharmony_ci    bool result = cellularMachine->HasMatchedIpTypeAddrs(ipType, ipInfoArraySize, ipInfoArray);
13962d43be4eSopenharmony_ci    ASSERT_TRUE(result);
13972d43be4eSopenharmony_ci}
13982d43be4eSopenharmony_ci
13992d43be4eSopenharmony_ci/**
14002d43be4eSopenharmony_ci * @tc.number   CellularDataStateMachine_HasMatchedIpTypeAddrs_002
14012d43be4eSopenharmony_ci * @tc.name     test function branch
14022d43be4eSopenharmony_ci * @tc.desc     Function test
14032d43be4eSopenharmony_ci */
14042d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, CellularDataStateMachine_HasMatchedIpTypeAddrs_002, Function | MediumTest | Level1)
14052d43be4eSopenharmony_ci{
14062d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
14072d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
14082d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
14092d43be4eSopenharmony_ci        cellularMachine->Init();
14102d43be4eSopenharmony_ci    }
14112d43be4eSopenharmony_ci    uint8_t ipType = 5;
14122d43be4eSopenharmony_ci    uint8_t ipInfoArraySize = 2;
14132d43be4eSopenharmony_ci    std::vector<AddressInfo> ipInfoArray;
14142d43be4eSopenharmony_ci    AddressInfo info1;
14152d43be4eSopenharmony_ci    info1.type = 1;
14162d43be4eSopenharmony_ci    AddressInfo info2;
14172d43be4eSopenharmony_ci    info2.type = 3;
14182d43be4eSopenharmony_ci    ipInfoArray.push_back(info1);
14192d43be4eSopenharmony_ci    ipInfoArray.push_back(info2);
14202d43be4eSopenharmony_ci    bool result = cellularMachine->HasMatchedIpTypeAddrs(ipType, ipInfoArraySize, ipInfoArray);
14212d43be4eSopenharmony_ci    ASSERT_FALSE(result);
14222d43be4eSopenharmony_ci}
14232d43be4eSopenharmony_ci
14242d43be4eSopenharmony_ci/**
14252d43be4eSopenharmony_ci * @tc.number   GetIpType_ShouldReturnIPV4V6_001
14262d43be4eSopenharmony_ci * @tc.name     test function branch
14272d43be4eSopenharmony_ci * @tc.desc     Function test
14282d43be4eSopenharmony_ci */
14292d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, GetIpType_ShouldReturnIPV4V6_001, TestSize.Level0)
14302d43be4eSopenharmony_ci{
14312d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
14322d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
14332d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
14342d43be4eSopenharmony_ci        cellularMachine->Init();
14352d43be4eSopenharmony_ci    }
14362d43be4eSopenharmony_ci    std::vector<AddressInfo> ipInfoArray;
14372d43be4eSopenharmony_ci    AddressInfo info1;
14382d43be4eSopenharmony_ci    info1.type = INetAddr::IpType::IPV4;
14392d43be4eSopenharmony_ci    AddressInfo info2;
14402d43be4eSopenharmony_ci    info2.type = INetAddr::IpType::IPV6;
14412d43be4eSopenharmony_ci    ipInfoArray.push_back(info1);
14422d43be4eSopenharmony_ci    ipInfoArray.push_back(info2);
14432d43be4eSopenharmony_ci    std::string result = cellularMachine->GetIpType(ipInfoArray);
14442d43be4eSopenharmony_ci    ASSERT_EQ(result, "IPV4V6");
14452d43be4eSopenharmony_ci}
14462d43be4eSopenharmony_ci
14472d43be4eSopenharmony_ci/**
14482d43be4eSopenharmony_ci * @tc.number   GetIpType_ShouldReturnIPV4V6_002
14492d43be4eSopenharmony_ci * @tc.name     test function branch
14502d43be4eSopenharmony_ci * @tc.desc     Function test
14512d43be4eSopenharmony_ci */
14522d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, GetIpType_ShouldReturnIPV4V6_002, TestSize.Level0)
14532d43be4eSopenharmony_ci{
14542d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
14552d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
14562d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
14572d43be4eSopenharmony_ci        cellularMachine->Init();
14582d43be4eSopenharmony_ci    }
14592d43be4eSopenharmony_ci    std::vector<AddressInfo> ipInfoArray;
14602d43be4eSopenharmony_ci    AddressInfo info1;
14612d43be4eSopenharmony_ci    info1.type = INetAddr::IpType::IPV4;
14622d43be4eSopenharmony_ci    ipInfoArray.push_back(info1);
14632d43be4eSopenharmony_ci    std::string result = cellularMachine->GetIpType(ipInfoArray);
14642d43be4eSopenharmony_ci    ASSERT_EQ(result, "IPV4");
14652d43be4eSopenharmony_ci}
14662d43be4eSopenharmony_ci
14672d43be4eSopenharmony_ci/**
14682d43be4eSopenharmony_ci * @tc.number   GetIpType_ShouldReturnIPV6_003
14692d43be4eSopenharmony_ci * @tc.name     test function branch
14702d43be4eSopenharmony_ci * @tc.desc     Function test
14712d43be4eSopenharmony_ci */
14722d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, GetIpType_ShouldReturnIPV6_003, TestSize.Level0)
14732d43be4eSopenharmony_ci{
14742d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
14752d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
14762d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
14772d43be4eSopenharmony_ci        cellularMachine->Init();
14782d43be4eSopenharmony_ci    }
14792d43be4eSopenharmony_ci    std::vector<AddressInfo> ipInfoArray;
14802d43be4eSopenharmony_ci    AddressInfo info2;
14812d43be4eSopenharmony_ci    info2.type = INetAddr::IpType::IPV6;
14822d43be4eSopenharmony_ci    ipInfoArray.push_back(info2);
14832d43be4eSopenharmony_ci    std::string result = cellularMachine->GetIpType(ipInfoArray);
14842d43be4eSopenharmony_ci    ASSERT_EQ(result, "IPV6");
14852d43be4eSopenharmony_ci}
14862d43be4eSopenharmony_ci
14872d43be4eSopenharmony_ci/**
14882d43be4eSopenharmony_ci * @tc.number   GetIpType_ShouldReturnEmpty_004
14892d43be4eSopenharmony_ci * @tc.name     test function branch
14902d43be4eSopenharmony_ci * @tc.desc     Function test
14912d43be4eSopenharmony_ci */
14922d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, GetIpType_ShouldReturnEmpty_004, TestSize.Level0)
14932d43be4eSopenharmony_ci{
14942d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
14952d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
14962d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
14972d43be4eSopenharmony_ci        cellularMachine->Init();
14982d43be4eSopenharmony_ci    }
14992d43be4eSopenharmony_ci    std::vector<AddressInfo> ipInfoArray = {};
15002d43be4eSopenharmony_ci    std::string result = cellularMachine->GetIpType(ipInfoArray);
15012d43be4eSopenharmony_ci    ASSERT_EQ(result, "");
15022d43be4eSopenharmony_ci}
15032d43be4eSopenharmony_ci
15042d43be4eSopenharmony_ci/**
15052d43be4eSopenharmony_ci * @tc.number   GetIpType_ShouldReturnIPV4V6_005
15062d43be4eSopenharmony_ci * @tc.name     test function branch
15072d43be4eSopenharmony_ci * @tc.desc     Function test
15082d43be4eSopenharmony_ci */
15092d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, GetIpType_ShouldReturnIPV4V6_005, TestSize.Level0)
15102d43be4eSopenharmony_ci{
15112d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
15122d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
15132d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
15142d43be4eSopenharmony_ci        cellularMachine->Init();
15152d43be4eSopenharmony_ci    }
15162d43be4eSopenharmony_ci    std::vector<AddressInfo> ipInfoArray;
15172d43be4eSopenharmony_ci    AddressInfo info1;
15182d43be4eSopenharmony_ci    info1.type = 5;
15192d43be4eSopenharmony_ci    AddressInfo info2;
15202d43be4eSopenharmony_ci    info2.type = 6;
15212d43be4eSopenharmony_ci    ipInfoArray.push_back(info1);
15222d43be4eSopenharmony_ci    ipInfoArray.push_back(info2);
15232d43be4eSopenharmony_ci    std::string result = cellularMachine->GetIpType(ipInfoArray);
15242d43be4eSopenharmony_ci    ASSERT_EQ(result, "");
15252d43be4eSopenharmony_ci}
15262d43be4eSopenharmony_ci
15272d43be4eSopenharmony_ci/**
15282d43be4eSopenharmony_ci * @tc.number   CellularDataStateMachine_UpdateNetworkInfo_001
15292d43be4eSopenharmony_ci * @tc.name     test function branch
15302d43be4eSopenharmony_ci * @tc.desc     Function test
15312d43be4eSopenharmony_ci */
15322d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, CellularDataStateMachine_UpdateNetworkInfo_001, TestSize.Level0) {
15332d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
15342d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
15352d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
15362d43be4eSopenharmony_ci        cellularMachine->Init();
15372d43be4eSopenharmony_ci    }
15382d43be4eSopenharmony_ci    SetupDataCallResultInfo dataCallInfo;
15392d43be4eSopenharmony_ci    dataCallInfo.address = "";
15402d43be4eSopenharmony_ci    dataCallInfo.dns = "";
15412d43be4eSopenharmony_ci    dataCallInfo.dnsSec = "";
15422d43be4eSopenharmony_ci    dataCallInfo.gateway = "";
15432d43be4eSopenharmony_ci    cellularMachine->UpdateNetworkInfo(dataCallInfo);
15442d43be4eSopenharmony_ci    ASSERT_EQ(cellularMachine->cause_, 0);
15452d43be4eSopenharmony_ci}
15462d43be4eSopenharmony_ci
15472d43be4eSopenharmony_ci/**
15482d43be4eSopenharmony_ci * @tc.number   CellularDataStateMachine_UpdateNetworkInfo_002
15492d43be4eSopenharmony_ci * @tc.name     test function branch
15502d43be4eSopenharmony_ci * @tc.desc     Function test
15512d43be4eSopenharmony_ci */
15522d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, CellularDataStateMachine_UpdateNetworkInfo_002, TestSize.Level0) {
15532d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
15542d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
15552d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
15562d43be4eSopenharmony_ci        cellularMachine->Init();
15572d43be4eSopenharmony_ci    }
15582d43be4eSopenharmony_ci    SetupDataCallResultInfo dataCallInfo;
15592d43be4eSopenharmony_ci    dataCallInfo.address = "192.168.1.1";
15602d43be4eSopenharmony_ci    dataCallInfo.dns = "192.168.1.1";
15612d43be4eSopenharmony_ci    dataCallInfo.dnsSec = "192.168.1.1";
15622d43be4eSopenharmony_ci    dataCallInfo.gateway = "192.168.1.1";
15632d43be4eSopenharmony_ci    dataCallInfo.reason = 1;
15642d43be4eSopenharmony_ci    cellularMachine->UpdateNetworkInfo(dataCallInfo);
15652d43be4eSopenharmony_ci    ASSERT_EQ(cellularMachine->cause_, 1);
15662d43be4eSopenharmony_ci}
15672d43be4eSopenharmony_ci
15682d43be4eSopenharmony_ci/**
15692d43be4eSopenharmony_ci * @tc.number   CellularDataStateMachine_UpdateNetworkInfo_003
15702d43be4eSopenharmony_ci * @tc.name     test function branch
15712d43be4eSopenharmony_ci * @tc.desc     Function test
15722d43be4eSopenharmony_ci */
15732d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, CellularDataStateMachine_UpdateNetworkInfo_003, TestSize.Level0) {
15742d43be4eSopenharmony_ci    std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
15752d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> cellularMachine = machine->CreateCellularDataConnect(0);
15762d43be4eSopenharmony_ci    SetupDataCallResultInfo dataCallInfo;
15772d43be4eSopenharmony_ci    dataCallInfo.address = "192.168.1.1";
15782d43be4eSopenharmony_ci    dataCallInfo.dns = "192.168.1.1";
15792d43be4eSopenharmony_ci    dataCallInfo.dnsSec = "192.168.1.1";
15802d43be4eSopenharmony_ci    dataCallInfo.gateway = "192.168.1.1";
15812d43be4eSopenharmony_ci    dataCallInfo.reason = 1;
15822d43be4eSopenharmony_ci    cellularMachine->UpdateNetworkInfo(dataCallInfo);
15832d43be4eSopenharmony_ci    ASSERT_EQ(cellularMachine->cause_, 0);
15842d43be4eSopenharmony_ci}
15852d43be4eSopenharmony_ci
15862d43be4eSopenharmony_ci/**
15872d43be4eSopenharmony_ci * @tc.number   CellularDataStateMachine_UpdateNetworkInfo_004
15882d43be4eSopenharmony_ci * @tc.name     test function branch
15892d43be4eSopenharmony_ci * @tc.desc     Function test
15902d43be4eSopenharmony_ci */
15912d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, CellularDataStateMachine_UpdateNetworkInfo_004, TestSize.Level0) {
15922d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
15932d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
15942d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
15952d43be4eSopenharmony_ci        cellularMachine->Init();
15962d43be4eSopenharmony_ci    }
15972d43be4eSopenharmony_ci    cellularMachine->netSupplierInfo_->isAvailable_ = true;
15982d43be4eSopenharmony_ci    cellularMachine->UpdateNetworkInfo();
15992d43be4eSopenharmony_ci    ASSERT_NE(cellularMachine->netSupplierInfo_, nullptr);
16002d43be4eSopenharmony_ci}
16012d43be4eSopenharmony_ci
16022d43be4eSopenharmony_ci/**
16032d43be4eSopenharmony_ci * @tc.number   CellularDataStateMachine_UpdateNetworkInfo_005
16042d43be4eSopenharmony_ci * @tc.name     test function branch
16052d43be4eSopenharmony_ci * @tc.desc     Function test
16062d43be4eSopenharmony_ci */
16072d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, CellularDataStateMachine_UpdateNetworkInfo_005, TestSize.Level0) {
16082d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
16092d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
16102d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
16112d43be4eSopenharmony_ci        cellularMachine->Init();
16122d43be4eSopenharmony_ci    }
16132d43be4eSopenharmony_ci    cellularMachine->netSupplierInfo_->isAvailable_ = false;
16142d43be4eSopenharmony_ci    cellularMachine->UpdateNetworkInfo();
16152d43be4eSopenharmony_ci    ASSERT_NE(cellularMachine->netSupplierInfo_, nullptr);
16162d43be4eSopenharmony_ci}
16172d43be4eSopenharmony_ci
16182d43be4eSopenharmony_ci/**
16192d43be4eSopenharmony_ci * @tc.number   CellularDataStateMachine_ResolveRoute_001
16202d43be4eSopenharmony_ci * @tc.name     test function branch
16212d43be4eSopenharmony_ci * @tc.desc     Function test
16222d43be4eSopenharmony_ci */
16232d43be4eSopenharmony_ci HWTEST_F(CellularStateMachineTest, CellularDataStateMachine_ResolveRoute_001, TestSize.Level0)
16242d43be4eSopenharmony_ci{
16252d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
16262d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
16272d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
16282d43be4eSopenharmony_ci        cellularMachine->Init();
16292d43be4eSopenharmony_ci    }
16302d43be4eSopenharmony_ci    std::vector<AddressInfo> routeInfoArray;
16312d43be4eSopenharmony_ci    cellularMachine->ResolveRoute(routeInfoArray, "eth0");
16322d43be4eSopenharmony_ci    EXPECT_TRUE(cellularMachine->netLinkInfo_->routeList_.empty());
16332d43be4eSopenharmony_ci}
16342d43be4eSopenharmony_ci
16352d43be4eSopenharmony_ci/**
16362d43be4eSopenharmony_ci * @tc.number   CellularDataStateMachine_ResolveRoute_002
16372d43be4eSopenharmony_ci * @tc.name     test function branch
16382d43be4eSopenharmony_ci * @tc.desc     Function test
16392d43be4eSopenharmony_ci */
16402d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, CellularDataStateMachine_ResolveRoute_002, TestSize.Level0)
16412d43be4eSopenharmony_ci{
16422d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
16432d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
16442d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
16452d43be4eSopenharmony_ci        cellularMachine->Init();
16462d43be4eSopenharmony_ci    }
16472d43be4eSopenharmony_ci    std::vector<AddressInfo> routeInfoArray;
16482d43be4eSopenharmony_ci    AddressInfo routeInfo;
16492d43be4eSopenharmony_ci    routeInfo.ip = "192.168.1.1";
16502d43be4eSopenharmony_ci    routeInfo.type = INetAddr::IpType::IPV4;
16512d43be4eSopenharmony_ci    routeInfo.prefixLen = 24;
16522d43be4eSopenharmony_ci    routeInfoArray.push_back(routeInfo);
16532d43be4eSopenharmony_ci    cellularMachine->ResolveRoute(routeInfoArray, "eth0");
16542d43be4eSopenharmony_ci    EXPECT_FALSE(cellularMachine->netLinkInfo_->routeList_.empty());
16552d43be4eSopenharmony_ci}
16562d43be4eSopenharmony_ci
16572d43be4eSopenharmony_ci/**
16582d43be4eSopenharmony_ci * @tc.number   CellularDataStateMachine_ResolveRoute_003
16592d43be4eSopenharmony_ci * @tc.name     test function branch
16602d43be4eSopenharmony_ci * @tc.desc     Function test
16612d43be4eSopenharmony_ci */
16622d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, CellularDataStateMachine_ResolveRoute_003, TestSize.Level0)
16632d43be4eSopenharmony_ci{
16642d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
16652d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
16662d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
16672d43be4eSopenharmony_ci        cellularMachine->Init();
16682d43be4eSopenharmony_ci    }
16692d43be4eSopenharmony_ci    std::vector<AddressInfo> routeInfoArray;
16702d43be4eSopenharmony_ci    AddressInfo routeInfo1;
16712d43be4eSopenharmony_ci    routeInfo1.ip = "192.168.1.1";
16722d43be4eSopenharmony_ci    routeInfo1.type = INetAddr::IpType::IPV4;
16732d43be4eSopenharmony_ci    routeInfo1.prefixLen = 24;
16742d43be4eSopenharmony_ci    routeInfoArray.push_back(routeInfo1);
16752d43be4eSopenharmony_ci    AddressInfo routeInfo2;
16762d43be4eSopenharmony_ci    routeInfo2.ip = "2001:db8::1";
16772d43be4eSopenharmony_ci    routeInfo2.type = INetAddr::IpType::IPV6;
16782d43be4eSopenharmony_ci    routeInfo2.prefixLen = 64;
16792d43be4eSopenharmony_ci    routeInfoArray.push_back(routeInfo2);
16802d43be4eSopenharmony_ci    cellularMachine->ResolveRoute(routeInfoArray, "eth0");
16812d43be4eSopenharmony_ci    EXPECT_EQ(cellularMachine->netLinkInfo_->routeList_.size(), 2);
16822d43be4eSopenharmony_ci}
16832d43be4eSopenharmony_ci
16842d43be4eSopenharmony_ci/**
16852d43be4eSopenharmony_ci * @tc.number   CellularDataStateMachine_UpdateNetworkInfoIfInActive_001
16862d43be4eSopenharmony_ci * @tc.name     test function branch
16872d43be4eSopenharmony_ci * @tc.desc     Function test
16882d43be4eSopenharmony_ci */
16892d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, CellularDataStateMachine_UpdateNetworkInfoIfInActive_001, TestSize.Level0)
16902d43be4eSopenharmony_ci{
16912d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
16922d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
16932d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
16942d43be4eSopenharmony_ci        cellularMachine->Init();
16952d43be4eSopenharmony_ci    }
16962d43be4eSopenharmony_ci    SetupDataCallResultInfo dataCallInfo;
16972d43be4eSopenharmony_ci    cellularMachine->UpdateNetworkInfoIfInActive(dataCallInfo);
16982d43be4eSopenharmony_ci    EXPECT_NE(cellularMachine->stateMachineEventHandler_, nullptr);
16992d43be4eSopenharmony_ci}
17002d43be4eSopenharmony_ci
17012d43be4eSopenharmony_ci/**
17022d43be4eSopenharmony_ci * @tc.number   CellularDataStateMachine_UpdateNetworkInfoIfInActive_002
17032d43be4eSopenharmony_ci * @tc.name     test function branch
17042d43be4eSopenharmony_ci * @tc.desc     Function test
17052d43be4eSopenharmony_ci */
17062d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, CellularDataStateMachine_UpdateNetworkInfoIfInActive_002, TestSize.Level0)
17072d43be4eSopenharmony_ci{
17082d43be4eSopenharmony_ci    std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
17092d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> cellularMachine = machine->CreateCellularDataConnect(0);
17102d43be4eSopenharmony_ci    SetupDataCallResultInfo dataCallInfo;
17112d43be4eSopenharmony_ci    cellularMachine->stateMachineEventHandler_ = nullptr;
17122d43be4eSopenharmony_ci    cellularMachine->UpdateNetworkInfoIfInActive(dataCallInfo);
17132d43be4eSopenharmony_ci    EXPECT_EQ(cellularMachine->stateMachineEventHandler_, nullptr);
17142d43be4eSopenharmony_ci}
17152d43be4eSopenharmony_ci
17162d43be4eSopenharmony_ci/**
17172d43be4eSopenharmony_ci * @tc.number   CellularDataStateMachine_DoConnect_001
17182d43be4eSopenharmony_ci * @tc.name     test function branch
17192d43be4eSopenharmony_ci * @tc.desc     Function test
17202d43be4eSopenharmony_ci */
17212d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, CellularDataStateMachine_SplitProxyIpAddress_001, TestSize.Level0)
17222d43be4eSopenharmony_ci{
17232d43be4eSopenharmony_ci    std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
17242d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> cellularMachine = machine->CreateCellularDataConnect(0);
17252d43be4eSopenharmony_ci    std::string proxyIpAddress = "";
17262d43be4eSopenharmony_ci    std::string host;
17272d43be4eSopenharmony_ci    uint16_t port;
17282d43be4eSopenharmony_ci    cellularMachine->SplitProxyIpAddress(proxyIpAddress, host, port);
17292d43be4eSopenharmony_ci    ASSERT_EQ(host, "");
17302d43be4eSopenharmony_ci    ASSERT_EQ(port, 0);
17312d43be4eSopenharmony_ci}
17322d43be4eSopenharmony_ci
17332d43be4eSopenharmony_ci/**
17342d43be4eSopenharmony_ci * @tc.number   CellularDataStateMachine_DoConnect_001
17352d43be4eSopenharmony_ci * @tc.name     test function branch
17362d43be4eSopenharmony_ci * @tc.desc     Function test
17372d43be4eSopenharmony_ci */
17382d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, CellularDataStateMachine_SplitProxyIpAddress_002, TestSize.Level0)
17392d43be4eSopenharmony_ci{
17402d43be4eSopenharmony_ci    std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
17412d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> cellularMachine = machine->CreateCellularDataConnect(0);
17422d43be4eSopenharmony_ci    std::string proxyIpAddress = "192.168.1.1";
17432d43be4eSopenharmony_ci    std::string host;
17442d43be4eSopenharmony_ci    uint16_t port;
17452d43be4eSopenharmony_ci    cellularMachine->SplitProxyIpAddress(proxyIpAddress, host, port);
17462d43be4eSopenharmony_ci    ASSERT_EQ(host, "192.168.1.1");
17472d43be4eSopenharmony_ci    ASSERT_EQ(port, 0);
17482d43be4eSopenharmony_ci}
17492d43be4eSopenharmony_ci
17502d43be4eSopenharmony_ci/**
17512d43be4eSopenharmony_ci * @tc.number   CellularDataStateMachine_DoConnect_001
17522d43be4eSopenharmony_ci * @tc.name     test function branch
17532d43be4eSopenharmony_ci * @tc.desc     Function test
17542d43be4eSopenharmony_ci */
17552d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, CellularDataStateMachine_SplitProxyIpAddress_003, TestSize.Level0)
17562d43be4eSopenharmony_ci{
17572d43be4eSopenharmony_ci    std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
17582d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> cellularMachine = machine->CreateCellularDataConnect(0);
17592d43be4eSopenharmony_ci    std::string proxyIpAddress = "192.168.1.1:8080";
17602d43be4eSopenharmony_ci    std::string host;
17612d43be4eSopenharmony_ci    uint16_t port;
17622d43be4eSopenharmony_ci    cellularMachine->SplitProxyIpAddress(proxyIpAddress, host, port);
17632d43be4eSopenharmony_ci    ASSERT_EQ(host, "192.168.1.1");
17642d43be4eSopenharmony_ci    ASSERT_EQ(port, 8080);
17652d43be4eSopenharmony_ci}
17662d43be4eSopenharmony_ci
17672d43be4eSopenharmony_ci/**
17682d43be4eSopenharmony_ci * @tc.number   IncallDataStateMachine_IsSecondaryCanActiveData_001
17692d43be4eSopenharmony_ci * @tc.name     test function branch
17702d43be4eSopenharmony_ci * @tc.desc     Function test
17712d43be4eSopenharmony_ci */
17722d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, IncallDataStateMachine_IsSecondaryCanActiveData_001, TestSize.Level0)
17732d43be4eSopenharmony_ci{
17742d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachineTest> incallStateMachineTest = std::make_shared<IncallDataStateMachineTest>();
17752d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
17762d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
17772d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetDsdsMode(_)).Times(AtLeast(1))
17782d43be4eSopenharmony_ci        .WillOnce([](int32_t &dsdsMode) {
17792d43be4eSopenharmony_ci            dsdsMode = static_cast<int32_t>(DsdsMode::DSDS_MODE_V3);
17802d43be4eSopenharmony_ci            return 0;
17812d43be4eSopenharmony_ci        });
17822d43be4eSopenharmony_ci    auto result = incallStateMachine->IsSecondaryCanActiveData();
17832d43be4eSopenharmony_ci    ASSERT_EQ(result, false);
17842d43be4eSopenharmony_ci}
17852d43be4eSopenharmony_ci
17862d43be4eSopenharmony_ci/**
17872d43be4eSopenharmony_ci * @tc.number   IncallDataStateMachine_IsSecondaryCanActiveData_002
17882d43be4eSopenharmony_ci * @tc.name     test function branch
17892d43be4eSopenharmony_ci * @tc.desc     Function test
17902d43be4eSopenharmony_ci */
17912d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, IncallDataStateMachine_IsSecondaryCanActiveData_002, TestSize.Level0)
17922d43be4eSopenharmony_ci{
17932d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachineTest> incallStateMachineTest = std::make_shared<IncallDataStateMachineTest>();
17942d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
17952d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
17962d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetDsdsMode(_)).Times(AtLeast(1))
17972d43be4eSopenharmony_ci        .WillOnce([](int32_t &dsdsMode) {
17982d43be4eSopenharmony_ci            dsdsMode = static_cast<int32_t>(DsdsMode::DSDS_MODE_V2);
17992d43be4eSopenharmony_ci            return 0;
18002d43be4eSopenharmony_ci        });
18012d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetPrimarySlotId(_)).Times(AtLeast(1))
18022d43be4eSopenharmony_ci        .WillOnce([](int32_t &slotId) {
18032d43be4eSopenharmony_ci            slotId = INVALID_SLOT_ID;
18042d43be4eSopenharmony_ci            return 0;
18052d43be4eSopenharmony_ci        });
18062d43be4eSopenharmony_ci    auto result = incallStateMachine->IsSecondaryCanActiveData();
18072d43be4eSopenharmony_ci    ASSERT_EQ(result, false);
18082d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetPrimarySlotId(_)).Times(AtLeast(1))
18092d43be4eSopenharmony_ci        .WillOnce([](int32_t &slotId) {
18102d43be4eSopenharmony_ci            slotId = 0;
18112d43be4eSopenharmony_ci            return 0;
18122d43be4eSopenharmony_ci        });
18132d43be4eSopenharmony_ci    result = incallStateMachine->IsSecondaryCanActiveData();
18142d43be4eSopenharmony_ci    ASSERT_EQ(result, false);
18152d43be4eSopenharmony_ci}
18162d43be4eSopenharmony_ci
18172d43be4eSopenharmony_ci/**
18182d43be4eSopenharmony_ci * @tc.number   IncallDataStateMachine_IsSecondaryCanActiveData_002
18192d43be4eSopenharmony_ci * @tc.name     test function branch
18202d43be4eSopenharmony_ci * @tc.desc     Function test
18212d43be4eSopenharmony_ci */
18222d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, IncallDataStateMachine_IsSecondaryCanActiveData_003, TestSize.Level0)
18232d43be4eSopenharmony_ci{
18242d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachineTest> incallStateMachineTest = std::make_shared<IncallDataStateMachineTest>();
18252d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
18262d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
18272d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetDsdsMode(_)).Times(AtLeast(1))
18282d43be4eSopenharmony_ci        .WillOnce([](int32_t &dsdsMode) {
18292d43be4eSopenharmony_ci            dsdsMode = static_cast<int32_t>(DsdsMode::DSDS_MODE_V2);
18302d43be4eSopenharmony_ci            return 0;
18312d43be4eSopenharmony_ci        });
18322d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetPrimarySlotId(_)).Times(AtLeast(1))
18332d43be4eSopenharmony_ci        .WillOnce([](int32_t &slotId) {
18342d43be4eSopenharmony_ci            slotId = 1;
18352d43be4eSopenharmony_ci            return 0;
18362d43be4eSopenharmony_ci        });
18372d43be4eSopenharmony_ci    auto result = incallStateMachine->IsSecondaryCanActiveData();
18382d43be4eSopenharmony_ci    ASSERT_EQ(result, false);
18392d43be4eSopenharmony_ci}
18402d43be4eSopenharmony_ci
18412d43be4eSopenharmony_ci/**
18422d43be4eSopenharmony_ci * @tc.number   IncallDataStateMachine_IsSecondaryCanActiveData_004
18432d43be4eSopenharmony_ci * @tc.name     test function branch
18442d43be4eSopenharmony_ci * @tc.desc     Function test
18452d43be4eSopenharmony_ci */
18462d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, IncallDataStateMachine_IsSecondaryCanActiveData_004, TestSize.Level0)
18472d43be4eSopenharmony_ci{
18482d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachineTest> incallStateMachineTest = std::make_shared<IncallDataStateMachineTest>();
18492d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
18502d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
18512d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetDsdsMode(_)).Times(AtLeast(1))
18522d43be4eSopenharmony_ci        .WillOnce([](int32_t &dsdsMode) {
18532d43be4eSopenharmony_ci            dsdsMode = static_cast<int32_t>(DsdsMode::DSDS_MODE_V2);
18542d43be4eSopenharmony_ci            return 0;
18552d43be4eSopenharmony_ci        });
18562d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetPrimarySlotId(_)).Times(AtLeast(1))
18572d43be4eSopenharmony_ci        .WillOnce([](int32_t &slotId) {
18582d43be4eSopenharmony_ci            slotId = 1;
18592d43be4eSopenharmony_ci            return 0;
18602d43be4eSopenharmony_ci        });
18612d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, HasSimCard(_, _)).Times(AtLeast(1))
18622d43be4eSopenharmony_ci        .WillOnce([](int32_t slotId, bool &hasSimCard) {
18632d43be4eSopenharmony_ci            hasSimCard = true;
18642d43be4eSopenharmony_ci            return 0;
18652d43be4eSopenharmony_ci        });
18662d43be4eSopenharmony_ci    EXPECT_CALL(*mockNetworkSearchManager, GetImsRegStatus(_, _, _)).Times(AtLeast(2))
18672d43be4eSopenharmony_ci        .WillOnce([](int32_t slotId, ImsServiceType imsSrvType, ImsRegInfo &info) {
18682d43be4eSopenharmony_ci            switch (imsSrvType) {
18692d43be4eSopenharmony_ci                case ImsServiceType::TYPE_VOICE:
18702d43be4eSopenharmony_ci                    info.imsRegState = ImsRegState::IMS_UNREGISTERED;
18712d43be4eSopenharmony_ci                    break;
18722d43be4eSopenharmony_ci                case ImsServiceType::TYPE_VIDEO:
18732d43be4eSopenharmony_ci                    info.imsRegState = ImsRegState::IMS_UNREGISTERED;
18742d43be4eSopenharmony_ci                    break;
18752d43be4eSopenharmony_ci                default:
18762d43be4eSopenharmony_ci                    break;
18772d43be4eSopenharmony_ci            }
18782d43be4eSopenharmony_ci            return 0;
18792d43be4eSopenharmony_ci        });
18802d43be4eSopenharmony_ci    auto result = incallStateMachine->IsSecondaryCanActiveData();
18812d43be4eSopenharmony_ci    ASSERT_EQ(result, false);
18822d43be4eSopenharmony_ci}
18832d43be4eSopenharmony_ci
18842d43be4eSopenharmony_ci/**
18852d43be4eSopenharmony_ci * @tc.number   IncallDataStateMachine_IsSecondaryCanActiveData_004
18862d43be4eSopenharmony_ci * @tc.name     test function branch
18872d43be4eSopenharmony_ci * @tc.desc     Function test
18882d43be4eSopenharmony_ci */
18892d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, IncallDataStateMachine_IsSecondaryCanActiveData_005, TestSize.Level0)
18902d43be4eSopenharmony_ci{
18912d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachineTest> incallStateMachineTest = std::make_shared<IncallDataStateMachineTest>();
18922d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
18932d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
18942d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetDsdsMode(_)).Times(AtLeast(1))
18952d43be4eSopenharmony_ci        .WillOnce([](int32_t &dsdsMode) {
18962d43be4eSopenharmony_ci            dsdsMode = static_cast<int32_t>(DsdsMode::DSDS_MODE_V2);
18972d43be4eSopenharmony_ci            return 0;
18982d43be4eSopenharmony_ci        });
18992d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetPrimarySlotId(_)).Times(AtLeast(1))
19002d43be4eSopenharmony_ci        .WillOnce([](int32_t &slotId) {
19012d43be4eSopenharmony_ci            slotId = 1;
19022d43be4eSopenharmony_ci            return 0;
19032d43be4eSopenharmony_ci        });
19042d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, HasSimCard(_, _)).Times(AtLeast(1))
19052d43be4eSopenharmony_ci        .WillOnce([](int32_t slotId, bool &hasSimCard) {
19062d43be4eSopenharmony_ci            hasSimCard = true;
19072d43be4eSopenharmony_ci            return 0;
19082d43be4eSopenharmony_ci        });
19092d43be4eSopenharmony_ci    EXPECT_CALL(*mockNetworkSearchManager, GetImsRegStatus(_, _, _)).Times(AtLeast(2))
19102d43be4eSopenharmony_ci        .WillOnce([](int32_t slotId, ImsServiceType imsSrvType, ImsRegInfo &info) {
19112d43be4eSopenharmony_ci            switch (imsSrvType) {
19122d43be4eSopenharmony_ci                case ImsServiceType::TYPE_VOICE:
19132d43be4eSopenharmony_ci                    info.imsRegState = ImsRegState::IMS_REGISTERED ;
19142d43be4eSopenharmony_ci                    break;
19152d43be4eSopenharmony_ci                case ImsServiceType::TYPE_VIDEO:
19162d43be4eSopenharmony_ci                    info.imsRegState = ImsRegState::IMS_UNREGISTERED;
19172d43be4eSopenharmony_ci                    break;
19182d43be4eSopenharmony_ci                default:
19192d43be4eSopenharmony_ci                    break;
19202d43be4eSopenharmony_ci            }
19212d43be4eSopenharmony_ci            return 0;
19222d43be4eSopenharmony_ci        });
19232d43be4eSopenharmony_ci    auto result = incallStateMachine->IsSecondaryCanActiveData();
19242d43be4eSopenharmony_ci    ASSERT_EQ(result, false);
19252d43be4eSopenharmony_ci}
19262d43be4eSopenharmony_ci
19272d43be4eSopenharmony_ci/**
19282d43be4eSopenharmony_ci * @tc.number   IncallDataStateMachine_IsSecondaryCanActiveData_004
19292d43be4eSopenharmony_ci * @tc.name     test function branch
19302d43be4eSopenharmony_ci * @tc.desc     Function test
19312d43be4eSopenharmony_ci */
19322d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, IncallDataStateMachine_IsSecondaryCanActiveData_006, TestSize.Level0)
19332d43be4eSopenharmony_ci{
19342d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachineTest> incallStateMachineTest = std::make_shared<IncallDataStateMachineTest>();
19352d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
19362d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
19372d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetDsdsMode(_)).Times(AtLeast(1))
19382d43be4eSopenharmony_ci        .WillOnce([](int32_t &dsdsMode) {
19392d43be4eSopenharmony_ci            dsdsMode = static_cast<int32_t>(DsdsMode::DSDS_MODE_V2);
19402d43be4eSopenharmony_ci            return 0;
19412d43be4eSopenharmony_ci        });
19422d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetPrimarySlotId(_)).Times(AtLeast(1))
19432d43be4eSopenharmony_ci        .WillOnce([](int32_t &slotId) {
19442d43be4eSopenharmony_ci            slotId = 1;
19452d43be4eSopenharmony_ci            return 0;
19462d43be4eSopenharmony_ci        });
19472d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, HasSimCard(_, _)).Times(AtLeast(1))
19482d43be4eSopenharmony_ci        .WillOnce([](int32_t slotId, bool &hasSimCard) {
19492d43be4eSopenharmony_ci            hasSimCard = true;
19502d43be4eSopenharmony_ci            return 0;
19512d43be4eSopenharmony_ci        });
19522d43be4eSopenharmony_ci    EXPECT_CALL(*mockNetworkSearchManager, GetImsRegStatus(_, _, _)).Times(AtLeast(2))
19532d43be4eSopenharmony_ci        .WillOnce([](int32_t slotId, ImsServiceType imsSrvType, ImsRegInfo &info) {
19542d43be4eSopenharmony_ci            switch (imsSrvType) {
19552d43be4eSopenharmony_ci                case ImsServiceType::TYPE_VOICE:
19562d43be4eSopenharmony_ci                    info.imsRegState = ImsRegState::IMS_REGISTERED ;
19572d43be4eSopenharmony_ci                    break;
19582d43be4eSopenharmony_ci                case ImsServiceType::TYPE_VIDEO:
19592d43be4eSopenharmony_ci                    info.imsRegState = ImsRegState::IMS_REGISTERED;
19602d43be4eSopenharmony_ci                    break;
19612d43be4eSopenharmony_ci                default:
19622d43be4eSopenharmony_ci                    break;
19632d43be4eSopenharmony_ci            }
19642d43be4eSopenharmony_ci            return 0;
19652d43be4eSopenharmony_ci        });
19662d43be4eSopenharmony_ci    incallStateMachine->callState_ = static_cast<int32_t>(TelCallStatus::CALL_STATUS_IDLE);
19672d43be4eSopenharmony_ci    auto result = incallStateMachine->IsSecondaryCanActiveData();
19682d43be4eSopenharmony_ci    ASSERT_EQ(result, false);
19692d43be4eSopenharmony_ci    incallStateMachine->callState_ = static_cast<int32_t>(TelCallStatus::CALL_STATUS_DISCONNECTED);
19702d43be4eSopenharmony_ci    result = incallStateMachine->IsSecondaryCanActiveData();
19712d43be4eSopenharmony_ci    ASSERT_EQ(result, false);
19722d43be4eSopenharmony_ci    incallStateMachine->callState_ = static_cast<int32_t>(TelCallStatus::CALL_STATUS_DIALING);
19732d43be4eSopenharmony_ci    result = incallStateMachine->IsSecondaryCanActiveData();
19742d43be4eSopenharmony_ci    ASSERT_EQ(result, false);
19752d43be4eSopenharmony_ci}
19762d43be4eSopenharmony_ci
19772d43be4eSopenharmony_ci/**
19782d43be4eSopenharmony_ci * @tc.number   IncallDataStateMachine_IsSecondaryCanActiveData_004
19792d43be4eSopenharmony_ci * @tc.name     test function branch
19802d43be4eSopenharmony_ci * @tc.desc     Function test
19812d43be4eSopenharmony_ci */
19822d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, IncallDataStateMachine_IsSecondaryCanActiveData_007, TestSize.Level0)
19832d43be4eSopenharmony_ci{
19842d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachineTest> incallStateMachineTest = std::make_shared<IncallDataStateMachineTest>();
19852d43be4eSopenharmony_ci    std::shared_ptr<IncallDataStateMachine> incallStateMachine =
19862d43be4eSopenharmony_ci        incallStateMachineTest->CreateIncallDataStateMachine(0);
19872d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetDsdsMode(_)).Times(AtLeast(1))
19882d43be4eSopenharmony_ci        .WillOnce([](int32_t &dsdsMode) {
19892d43be4eSopenharmony_ci            dsdsMode = static_cast<int32_t>(DsdsMode::DSDS_MODE_V2);
19902d43be4eSopenharmony_ci            return 0;
19912d43be4eSopenharmony_ci        });
19922d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetPrimarySlotId(_)).Times(AtLeast(1))
19932d43be4eSopenharmony_ci        .WillOnce([](int32_t &slotId) {
19942d43be4eSopenharmony_ci            slotId = 1;
19952d43be4eSopenharmony_ci            return 0;
19962d43be4eSopenharmony_ci        });
19972d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, HasSimCard(_, _)).Times(AtLeast(1))
19982d43be4eSopenharmony_ci        .WillOnce([](int32_t slotId, bool &hasSimCard) {
19992d43be4eSopenharmony_ci            hasSimCard = true;
20002d43be4eSopenharmony_ci            return 0;
20012d43be4eSopenharmony_ci        });
20022d43be4eSopenharmony_ci    EXPECT_CALL(*mockNetworkSearchManager, GetImsRegStatus(_, _, _)).Times(AtLeast(2))
20032d43be4eSopenharmony_ci        .WillOnce([](int32_t slotId, ImsServiceType imsSrvType, ImsRegInfo &info) {
20042d43be4eSopenharmony_ci            switch (imsSrvType) {
20052d43be4eSopenharmony_ci                case ImsServiceType::TYPE_VOICE:
20062d43be4eSopenharmony_ci                    info.imsRegState = ImsRegState::IMS_REGISTERED ;
20072d43be4eSopenharmony_ci                    break;
20082d43be4eSopenharmony_ci                case ImsServiceType::TYPE_VIDEO:
20092d43be4eSopenharmony_ci                    info.imsRegState = ImsRegState::IMS_REGISTERED;
20102d43be4eSopenharmony_ci                    break;
20112d43be4eSopenharmony_ci                default:
20122d43be4eSopenharmony_ci                    break;
20132d43be4eSopenharmony_ci            }
20142d43be4eSopenharmony_ci            return 0;
20152d43be4eSopenharmony_ci        });
20162d43be4eSopenharmony_ci    EXPECT_CALL(*mockNetworkSearchManager, GetPsRadioTech(_, _)).Times(AtLeast(1))
20172d43be4eSopenharmony_ci        .WillOnce([](int32_t slotId, int32_t &psRadioTech) {
20182d43be4eSopenharmony_ci            psRadioTech = static_cast<int32_t>(RadioTech::RADIO_TECHNOLOGY_LTE);
20192d43be4eSopenharmony_ci            return 0;
20202d43be4eSopenharmony_ci        });
20212d43be4eSopenharmony_ci    incallStateMachine->callState_ = static_cast<int32_t>(TelCallStatus::CALL_STATUS_DIALING);
20222d43be4eSopenharmony_ci    auto result = incallStateMachine->IsSecondaryCanActiveData();
20232d43be4eSopenharmony_ci    ASSERT_EQ(result, true);
20242d43be4eSopenharmony_ci}
20252d43be4eSopenharmony_ci
20262d43be4eSopenharmony_ci/**
20272d43be4eSopenharmony_ci * @tc.number   CellularDataStateMachine_GetMtuSizeFromOpCfg_001
20282d43be4eSopenharmony_ci * @tc.name     test function branch
20292d43be4eSopenharmony_ci * @tc.desc     Function test
20302d43be4eSopenharmony_ci */
20312d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, CellularDataStateMachine_GetMtuSizeFromOpCfg_001, TestSize.Level0)
20322d43be4eSopenharmony_ci{
20332d43be4eSopenharmony_ci    int32_t mtuSize = 0;
20342d43be4eSopenharmony_ci    int32_t slotId = 0;
20352d43be4eSopenharmony_ci    std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
20362d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> cellularMachine = machine->CreateCellularDataConnect(0);
20372d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetOperatorConfigs(_, _)).Times(AtLeast(1))
20382d43be4eSopenharmony_ci        .WillOnce([](int32_t slotId, OperatorConfig &poc) {
20392d43be4eSopenharmony_ci            poc.stringValue[KEY_MTU_SIZE_STRING] = "ipv4:1500;ipv6:1400";
20402d43be4eSopenharmony_ci            return 0;
20412d43be4eSopenharmony_ci        });
20422d43be4eSopenharmony_ci    cellularMachine->ipType_ = "ipv4";
20432d43be4eSopenharmony_ci    cellularMachine->GetMtuSizeFromOpCfg(mtuSize, slotId);
20442d43be4eSopenharmony_ci    ASSERT_EQ(mtuSize, 1500);
20452d43be4eSopenharmony_ci}
20462d43be4eSopenharmony_ci
20472d43be4eSopenharmony_ci/**
20482d43be4eSopenharmony_ci * @tc.number   CellularDataStateMachine_GetMtuSizeFromOpCfg_002
20492d43be4eSopenharmony_ci * @tc.name     test function branch
20502d43be4eSopenharmony_ci * @tc.desc     Function test
20512d43be4eSopenharmony_ci */
20522d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, CellularDataStateMachine_GetMtuSizeFromOpCfg_002, TestSize.Level0)
20532d43be4eSopenharmony_ci{
20542d43be4eSopenharmony_ci    int32_t mtuSize = 0;
20552d43be4eSopenharmony_ci    int32_t slotId = 0;
20562d43be4eSopenharmony_ci    std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
20572d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> cellularMachine = machine->CreateCellularDataConnect(0);
20582d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetOperatorConfigs(_, _)).Times(AtLeast(1))
20592d43be4eSopenharmony_ci        .WillOnce([](int32_t slotId, OperatorConfig &poc) {
20602d43be4eSopenharmony_ci            poc.stringValue[KEY_MTU_SIZE_STRING] = "ipv4:1500;ipv6:1400";
20612d43be4eSopenharmony_ci            return 0;
20622d43be4eSopenharmony_ci        });
20632d43be4eSopenharmony_ci    cellularMachine->ipType_ = "ipv6";
20642d43be4eSopenharmony_ci    cellularMachine->GetMtuSizeFromOpCfg(mtuSize, slotId);
20652d43be4eSopenharmony_ci    ASSERT_EQ(mtuSize, 1400);
20662d43be4eSopenharmony_ci}
20672d43be4eSopenharmony_ci
20682d43be4eSopenharmony_ci/**
20692d43be4eSopenharmony_ci * @tc.number   CellularDataStateMachine_GetMtuSizeFromOpCfg_003
20702d43be4eSopenharmony_ci * @tc.name     test function branch
20712d43be4eSopenharmony_ci * @tc.desc     Function test
20722d43be4eSopenharmony_ci */
20732d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, CellularDataStateMachine_GetMtuSizeFromOpCfg_003, TestSize.Level0)
20742d43be4eSopenharmony_ci{
20752d43be4eSopenharmony_ci    int32_t mtuSize = 0;
20762d43be4eSopenharmony_ci    int32_t slotId = 0;
20772d43be4eSopenharmony_ci    std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
20782d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> cellularMachine = machine->CreateCellularDataConnect(0);
20792d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetOperatorConfigs(_, _)).Times(AtLeast(1))
20802d43be4eSopenharmony_ci        .WillOnce([](int32_t slotId, OperatorConfig &poc) {
20812d43be4eSopenharmony_ci            poc.stringValue[KEY_MTU_SIZE_STRING] = "ipv4:1500;ipv6:1400";
20822d43be4eSopenharmony_ci            return 0;
20832d43be4eSopenharmony_ci        });
20842d43be4eSopenharmony_ci    cellularMachine->ipType_ = "ipv5";
20852d43be4eSopenharmony_ci    cellularMachine->GetMtuSizeFromOpCfg(mtuSize, slotId);
20862d43be4eSopenharmony_ci    ASSERT_EQ(mtuSize, 0);
20872d43be4eSopenharmony_ci}
20882d43be4eSopenharmony_ci
20892d43be4eSopenharmony_ci/**
20902d43be4eSopenharmony_ci * @tc.number   CellularDataStateMachine_GetMtuSizeFromOpCfg_004
20912d43be4eSopenharmony_ci * @tc.name     test function branch
20922d43be4eSopenharmony_ci * @tc.desc     Function test
20932d43be4eSopenharmony_ci */
20942d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, CellularDataStateMachine_GetMtuSizeFromOpCfg_004, TestSize.Level0)
20952d43be4eSopenharmony_ci{
20962d43be4eSopenharmony_ci    int32_t mtuSize = 0;
20972d43be4eSopenharmony_ci    int32_t slotId = 0;
20982d43be4eSopenharmony_ci    std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
20992d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> cellularMachine = machine->CreateCellularDataConnect(0);
21002d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetOperatorConfigs(_, _)).Times(AtLeast(1))
21012d43be4eSopenharmony_ci        .WillOnce([](int32_t slotId, OperatorConfig &poc) {
21022d43be4eSopenharmony_ci            poc.stringValue[KEY_MTU_SIZE_STRING] = "ipv4:abc;ipv6:1400";
21032d43be4eSopenharmony_ci            return 0;
21042d43be4eSopenharmony_ci        });
21052d43be4eSopenharmony_ci    cellularMachine->ipType_ = "ipv4";
21062d43be4eSopenharmony_ci    cellularMachine->GetMtuSizeFromOpCfg(mtuSize, slotId);
21072d43be4eSopenharmony_ci    ASSERT_EQ(mtuSize, 0);
21082d43be4eSopenharmony_ci}
21092d43be4eSopenharmony_ci
21102d43be4eSopenharmony_ci/**
21112d43be4eSopenharmony_ci * @tc.number   CellularDataStateMachine_GetNetScoreBySlotId_001
21122d43be4eSopenharmony_ci * @tc.name     test function branch
21132d43be4eSopenharmony_ci * @tc.desc     Function test
21142d43be4eSopenharmony_ci */
21152d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, CellularDataStateMachine_GetNetScoreBySlotId_001, TestSize.Level0)
21162d43be4eSopenharmony_ci{
21172d43be4eSopenharmony_ci    int32_t score;
21182d43be4eSopenharmony_ci    int32_t slotId = 0;
21192d43be4eSopenharmony_ci    std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
21202d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> cellularMachine = machine->CreateCellularDataConnect(0);
21212d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetDefaultCellularDataSlotId()).Times(AtLeast(1))
21222d43be4eSopenharmony_ci        .WillOnce([]() {
21232d43be4eSopenharmony_ci            return 0;
21242d43be4eSopenharmony_ci        });
21252d43be4eSopenharmony_ci    score = cellularMachine->GetNetScoreBySlotId(slotId);
21262d43be4eSopenharmony_ci    ASSERT_EQ(score, DEFAULT_INTERNET_CONNECTION_SCORE);
21272d43be4eSopenharmony_ci}
21282d43be4eSopenharmony_ci
21292d43be4eSopenharmony_ci/**
21302d43be4eSopenharmony_ci * @tc.number   CellularDataStateMachine_GetNetScoreBySlotId_002
21312d43be4eSopenharmony_ci * @tc.name     test function branch
21322d43be4eSopenharmony_ci * @tc.desc     Function test
21332d43be4eSopenharmony_ci */
21342d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, CellularDataStateMachine_GetNetScoreBySlotId_002, TestSize.Level0)
21352d43be4eSopenharmony_ci{
21362d43be4eSopenharmony_ci    int32_t score;
21372d43be4eSopenharmony_ci    int32_t slotId = 0;
21382d43be4eSopenharmony_ci    std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
21392d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> cellularMachine = machine->CreateCellularDataConnect(0);
21402d43be4eSopenharmony_ci    EXPECT_CALL(*mockSimManager, GetDefaultCellularDataSlotId()).Times(AtLeast(1))
21412d43be4eSopenharmony_ci        .WillOnce([]() {
21422d43be4eSopenharmony_ci            return 1;
21432d43be4eSopenharmony_ci        });
21442d43be4eSopenharmony_ci    score = cellularMachine->GetNetScoreBySlotId(slotId);
21452d43be4eSopenharmony_ci    ASSERT_EQ(score, OTHER_CONNECTION_SCORE);
21462d43be4eSopenharmony_ci}
21472d43be4eSopenharmony_ci
21482d43be4eSopenharmony_ci/**
21492d43be4eSopenharmony_ci * @tc.number   Default_ProcessUpdateNetworkInfo_001
21502d43be4eSopenharmony_ci * @tc.name     test function branch
21512d43be4eSopenharmony_ci * @tc.desc     Function test
21522d43be4eSopenharmony_ci */
21532d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Default_ProcessUpdateNetworkInfo_001, Function | MediumTest | Level1)
21542d43be4eSopenharmony_ci{
21552d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
21562d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
21572d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
21582d43be4eSopenharmony_ci        cellularMachine->Init();
21592d43be4eSopenharmony_ci        EXPECT_CALL(*mockSimManager, GetDefaultCellularDataSlotId()).Times(AtLeast(1))
21602d43be4eSopenharmony_ci        .WillOnce([]() {
21612d43be4eSopenharmony_ci            return 0;
21622d43be4eSopenharmony_ci        });
21632d43be4eSopenharmony_ci    }
21642d43be4eSopenharmony_ci    auto defaultState = static_cast<Default *>(cellularMachine->defaultState_.GetRefPtr());
21652d43be4eSopenharmony_ci    defaultState->stateMachine_ = cellularMachine;
21662d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_UPDATE_NETWORK_INFO);
21672d43be4eSopenharmony_ci    bool result = defaultState->ProcessUpdateNetworkInfo(event);
21682d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
21692d43be4eSopenharmony_ci}
21702d43be4eSopenharmony_ci} // namespace Telephony
21712d43be4eSopenharmony_ci} // namespace OHOS