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