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 "data_connection_manager.h"
232d43be4eSopenharmony_ci#include "default.h"
242d43be4eSopenharmony_ci#include "disconnecting.h"
252d43be4eSopenharmony_ci#include "gtest/gtest.h"
262d43be4eSopenharmony_ci#include "inactive.h"
272d43be4eSopenharmony_ci#include "incall_data_state_machine.h"
282d43be4eSopenharmony_ci#include "tel_event_handler.h"
292d43be4eSopenharmony_ci#include "telephony_types.h"
302d43be4eSopenharmony_ci
312d43be4eSopenharmony_cinamespace OHOS {
322d43be4eSopenharmony_cinamespace Telephony {
332d43be4eSopenharmony_ciusing namespace testing::ext;
342d43be4eSopenharmony_ci
352d43be4eSopenharmony_cistatic const int32_t SLEEP_TIME = 3;
362d43be4eSopenharmony_ci
372d43be4eSopenharmony_ciclass CellularStateMachineTest : public testing::Test {
382d43be4eSopenharmony_cipublic:
392d43be4eSopenharmony_ci    static void SetUpTestCase();
402d43be4eSopenharmony_ci    static void TearDownTestCase();
412d43be4eSopenharmony_ci    void SetUp();
422d43be4eSopenharmony_ci    void TearDown();
432d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> cellularMachine;
442d43be4eSopenharmony_ci};
452d43be4eSopenharmony_civoid CellularStateMachineTest::SetUpTestCase() {}
462d43be4eSopenharmony_ci
472d43be4eSopenharmony_civoid CellularStateMachineTest::TearDownTestCase()
482d43be4eSopenharmony_ci{
492d43be4eSopenharmony_ci    sleep(SLEEP_TIME);
502d43be4eSopenharmony_ci}
512d43be4eSopenharmony_ci
522d43be4eSopenharmony_civoid CellularStateMachineTest::SetUp() {}
532d43be4eSopenharmony_ci
542d43be4eSopenharmony_civoid CellularStateMachineTest::TearDown() {}
552d43be4eSopenharmony_ci
562d43be4eSopenharmony_ciclass CellularMachineTest : public TelEventHandler {
572d43be4eSopenharmony_cipublic:
582d43be4eSopenharmony_ci    CellularMachineTest() : TelEventHandler("CellularDataStateMachineTest") {}
592d43be4eSopenharmony_ci    ~CellularMachineTest() = default;
602d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> CreateCellularDataConnect(int32_t slotId);
612d43be4eSopenharmony_ci
622d43be4eSopenharmony_cipublic:
632d43be4eSopenharmony_ci    std::shared_ptr<CellularDataStateMachine> cellularDataStateMachine_ = nullptr;
642d43be4eSopenharmony_ci};
652d43be4eSopenharmony_ci
662d43be4eSopenharmony_cistd::shared_ptr<CellularDataStateMachine> CellularMachineTest::CreateCellularDataConnect(int32_t slotId)
672d43be4eSopenharmony_ci{
682d43be4eSopenharmony_ci    if (cellularDataStateMachine_ != nullptr) {
692d43be4eSopenharmony_ci        return cellularDataStateMachine_;
702d43be4eSopenharmony_ci    }
712d43be4eSopenharmony_ci    sptr<DataConnectionManager> connectionManager = std::make_unique<DataConnectionManager>(slotId).release();
722d43be4eSopenharmony_ci    if (connectionManager == nullptr) {
732d43be4eSopenharmony_ci        return nullptr;
742d43be4eSopenharmony_ci    }
752d43be4eSopenharmony_ci    connectionManager->Init();
762d43be4eSopenharmony_ci    cellularDataStateMachine_ = std::make_shared<CellularDataStateMachine>(
772d43be4eSopenharmony_ci        connectionManager, std::static_pointer_cast<TelEventHandler>(shared_from_this()));
782d43be4eSopenharmony_ci    return cellularDataStateMachine_;
792d43be4eSopenharmony_ci}
802d43be4eSopenharmony_ci
812d43be4eSopenharmony_ci/**
822d43be4eSopenharmony_ci * @tc.number   Active_RefreshTcpBufferSizes_001
832d43be4eSopenharmony_ci * @tc.name     test function branch
842d43be4eSopenharmony_ci * @tc.desc     Function test
852d43be4eSopenharmony_ci */
862d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_RefreshTcpBufferSizes_001, Function | MediumTest | Level1)
872d43be4eSopenharmony_ci{
882d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
892d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
902d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
912d43be4eSopenharmony_ci        cellularMachine->Init();
922d43be4eSopenharmony_ci    }
932d43be4eSopenharmony_ci    auto active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
942d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
952d43be4eSopenharmony_ci    active->RefreshTcpBufferSizes();
962d43be4eSopenharmony_ci    ASSERT_TRUE(cellularMachine != nullptr);
972d43be4eSopenharmony_ci}
982d43be4eSopenharmony_ci
992d43be4eSopenharmony_ci/**
1002d43be4eSopenharmony_ci * @tc.number   Activating_StateBegin_001
1012d43be4eSopenharmony_ci * @tc.name     test function branch
1022d43be4eSopenharmony_ci * @tc.desc     Function test
1032d43be4eSopenharmony_ci */
1042d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Activating_StateBegin_001, Function | MediumTest | Level1)
1052d43be4eSopenharmony_ci{
1062d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
1072d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
1082d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
1092d43be4eSopenharmony_ci        cellularMachine->Init();
1102d43be4eSopenharmony_ci    }
1112d43be4eSopenharmony_ci    auto activating = static_cast<Activating *>(cellularMachine->activatingState_.GetRefPtr());
1122d43be4eSopenharmony_ci    activating->stateMachine_ = cellularMachine;
1132d43be4eSopenharmony_ci    activating->StateBegin();
1142d43be4eSopenharmony_ci    EXPECT_EQ(activating->isActive_, true);
1152d43be4eSopenharmony_ci}
1162d43be4eSopenharmony_ci
1172d43be4eSopenharmony_ci/**
1182d43be4eSopenharmony_ci * @tc.number   Activating_StateProcess_001
1192d43be4eSopenharmony_ci * @tc.name     test function branch
1202d43be4eSopenharmony_ci * @tc.desc     Function test
1212d43be4eSopenharmony_ci */
1222d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Activating_StateProcess_001, Function | MediumTest | Level1)
1232d43be4eSopenharmony_ci{
1242d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
1252d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
1262d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
1272d43be4eSopenharmony_ci        cellularMachine->Init();
1282d43be4eSopenharmony_ci    }
1292d43be4eSopenharmony_ci    auto activating = static_cast<Activating *>(cellularMachine->activatingState_.GetRefPtr());
1302d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_DRS_OR_RAT_CHANGED);
1312d43be4eSopenharmony_ci    bool result = activating->StateProcess(event);
1322d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
1332d43be4eSopenharmony_ci    event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_CONNECT);
1342d43be4eSopenharmony_ci    result = activating->StateProcess(event);
1352d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
1362d43be4eSopenharmony_ci    event = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_RIL_SETUP_DATA_CALL);
1372d43be4eSopenharmony_ci    result = activating->StateProcess(event);
1382d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
1392d43be4eSopenharmony_ci    event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_GET_LAST_FAIL_DONE);
1402d43be4eSopenharmony_ci    result = activating->StateProcess(event);
1412d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
1422d43be4eSopenharmony_ci    event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_GET_RIL_BANDWIDTH);
1432d43be4eSopenharmony_ci    result = activating->StateProcess(event);
1442d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
1452d43be4eSopenharmony_ci    event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_CONNECT_TIMEOUT_CHECK);
1462d43be4eSopenharmony_ci    result = activating->StateProcess(event);
1472d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
1482d43be4eSopenharmony_ci    event = AppExecFwk::InnerEvent::Get(0);
1492d43be4eSopenharmony_ci    result = activating->StateProcess(event);
1502d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
1512d43be4eSopenharmony_ci}
1522d43be4eSopenharmony_ci
1532d43be4eSopenharmony_ci/**
1542d43be4eSopenharmony_ci * @tc.number   Activating_ProcessConnectTimeout_001
1552d43be4eSopenharmony_ci * @tc.name     test function branch
1562d43be4eSopenharmony_ci * @tc.desc     Function test
1572d43be4eSopenharmony_ci */
1582d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Activating_ProcessConnectTimeout_001, Function | MediumTest | Level1)
1592d43be4eSopenharmony_ci{
1602d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
1612d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
1622d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
1632d43be4eSopenharmony_ci        cellularMachine->Init();
1642d43be4eSopenharmony_ci    }
1652d43be4eSopenharmony_ci    auto activating = static_cast<Activating *>(cellularMachine->activatingState_.GetRefPtr());
1662d43be4eSopenharmony_ci    cellularMachine->connectId_ = 1;
1672d43be4eSopenharmony_ci    activating->stateMachine_ = cellularMachine;
1682d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_CONNECT, 1);
1692d43be4eSopenharmony_ci    activating->ProcessConnectTimeout(event);
1702d43be4eSopenharmony_ci    EXPECT_EQ(cellularMachine->IsInactiveState(), false);
1712d43be4eSopenharmony_ci}
1722d43be4eSopenharmony_ci
1732d43be4eSopenharmony_ci/**
1742d43be4eSopenharmony_ci * @tc.number   Activating_ProcessConnectTimeout_002
1752d43be4eSopenharmony_ci * @tc.name     test function branch
1762d43be4eSopenharmony_ci * @tc.desc     Function test
1772d43be4eSopenharmony_ci */
1782d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Activating_ProcessConnectTimeout_002, Function | MediumTest | Level1)
1792d43be4eSopenharmony_ci{
1802d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
1812d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
1822d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
1832d43be4eSopenharmony_ci        cellularMachine->Init();
1842d43be4eSopenharmony_ci    }
1852d43be4eSopenharmony_ci    auto activating = static_cast<Activating *>(cellularMachine->activatingState_.GetRefPtr());
1862d43be4eSopenharmony_ci    cellularMachine->TransitionTo(cellularMachine->disconnectingState_);
1872d43be4eSopenharmony_ci    cellularMachine = nullptr;
1882d43be4eSopenharmony_ci    activating->stateMachine_ = cellularMachine;
1892d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(1);
1902d43be4eSopenharmony_ci    activating->ProcessConnectTimeout(event);
1912d43be4eSopenharmony_ci    EXPECT_EQ(cellularMachine == nullptr, true);
1922d43be4eSopenharmony_ci}
1932d43be4eSopenharmony_ci
1942d43be4eSopenharmony_ci/**
1952d43be4eSopenharmony_ci * @tc.number   Activating_ProcessConnectTimeout_003
1962d43be4eSopenharmony_ci * @tc.name     test function branch
1972d43be4eSopenharmony_ci * @tc.desc     Function test
1982d43be4eSopenharmony_ci */
1992d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Activating_ProcessConnectTimeout_003, Function | MediumTest | Level1)
2002d43be4eSopenharmony_ci{
2012d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
2022d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
2032d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
2042d43be4eSopenharmony_ci        cellularMachine->Init();
2052d43be4eSopenharmony_ci    }
2062d43be4eSopenharmony_ci    auto activating = static_cast<Activating *>(cellularMachine->activatingState_.GetRefPtr());
2072d43be4eSopenharmony_ci    cellularMachine->connectId_ = 1;
2082d43be4eSopenharmony_ci    cellularMachine->TransitionTo(cellularMachine->disconnectingState_);
2092d43be4eSopenharmony_ci    activating->stateMachine_ = cellularMachine;
2102d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
2112d43be4eSopenharmony_ci    activating->ProcessConnectTimeout(event);
2122d43be4eSopenharmony_ci    EXPECT_EQ(cellularMachine->IsInactiveState(), false);
2132d43be4eSopenharmony_ci}
2142d43be4eSopenharmony_ci
2152d43be4eSopenharmony_ci/**
2162d43be4eSopenharmony_ci * @tc.number   Activating_CellularDataStateMachine_001
2172d43be4eSopenharmony_ci * @tc.name     test function branch
2182d43be4eSopenharmony_ci * @tc.desc     Function test
2192d43be4eSopenharmony_ci */
2202d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Activating_CellularDataStateMachine_001, Function | MediumTest | Level1)
2212d43be4eSopenharmony_ci{
2222d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
2232d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
2242d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
2252d43be4eSopenharmony_ci        cellularMachine->Init();
2262d43be4eSopenharmony_ci    }
2272d43be4eSopenharmony_ci    auto activating = static_cast<Activating *>(cellularMachine->activatingState_.GetRefPtr());
2282d43be4eSopenharmony_ci    cellularMachine = nullptr;
2292d43be4eSopenharmony_ci    activating->stateMachine_ = cellularMachine;
2302d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
2312d43be4eSopenharmony_ci    activating->StateBegin();
2322d43be4eSopenharmony_ci    EXPECT_EQ(activating->isActive_, false);
2332d43be4eSopenharmony_ci    auto result = activating->RilErrorResponse(event);
2342d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
2352d43be4eSopenharmony_ci    result = activating->StateProcess(event);
2362d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
2372d43be4eSopenharmony_ci}
2382d43be4eSopenharmony_ci
2392d43be4eSopenharmony_ci/**
2402d43be4eSopenharmony_ci * @tc.number   Disconnecting_StateBegin_001
2412d43be4eSopenharmony_ci * @tc.name     test function branch
2422d43be4eSopenharmony_ci * @tc.desc     Function test
2432d43be4eSopenharmony_ci */
2442d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Disconnecting_StateBegin_001, Function | MediumTest | Level1)
2452d43be4eSopenharmony_ci{
2462d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
2472d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
2482d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
2492d43be4eSopenharmony_ci        cellularMachine->Init();
2502d43be4eSopenharmony_ci    }
2512d43be4eSopenharmony_ci    auto disconnecting = static_cast<Disconnecting *>(cellularMachine->disconnectingState_.GetRefPtr());
2522d43be4eSopenharmony_ci    disconnecting->stateMachine_ = cellularMachine;
2532d43be4eSopenharmony_ci    disconnecting->StateBegin();
2542d43be4eSopenharmony_ci    EXPECT_EQ(disconnecting->isActive_, true);
2552d43be4eSopenharmony_ci}
2562d43be4eSopenharmony_ci
2572d43be4eSopenharmony_ci/**
2582d43be4eSopenharmony_ci * @tc.number   Disconnecting_ProcessConnectTimeout_001
2592d43be4eSopenharmony_ci * @tc.name     test function branch
2602d43be4eSopenharmony_ci * @tc.desc     Function test
2612d43be4eSopenharmony_ci */
2622d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Disconnecting_ProcessConnectTimeout_001, Function | MediumTest | Level1)
2632d43be4eSopenharmony_ci{
2642d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
2652d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
2662d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
2672d43be4eSopenharmony_ci        cellularMachine->Init();
2682d43be4eSopenharmony_ci    }
2692d43be4eSopenharmony_ci    auto disconnecting = static_cast<Disconnecting *>(cellularMachine->disconnectingState_.GetRefPtr());
2702d43be4eSopenharmony_ci    cellularMachine->connectId_ = 1;
2712d43be4eSopenharmony_ci    disconnecting->stateMachine_ = cellularMachine;
2722d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_DISCONNECT);
2732d43be4eSopenharmony_ci    disconnecting->ProcessDisconnectTimeout(event);
2742d43be4eSopenharmony_ci    EXPECT_EQ(cellularMachine->IsInactiveState(), false);
2752d43be4eSopenharmony_ci}
2762d43be4eSopenharmony_ci
2772d43be4eSopenharmony_ci/**
2782d43be4eSopenharmony_ci * @tc.number   Disconnecting_ProcessConnectTimeout_002
2792d43be4eSopenharmony_ci * @tc.name     test function branch
2802d43be4eSopenharmony_ci * @tc.desc     Function test
2812d43be4eSopenharmony_ci */
2822d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Disconnecting_ProcessConnectTimeout_002, Function | MediumTest | Level1)
2832d43be4eSopenharmony_ci{
2842d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
2852d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
2862d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
2872d43be4eSopenharmony_ci        cellularMachine->Init();
2882d43be4eSopenharmony_ci    }
2892d43be4eSopenharmony_ci    auto disconnecting = static_cast<Disconnecting *>(cellularMachine->disconnectingState_.GetRefPtr());
2902d43be4eSopenharmony_ci    cellularMachine->connectId_ = 1;
2912d43be4eSopenharmony_ci    disconnecting->stateMachine_ = cellularMachine;
2922d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_DISCONNECT);
2932d43be4eSopenharmony_ci    disconnecting->ProcessDisconnectTimeout(event);
2942d43be4eSopenharmony_ci    EXPECT_EQ(cellularMachine->IsInactiveState(), false);
2952d43be4eSopenharmony_ci}
2962d43be4eSopenharmony_ci
2972d43be4eSopenharmony_ci/**
2982d43be4eSopenharmony_ci * @tc.number   Disconnecting_ProcessRilAdapterHostDied_001
2992d43be4eSopenharmony_ci * @tc.name     test function branch
3002d43be4eSopenharmony_ci * @tc.desc     Function test
3012d43be4eSopenharmony_ci */
3022d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Disconnecting_ProcessRilAdapterHostDied_001, Function | MediumTest | Level1)
3032d43be4eSopenharmony_ci{
3042d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
3052d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
3062d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
3072d43be4eSopenharmony_ci        cellularMachine->Init();
3082d43be4eSopenharmony_ci    }
3092d43be4eSopenharmony_ci    auto disconnecting = static_cast<Disconnecting *>(cellularMachine->disconnectingState_.GetRefPtr());
3102d43be4eSopenharmony_ci    disconnecting->stateMachine_ = cellularMachine;
3112d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_DISCONNECT);
3122d43be4eSopenharmony_ci    disconnecting->ProcessRilAdapterHostDied(event);
3132d43be4eSopenharmony_ci    EXPECT_EQ(cellularMachine->IsInactiveState(), false);
3142d43be4eSopenharmony_ci}
3152d43be4eSopenharmony_ci
3162d43be4eSopenharmony_ci/**
3172d43be4eSopenharmony_ci * @tc.number   Disconnecting_ProcessRilDeactivateDataCall_001
3182d43be4eSopenharmony_ci * @tc.name     test function branch
3192d43be4eSopenharmony_ci * @tc.desc     Function test
3202d43be4eSopenharmony_ci */
3212d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Disconnecting_ProcessRilDeactivateDataCall_001, Function | MediumTest | Level1)
3222d43be4eSopenharmony_ci{
3232d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
3242d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
3252d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
3262d43be4eSopenharmony_ci        cellularMachine->Init();
3272d43be4eSopenharmony_ci    }
3282d43be4eSopenharmony_ci    auto disconnecting = static_cast<Disconnecting *>(cellularMachine->disconnectingState_.GetRefPtr());
3292d43be4eSopenharmony_ci    disconnecting->stateMachine_ = cellularMachine;
3302d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_DISCONNECT);
3312d43be4eSopenharmony_ci    disconnecting->ProcessRilDeactivateDataCall(event);
3322d43be4eSopenharmony_ci    EXPECT_EQ(cellularMachine->IsInactiveState(), false);
3332d43be4eSopenharmony_ci}
3342d43be4eSopenharmony_ci
3352d43be4eSopenharmony_ci/**
3362d43be4eSopenharmony_ci * @tc.number   Disconnecting_ProcessRilDeactivateDataCall_002
3372d43be4eSopenharmony_ci * @tc.name     test function branch
3382d43be4eSopenharmony_ci * @tc.desc     Function test
3392d43be4eSopenharmony_ci */
3402d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Disconnecting_ProcessRilDeactivateDataCall_002, Function | MediumTest | Level1)
3412d43be4eSopenharmony_ci{
3422d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
3432d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
3442d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
3452d43be4eSopenharmony_ci        cellularMachine->Init();
3462d43be4eSopenharmony_ci    }
3472d43be4eSopenharmony_ci    auto disconnecting = static_cast<Disconnecting *>(cellularMachine->disconnectingState_.GetRefPtr());
3482d43be4eSopenharmony_ci    cellularMachine->TransitionTo(cellularMachine->defaultState_);
3492d43be4eSopenharmony_ci    cellularMachine->stateMachineEventHandler_ = nullptr;
3502d43be4eSopenharmony_ci    disconnecting->stateMachine_ = cellularMachine;
3512d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_DISCONNECT);
3522d43be4eSopenharmony_ci    disconnecting->ProcessRilDeactivateDataCall(event);
3532d43be4eSopenharmony_ci    EXPECT_EQ(cellularMachine->IsInactiveState(), false);
3542d43be4eSopenharmony_ci}
3552d43be4eSopenharmony_ci
3562d43be4eSopenharmony_ci/**
3572d43be4eSopenharmony_ci * @tc.number   Disconnecting_ProcessRilDeactivateDataCall_003
3582d43be4eSopenharmony_ci * @tc.name     test function branch
3592d43be4eSopenharmony_ci * @tc.desc     Function test
3602d43be4eSopenharmony_ci */
3612d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Disconnecting_ProcessRilDeactivateDataCall_003, Function | MediumTest | Level1)
3622d43be4eSopenharmony_ci{
3632d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
3642d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
3652d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
3662d43be4eSopenharmony_ci        cellularMachine->Init();
3672d43be4eSopenharmony_ci    }
3682d43be4eSopenharmony_ci    auto disconnecting = static_cast<Disconnecting *>(cellularMachine->disconnectingState_.GetRefPtr());
3692d43be4eSopenharmony_ci    cellularMachine->TransitionTo(cellularMachine->defaultState_);
3702d43be4eSopenharmony_ci    disconnecting->stateMachine_ = cellularMachine;
3712d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_DISCONNECT);
3722d43be4eSopenharmony_ci    event = nullptr;
3732d43be4eSopenharmony_ci    disconnecting->ProcessRilDeactivateDataCall(event);
3742d43be4eSopenharmony_ci    EXPECT_EQ(cellularMachine->IsInactiveState(), false);
3752d43be4eSopenharmony_ci}
3762d43be4eSopenharmony_ci
3772d43be4eSopenharmony_ci/**
3782d43be4eSopenharmony_ci * @tc.number   Disconnecting_StateProcess_001
3792d43be4eSopenharmony_ci * @tc.name     test function branch
3802d43be4eSopenharmony_ci * @tc.desc     Function test
3812d43be4eSopenharmony_ci */
3822d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Disconnecting_StateProcess_001, Function | MediumTest | Level1)
3832d43be4eSopenharmony_ci{
3842d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
3852d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
3862d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
3872d43be4eSopenharmony_ci        cellularMachine->Init();
3882d43be4eSopenharmony_ci    }
3892d43be4eSopenharmony_ci    auto disconnecting = static_cast<Disconnecting *>(cellularMachine->disconnectingState_.GetRefPtr());
3902d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_RIL_DEACTIVATE_DATA_CALL);
3912d43be4eSopenharmony_ci    bool result = disconnecting->StateProcess(event);
3922d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
3932d43be4eSopenharmony_ci    event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_DISCONNECT_TIMEOUT_CHECK);
3942d43be4eSopenharmony_ci    result = disconnecting->StateProcess(event);
3952d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
3962d43be4eSopenharmony_ci    event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_RIL_ADAPTER_HOST_DIED);
3972d43be4eSopenharmony_ci    result = disconnecting->StateProcess(event);
3982d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
3992d43be4eSopenharmony_ci    event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_CONNECT);
4002d43be4eSopenharmony_ci    result = disconnecting->StateProcess(event);
4012d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
4022d43be4eSopenharmony_ci    event = AppExecFwk::InnerEvent::Get(0);
4032d43be4eSopenharmony_ci    result = disconnecting->StateProcess(event);
4042d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
4052d43be4eSopenharmony_ci}
4062d43be4eSopenharmony_ci
4072d43be4eSopenharmony_ci/**
4082d43be4eSopenharmony_ci * @tc.number   Disconnecting_StateProcess_002
4092d43be4eSopenharmony_ci * @tc.name     test function branch
4102d43be4eSopenharmony_ci * @tc.desc     Function test
4112d43be4eSopenharmony_ci */
4122d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Disconnecting_StateProcess_002, Function | MediumTest | Level1)
4132d43be4eSopenharmony_ci{
4142d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
4152d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
4162d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
4172d43be4eSopenharmony_ci        cellularMachine->Init();
4182d43be4eSopenharmony_ci    }
4192d43be4eSopenharmony_ci    auto disconnecting = static_cast<Disconnecting *>(cellularMachine->disconnectingState_.GetRefPtr());
4202d43be4eSopenharmony_ci    cellularMachine = nullptr;
4212d43be4eSopenharmony_ci    disconnecting->stateMachine_ = cellularMachine;
4222d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_RIL_DEACTIVATE_DATA_CALL);
4232d43be4eSopenharmony_ci    bool result = disconnecting->StateProcess(event);
4242d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
4252d43be4eSopenharmony_ci}
4262d43be4eSopenharmony_ci
4272d43be4eSopenharmony_ci/**
4282d43be4eSopenharmony_ci * @tc.number   InactiveStateProcess_001
4292d43be4eSopenharmony_ci * @tc.name     test function branch
4302d43be4eSopenharmony_ci * @tc.desc     Function test
4312d43be4eSopenharmony_ci */
4322d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, InactiveStateProcess_001, Function | MediumTest | Level1)
4332d43be4eSopenharmony_ci{
4342d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
4352d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
4362d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
4372d43be4eSopenharmony_ci        cellularMachine->Init();
4382d43be4eSopenharmony_ci    }
4392d43be4eSopenharmony_ci    auto inactive = static_cast<Inactive *>(cellularMachine->inActiveState_.GetRefPtr());
4402d43be4eSopenharmony_ci    inactive->stateMachine_ = cellularMachine;
4412d43be4eSopenharmony_ci    sptr<ApnHolder> apnHolder;
4422d43be4eSopenharmony_ci    int32_t profileId = 0;
4432d43be4eSopenharmony_ci    int32_t radioTechnology = 0;
4442d43be4eSopenharmony_ci    bool nonTrafficUseOnly = false;
4452d43be4eSopenharmony_ci    bool roamingState = false;
4462d43be4eSopenharmony_ci    bool userDataRoaming = false;
4472d43be4eSopenharmony_ci    std::shared_ptr<DataConnectionParams> dataConnectionParams = std::make_shared<DataConnectionParams>(apnHolder,
4482d43be4eSopenharmony_ci        profileId, radioTechnology, nonTrafficUseOnly, roamingState, userDataRoaming);
4492d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_DISCONNECT, dataConnectionParams);
4502d43be4eSopenharmony_ci    bool result = inactive->StateProcess(event);
4512d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
4522d43be4eSopenharmony_ci}
4532d43be4eSopenharmony_ci
4542d43be4eSopenharmony_ci/**
4552d43be4eSopenharmony_ci * @tc.number   Disconnecting_ProcessDisconnectTimeout_001
4562d43be4eSopenharmony_ci * @tc.name     test function branch
4572d43be4eSopenharmony_ci * @tc.desc     Function test
4582d43be4eSopenharmony_ci */
4592d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Disconnecting_ProcessDisconnectTimeout_001, Function | MediumTest | Level1)
4602d43be4eSopenharmony_ci{
4612d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
4622d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
4632d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
4642d43be4eSopenharmony_ci        cellularMachine->Init();
4652d43be4eSopenharmony_ci    }
4662d43be4eSopenharmony_ci    auto disconnecting = static_cast<Disconnecting *>(cellularMachine->disconnectingState_.GetRefPtr());
4672d43be4eSopenharmony_ci    cellularMachine = nullptr;
4682d43be4eSopenharmony_ci    disconnecting->stateMachine_ = cellularMachine;
4692d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_DISCONNECT, 0);
4702d43be4eSopenharmony_ci    disconnecting->ProcessDisconnectTimeout(event);
4712d43be4eSopenharmony_ci    disconnecting->StateEnd();
4722d43be4eSopenharmony_ci    EXPECT_EQ(disconnecting->isActive_, false);
4732d43be4eSopenharmony_ci}
4742d43be4eSopenharmony_ci
4752d43be4eSopenharmony_ci/**
4762d43be4eSopenharmony_ci * @tc.number   Disconnecting_ProcessRilAdapterHostDied_002
4772d43be4eSopenharmony_ci * @tc.name     test function branch
4782d43be4eSopenharmony_ci * @tc.desc     Function test
4792d43be4eSopenharmony_ci */
4802d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Disconnecting_ProcessRilAdapterHostDied_002, Function | MediumTest | Level1)
4812d43be4eSopenharmony_ci{
4822d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
4832d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
4842d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
4852d43be4eSopenharmony_ci        cellularMachine->Init();
4862d43be4eSopenharmony_ci    }
4872d43be4eSopenharmony_ci    auto disconnecting = static_cast<Disconnecting *>(cellularMachine->disconnectingState_.GetRefPtr());
4882d43be4eSopenharmony_ci    cellularMachine->inActiveState_ = nullptr;
4892d43be4eSopenharmony_ci    disconnecting->stateMachine_ = cellularMachine;
4902d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_DISCONNECT, 0);
4912d43be4eSopenharmony_ci    disconnecting->ProcessRilAdapterHostDied(event);
4922d43be4eSopenharmony_ci    EXPECT_EQ(cellularMachine->IsDisconnectingState(), false);
4932d43be4eSopenharmony_ci}
4942d43be4eSopenharmony_ci
4952d43be4eSopenharmony_ci/**
4962d43be4eSopenharmony_ci * @tc.number   Activating_RilActivatePdpContextDone_001
4972d43be4eSopenharmony_ci * @tc.name     test function branch
4982d43be4eSopenharmony_ci * @tc.desc     Function test
4992d43be4eSopenharmony_ci */
5002d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Activating_RilActivatePdpContextDone_001, Function | MediumTest | Level1)
5012d43be4eSopenharmony_ci{
5022d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
5032d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
5042d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
5052d43be4eSopenharmony_ci        cellularMachine->Init();
5062d43be4eSopenharmony_ci    }
5072d43be4eSopenharmony_ci    auto activating = static_cast<Activating *>(cellularMachine->activatingState_.GetRefPtr());
5082d43be4eSopenharmony_ci    cellularMachine = nullptr;
5092d43be4eSopenharmony_ci    activating->stateMachine_ = cellularMachine;
5102d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
5112d43be4eSopenharmony_ci    bool result = activating->RilActivatePdpContextDone(event);
5122d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
5132d43be4eSopenharmony_ci}
5142d43be4eSopenharmony_ci
5152d43be4eSopenharmony_ci/**
5162d43be4eSopenharmony_ci * @tc.number   Activating_RilActivatePdpContextDone_002
5172d43be4eSopenharmony_ci * @tc.name     test function branch
5182d43be4eSopenharmony_ci * @tc.desc     Function test
5192d43be4eSopenharmony_ci */
5202d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Activating_RilActivatePdpContextDone_002, Function | MediumTest | Level1)
5212d43be4eSopenharmony_ci{
5222d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
5232d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
5242d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
5252d43be4eSopenharmony_ci        cellularMachine->Init();
5262d43be4eSopenharmony_ci    }
5272d43be4eSopenharmony_ci    auto activating = static_cast<Activating *>(cellularMachine->activatingState_.GetRefPtr());
5282d43be4eSopenharmony_ci    cellularMachine->connectId_ = 1;
5292d43be4eSopenharmony_ci    activating->stateMachine_ = cellularMachine;
5302d43be4eSopenharmony_ci    std::shared_ptr<SetupDataCallResultInfo> setupDataCallResultInfo = std::make_shared<SetupDataCallResultInfo>();
5312d43be4eSopenharmony_ci    setupDataCallResultInfo->flag = 2;
5322d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0, setupDataCallResultInfo);
5332d43be4eSopenharmony_ci    bool result = activating->RilActivatePdpContextDone(event);
5342d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
5352d43be4eSopenharmony_ci}
5362d43be4eSopenharmony_ci
5372d43be4eSopenharmony_ci/**
5382d43be4eSopenharmony_ci * @tc.number   Activating_RilActivatePdpContextDone_003
5392d43be4eSopenharmony_ci * @tc.name     test function branch
5402d43be4eSopenharmony_ci * @tc.desc     Function test
5412d43be4eSopenharmony_ci */
5422d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Activating_RilActivatePdpContextDone_003, Function | MediumTest | Level1)
5432d43be4eSopenharmony_ci{
5442d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
5452d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
5462d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
5472d43be4eSopenharmony_ci        cellularMachine->Init();
5482d43be4eSopenharmony_ci    }
5492d43be4eSopenharmony_ci    auto activating = static_cast<Activating *>(cellularMachine->activatingState_.GetRefPtr());
5502d43be4eSopenharmony_ci    cellularMachine->connectId_ = 1;
5512d43be4eSopenharmony_ci    activating->stateMachine_ = cellularMachine;
5522d43be4eSopenharmony_ci    std::shared_ptr<SetupDataCallResultInfo> setupDataCallResultInfo = std::make_shared<SetupDataCallResultInfo>();
5532d43be4eSopenharmony_ci    setupDataCallResultInfo->flag = 1;
5542d43be4eSopenharmony_ci    setupDataCallResultInfo->reason = 1;
5552d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0, setupDataCallResultInfo);
5562d43be4eSopenharmony_ci    bool result = activating->RilActivatePdpContextDone(event);
5572d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
5582d43be4eSopenharmony_ci}
5592d43be4eSopenharmony_ci
5602d43be4eSopenharmony_ci/**
5612d43be4eSopenharmony_ci * @tc.number   Activating_RilActivatePdpContextDone_004
5622d43be4eSopenharmony_ci * @tc.name     test function branch
5632d43be4eSopenharmony_ci * @tc.desc     Function test
5642d43be4eSopenharmony_ci */
5652d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Activating_RilActivatePdpContextDone_004, 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 activating = static_cast<Activating *>(cellularMachine->activatingState_.GetRefPtr());
5732d43be4eSopenharmony_ci    cellularMachine->connectId_ = 1;
5742d43be4eSopenharmony_ci    activating->stateMachine_ = cellularMachine;
5752d43be4eSopenharmony_ci    std::shared_ptr<SetupDataCallResultInfo> setupDataCallResultInfo = std::make_shared<SetupDataCallResultInfo>();
5762d43be4eSopenharmony_ci    setupDataCallResultInfo->flag = 1;
5772d43be4eSopenharmony_ci    setupDataCallResultInfo->reason = 0;
5782d43be4eSopenharmony_ci    setupDataCallResultInfo->active = 0;
5792d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0, setupDataCallResultInfo);
5802d43be4eSopenharmony_ci    bool result = activating->RilActivatePdpContextDone(event);
5812d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
5822d43be4eSopenharmony_ci}
5832d43be4eSopenharmony_ci
5842d43be4eSopenharmony_ci/**
5852d43be4eSopenharmony_ci * @tc.number   Activating_RilActivatePdpContextDone_005
5862d43be4eSopenharmony_ci * @tc.name     test function branch
5872d43be4eSopenharmony_ci * @tc.desc     Function test
5882d43be4eSopenharmony_ci */
5892d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Activating_RilActivatePdpContextDone_005, Function | MediumTest | Level1)
5902d43be4eSopenharmony_ci{
5912d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
5922d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
5932d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
5942d43be4eSopenharmony_ci        cellularMachine->Init();
5952d43be4eSopenharmony_ci    }
5962d43be4eSopenharmony_ci    auto activating = static_cast<Activating *>(cellularMachine->activatingState_.GetRefPtr());
5972d43be4eSopenharmony_ci    cellularMachine->connectId_ = 1;
5982d43be4eSopenharmony_ci    activating->stateMachine_ = cellularMachine;
5992d43be4eSopenharmony_ci    std::shared_ptr<SetupDataCallResultInfo> setupDataCallResultInfo = std::make_shared<SetupDataCallResultInfo>();
6002d43be4eSopenharmony_ci    setupDataCallResultInfo->flag = 1;
6012d43be4eSopenharmony_ci    setupDataCallResultInfo->reason = 0;
6022d43be4eSopenharmony_ci    setupDataCallResultInfo->active = 1;
6032d43be4eSopenharmony_ci    setupDataCallResultInfo->cid = 99;
6042d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0, setupDataCallResultInfo);
6052d43be4eSopenharmony_ci    bool result = activating->RilActivatePdpContextDone(event);
6062d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
6072d43be4eSopenharmony_ci}
6082d43be4eSopenharmony_ci
6092d43be4eSopenharmony_ci/**
6102d43be4eSopenharmony_ci * @tc.number   Activating_RilErrorResponse_001
6112d43be4eSopenharmony_ci * @tc.name     test function branch
6122d43be4eSopenharmony_ci * @tc.desc     Function test
6132d43be4eSopenharmony_ci */
6142d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Activating_RilErrorResponse_001, Function | MediumTest | Level1)
6152d43be4eSopenharmony_ci{
6162d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
6172d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
6182d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
6192d43be4eSopenharmony_ci        cellularMachine->Init();
6202d43be4eSopenharmony_ci    }
6212d43be4eSopenharmony_ci    auto activating = static_cast<Activating *>(cellularMachine->activatingState_.GetRefPtr());
6222d43be4eSopenharmony_ci    cellularMachine->connectId_ = 1;
6232d43be4eSopenharmony_ci    activating->stateMachine_ = cellularMachine;
6242d43be4eSopenharmony_ci    std::shared_ptr<RadioResponseInfo> radioResponseInfo = std::make_shared<RadioResponseInfo>();
6252d43be4eSopenharmony_ci    radioResponseInfo->flag = 12;
6262d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0, radioResponseInfo);
6272d43be4eSopenharmony_ci    bool result = activating->RilErrorResponse(event);
6282d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
6292d43be4eSopenharmony_ci}
6302d43be4eSopenharmony_ci
6312d43be4eSopenharmony_ci/**
6322d43be4eSopenharmony_ci * @tc.number   Activating_RilErrorResponse_002
6332d43be4eSopenharmony_ci * @tc.name     test function branch
6342d43be4eSopenharmony_ci * @tc.desc     Function test
6352d43be4eSopenharmony_ci */
6362d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Activating_RilErrorResponse_002, Function | MediumTest | Level1)
6372d43be4eSopenharmony_ci{
6382d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
6392d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
6402d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
6412d43be4eSopenharmony_ci        cellularMachine->Init();
6422d43be4eSopenharmony_ci    }
6432d43be4eSopenharmony_ci    auto activating = static_cast<Activating *>(cellularMachine->activatingState_.GetRefPtr());
6442d43be4eSopenharmony_ci    cellularMachine->connectId_ = 1;
6452d43be4eSopenharmony_ci    activating->stateMachine_ = cellularMachine;
6462d43be4eSopenharmony_ci    std::shared_ptr<RadioResponseInfo> radioResponseInfo = std::make_shared<RadioResponseInfo>();
6472d43be4eSopenharmony_ci    radioResponseInfo->flag = 1;
6482d43be4eSopenharmony_ci    radioResponseInfo->error = ErrType::ERR_GENERIC_FAILURE;
6492d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0, radioResponseInfo);
6502d43be4eSopenharmony_ci    bool result = activating->RilErrorResponse(event);
6512d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
6522d43be4eSopenharmony_ci}
6532d43be4eSopenharmony_ci
6542d43be4eSopenharmony_ci/**
6552d43be4eSopenharmony_ci * @tc.number   Activating_RilErrorResponse_003
6562d43be4eSopenharmony_ci * @tc.name     test function branch
6572d43be4eSopenharmony_ci * @tc.desc     Function test
6582d43be4eSopenharmony_ci */
6592d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Activating_RilErrorResponse_003, Function | MediumTest | Level1)
6602d43be4eSopenharmony_ci{
6612d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
6622d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
6632d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
6642d43be4eSopenharmony_ci        cellularMachine->Init();
6652d43be4eSopenharmony_ci    }
6662d43be4eSopenharmony_ci    auto activating = static_cast<Activating *>(cellularMachine->activatingState_.GetRefPtr());
6672d43be4eSopenharmony_ci    cellularMachine->connectId_ = 1;
6682d43be4eSopenharmony_ci    activating->stateMachine_ = cellularMachine;
6692d43be4eSopenharmony_ci    std::shared_ptr<RadioResponseInfo> radioResponseInfo = std::make_shared<RadioResponseInfo>();
6702d43be4eSopenharmony_ci    radioResponseInfo->flag = 1;
6712d43be4eSopenharmony_ci    radioResponseInfo->error = ErrType::ERR_INVALID_RESPONSE;
6722d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0, radioResponseInfo);
6732d43be4eSopenharmony_ci    bool result = activating->RilErrorResponse(event);
6742d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
6752d43be4eSopenharmony_ci}
6762d43be4eSopenharmony_ci
6772d43be4eSopenharmony_ci/**
6782d43be4eSopenharmony_ci * @tc.number   Activating_RilErrorResponse_004
6792d43be4eSopenharmony_ci * @tc.name     test function branch
6802d43be4eSopenharmony_ci * @tc.desc     Function test
6812d43be4eSopenharmony_ci */
6822d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Activating_RilErrorResponse_004, Function | MediumTest | Level1)
6832d43be4eSopenharmony_ci{
6842d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
6852d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
6862d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
6872d43be4eSopenharmony_ci        cellularMachine->Init();
6882d43be4eSopenharmony_ci    }
6892d43be4eSopenharmony_ci    auto activating = static_cast<Activating *>(cellularMachine->activatingState_.GetRefPtr());
6902d43be4eSopenharmony_ci    cellularMachine->connectId_ = 1;
6912d43be4eSopenharmony_ci    activating->stateMachine_ = cellularMachine;
6922d43be4eSopenharmony_ci    std::shared_ptr<RadioResponseInfo> radioResponseInfo = std::make_shared<RadioResponseInfo>();
6932d43be4eSopenharmony_ci    radioResponseInfo->flag = 1;
6942d43be4eSopenharmony_ci    radioResponseInfo->error = ErrType::NONE;
6952d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0, radioResponseInfo);
6962d43be4eSopenharmony_ci    bool result = activating->RilErrorResponse(event);
6972d43be4eSopenharmony_ci    EXPECT_EQ(result, true);
6982d43be4eSopenharmony_ci}
6992d43be4eSopenharmony_ci
7002d43be4eSopenharmony_ci/**
7012d43be4eSopenharmony_ci * @tc.number   Activating_RilErrorResponse_005
7022d43be4eSopenharmony_ci * @tc.name     test function branch
7032d43be4eSopenharmony_ci * @tc.desc     Function test
7042d43be4eSopenharmony_ci */
7052d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Activating_RilErrorResponse_005, Function | MediumTest | Level1)
7062d43be4eSopenharmony_ci{
7072d43be4eSopenharmony_ci    if (cellularMachine == nullptr) {
7082d43be4eSopenharmony_ci        std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
7092d43be4eSopenharmony_ci        cellularMachine = machine->CreateCellularDataConnect(0);
7102d43be4eSopenharmony_ci        cellularMachine->Init();
7112d43be4eSopenharmony_ci    }
7122d43be4eSopenharmony_ci    auto activating = static_cast<Activating *>(cellularMachine->activatingState_.GetRefPtr());
7132d43be4eSopenharmony_ci    cellularMachine = nullptr;
7142d43be4eSopenharmony_ci    activating->stateMachine_ = cellularMachine;
7152d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
7162d43be4eSopenharmony_ci    bool result = activating->RilErrorResponse(event);
7172d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
7182d43be4eSopenharmony_ci}
7192d43be4eSopenharmony_ci
7202d43be4eSopenharmony_ci/**
7212d43be4eSopenharmony_ci * @tc.number   Active_CellularDataStateMachine_001
7222d43be4eSopenharmony_ci * @tc.name     test function branch
7232d43be4eSopenharmony_ci * @tc.desc     Function test
7242d43be4eSopenharmony_ci */
7252d43be4eSopenharmony_ciHWTEST_F(CellularStateMachineTest, Active_CellularDataStateMachine_001, 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 active = static_cast<Active *>(cellularMachine->activeState_.GetRefPtr());
7332d43be4eSopenharmony_ci    cellularMachine = nullptr;
7342d43be4eSopenharmony_ci    active->stateMachine_ = cellularMachine;
7352d43be4eSopenharmony_ci    active->StateBegin();
7362d43be4eSopenharmony_ci    auto event = AppExecFwk::InnerEvent::Get(0);
7372d43be4eSopenharmony_ci    bool result = active->ProcessDisconnectDone(event);
7382d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
7392d43be4eSopenharmony_ci    result = active->ProcessDisconnectAllDone(event);
7402d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
7412d43be4eSopenharmony_ci    result = active->ProcessLostConnection(event);
7422d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
7432d43be4eSopenharmony_ci    result = active->ProcessLinkCapabilityChanged(event);
7442d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
7452d43be4eSopenharmony_ci    result = active->ProcessDataConnectionRoamOn(event);
7462d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
7472d43be4eSopenharmony_ci    active->RefreshConnectionBandwidths();
7482d43be4eSopenharmony_ci    result = active->ProcessDataConnectionRoamOff(event);
7492d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
7502d43be4eSopenharmony_ci    active->RefreshTcpBufferSizes();
7512d43be4eSopenharmony_ci    result = active->ProcessDataConnectionVoiceCallStartedOrEnded(event);
7522d43be4eSopenharmony_ci    EXPECT_EQ(result, false);
7532d43be4eSopenharmony_ci}
7542d43be4eSopenharmony_ci} // namespace Telephony
7552d43be4eSopenharmony_ci} // namespace OHOS