Files
telephony_cellular_data/test/cellualr_data_branch_test.cpp
benlau000 5f198b451c chdata异常
Signed-off-by: benlau000 <liubin360@huawei.com>
2026-08-09 17:46:08 +08:00

858 lines
35 KiB
C++

/*
* Copyright (C) 2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#define private public
#define protected public
#include "activating.h"
#include "active.h"
#include "apn_manager.h"
#include "cellular_data_state_machine.h"
#include "data_connection_manager.h"
#include "default.h"
#include "disconnecting.h"
#include "gtest/gtest.h"
#include "inactive.h"
#include "incall_data_state_machine.h"
#include "tel_event_handler.h"
#include "telephony_types.h"
namespace OHOS {
namespace Telephony {
using namespace testing::ext;
static const int32_t SLEEP_TIME = 3;
class CellularStateMachineTest : public testing::Test {
public:
static void SetUpTestCase();
static void TearDownTestCase();
void SetUp();
void TearDown();
std::shared_ptr<CellularDataStateMachine> cellularMachine;
};
void CellularStateMachineTest::SetUpTestCase() {}
void CellularStateMachineTest::TearDownTestCase()
{
sleep(SLEEP_TIME);
}
void CellularStateMachineTest::SetUp() {}
void CellularStateMachineTest::TearDown() {}
class CellularMachineTest : public TelEventHandler {
public:
CellularMachineTest() : TelEventHandler("CellularDataStateMachineTest") {}
~CellularMachineTest() = default;
std::shared_ptr<CellularDataStateMachine> CreateCellularDataConnect(int32_t slotId);
public:
std::shared_ptr<CellularDataStateMachine> cellularDataStateMachine_ = nullptr;
};
std::shared_ptr<CellularDataStateMachine> CellularMachineTest::CreateCellularDataConnect(int32_t slotId)
{
if (cellularDataStateMachine_ != nullptr) {
return cellularDataStateMachine_;
}
auto connectionManager = std::make_shared<DataConnectionManager>(slotId);
if (connectionManager == nullptr) {
return nullptr;
}
connectionManager->Init();
cellularDataStateMachine_ = std::make_shared<CellularDataStateMachine>(
connectionManager, std::static_pointer_cast<TelEventHandler>(shared_from_this()));
return cellularDataStateMachine_;
}
/**
* @tc.number Active_RefreshTcpBufferSizes_001
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Active_RefreshTcpBufferSizes_001, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto active = std::static_pointer_cast<Active>(cellularMachine->activeState_);
active->stateMachine_ = cellularMachine;
active->RefreshTcpBufferSizes();
ASSERT_TRUE(cellularMachine != nullptr);
}
/**
* @tc.number Activating_StateBegin_001
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Activating_StateBegin_001, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto activating = std::static_pointer_cast<Activating>(cellularMachine->activatingState_);
activating->stateMachine_ = cellularMachine;
activating->StateBegin();
EXPECT_EQ(activating->isActive_, true);
}
/**
* @tc.number Activating_StateProcess_001
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Activating_StateProcess_001, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto activating = std::static_pointer_cast<Activating>(cellularMachine->activatingState_);
auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_DRS_OR_RAT_CHANGED);
bool result = activating->StateProcess(event);
EXPECT_EQ(result, true);
event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_CONNECT);
result = activating->StateProcess(event);
EXPECT_EQ(result, true);
event = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_RIL_SETUP_DATA_CALL);
result = activating->StateProcess(event);
EXPECT_EQ(result, false);
event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_GET_LAST_FAIL_DONE);
result = activating->StateProcess(event);
EXPECT_EQ(result, true);
event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_GET_RIL_BANDWIDTH);
result = activating->StateProcess(event);
EXPECT_EQ(result, false);
event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_CONNECT_TIMEOUT_CHECK);
result = activating->StateProcess(event);
EXPECT_EQ(result, true);
event = AppExecFwk::InnerEvent::Get(0);
result = activating->StateProcess(event);
EXPECT_EQ(result, false);
}
/**
* @tc.number Activating_ProcessConnectTimeout_001
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Activating_ProcessConnectTimeout_001, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto activating = std::static_pointer_cast<Activating>(cellularMachine->activatingState_);
cellularMachine->connectId_ = 1;
activating->stateMachine_ = cellularMachine;
auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_CONNECT, 1);
activating->ProcessConnectTimeout(event);
EXPECT_EQ(cellularMachine->stateMachineEventHandler_->destState_, cellularMachine->inActiveState_);
}
/**
* @tc.number Activating_ProcessConnectTimeout_002
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Activating_ProcessConnectTimeout_002, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto activating = std::static_pointer_cast<Activating>(cellularMachine->activatingState_);
cellularMachine->TransitionTo(cellularMachine->disconnectingState_);
cellularMachine = nullptr;
activating->stateMachine_ = cellularMachine;
auto event = AppExecFwk::InnerEvent::Get(1);
activating->ProcessConnectTimeout(event);
EXPECT_EQ(cellularMachine == nullptr, true);
}
/**
* @tc.number Activating_ProcessConnectTimeout_003
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Activating_ProcessConnectTimeout_003, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
EXPECT_NE(machine, nullptr);
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto activating = std::static_pointer_cast<Activating>(cellularMachine->activatingState_);
cellularMachine->connectId_ = 1;
cellularMachine->TransitionTo(cellularMachine->disconnectingState_);
activating->stateMachine_ = cellularMachine;
auto event = AppExecFwk::InnerEvent::Get(0);
activating->ProcessConnectTimeout(event);
cellularMachine->IsInactiveState();
}
/**
* @tc.number Activating_CellularDataStateMachine_001
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Activating_CellularDataStateMachine_001, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto activating = std::static_pointer_cast<Activating>(cellularMachine->activatingState_);
cellularMachine = nullptr;
activating->stateMachine_ = cellularMachine;
auto event = AppExecFwk::InnerEvent::Get(0);
activating->StateBegin();
EXPECT_EQ(activating->isActive_, false);
auto result = activating->RilErrorResponse(event);
EXPECT_EQ(result, false);
result = activating->StateProcess(event);
EXPECT_EQ(result, false);
}
/**
* @tc.number Disconnecting_StateBegin_001
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Disconnecting_StateBegin_001, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto disconnecting = std::static_pointer_cast<Disconnecting>(cellularMachine->disconnectingState_);
disconnecting->stateMachine_ = cellularMachine;
disconnecting->StateBegin();
EXPECT_EQ(disconnecting->isActive_, true);
}
/**
* @tc.number Disconnecting_ProcessConnectTimeout_001
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Disconnecting_ProcessConnectTimeout_001, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto disconnecting = std::static_pointer_cast<Disconnecting>(cellularMachine->disconnectingState_);
cellularMachine->connectId_ = 1;
disconnecting->stateMachine_ = cellularMachine;
auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_DISCONNECT);
disconnecting->ProcessDisconnectTimeout(event);
EXPECT_EQ(cellularMachine->IsInactiveState(), false);
}
/**
* @tc.number Disconnecting_ProcessConnectTimeout_002
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Disconnecting_ProcessConnectTimeout_002, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto disconnecting = std::static_pointer_cast<Disconnecting>(cellularMachine->disconnectingState_);
cellularMachine->connectId_ = 1;
disconnecting->stateMachine_ = cellularMachine;
auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_DISCONNECT);
disconnecting->ProcessDisconnectTimeout(event);
EXPECT_EQ(cellularMachine->IsInactiveState(), false);
}
/**
* @tc.number Disconnecting_ProcessRilAdapterHostDied_001
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Disconnecting_ProcessRilAdapterHostDied_001, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto disconnecting = std::static_pointer_cast<Disconnecting>(cellularMachine->disconnectingState_);
disconnecting->stateMachine_ = cellularMachine;
auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_DISCONNECT);
disconnecting->ProcessRilAdapterHostDied(event);
EXPECT_EQ(cellularMachine->IsInactiveState(), false);
}
/**
* @tc.number Disconnecting_ProcessRilDeactivateDataCall_001
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Disconnecting_ProcessRilDeactivateDataCall_001, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
EXPECT_NE(machine, nullptr);
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto disconnecting = std::static_pointer_cast<Disconnecting>(cellularMachine->disconnectingState_);
disconnecting->stateMachine_ = cellularMachine;
auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_DISCONNECT);
disconnecting->ProcessRilDeactivateDataCall(event);
cellularMachine->IsInactiveState();
}
/**
* @tc.number Disconnecting_ProcessRilDeactivateDataCall_002
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Disconnecting_ProcessRilDeactivateDataCall_002, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
EXPECT_NE(machine, nullptr);
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto disconnecting = std::static_pointer_cast<Disconnecting>(cellularMachine->disconnectingState_);
cellularMachine->TransitionTo(cellularMachine->defaultState_);
cellularMachine->stateMachineEventHandler_ = nullptr;
disconnecting->stateMachine_ = cellularMachine;
auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_DISCONNECT);
disconnecting->ProcessRilDeactivateDataCall(event);
cellularMachine->IsInactiveState();
}
/**
* @tc.number Disconnecting_ProcessRilDeactivateDataCall_003
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Disconnecting_ProcessRilDeactivateDataCall_003, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
EXPECT_NE(machine, nullptr);
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto disconnecting = std::static_pointer_cast<Disconnecting>(cellularMachine->disconnectingState_);
cellularMachine->TransitionTo(cellularMachine->defaultState_);
disconnecting->stateMachine_ = cellularMachine;
auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_DISCONNECT);
event = nullptr;
disconnecting->ProcessRilDeactivateDataCall(event);
cellularMachine->IsInactiveState();
}
/**
* @tc.number Disconnecting_ProcessRilDeactivateDataCall_004
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Disconnecting_ProcessRilDeactivateDataCall_004, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto disconnecting = std::static_pointer_cast<Disconnecting>(cellularMachine->disconnectingState_);
disconnecting->stateMachine_ = cellularMachine;
cellularMachine->connectId_ = 1;
std::shared_ptr<RadioResponseInfo> radioResponseInfo = std::make_shared<RadioResponseInfo>();
radioResponseInfo->flag = 1;
radioResponseInfo->error = ErrType::ERR_GENERIC_FAILURE;
auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_DISCONNECT, radioResponseInfo);
disconnecting->ProcessRilDeactivateDataCall(event);
EXPECT_FALSE(cellularMachine->IsInactiveState());
}
/**
* @tc.number Disconnecting_StateProcess_001
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Disconnecting_StateProcess_001, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto disconnecting = std::static_pointer_cast<Disconnecting>(cellularMachine->disconnectingState_);
auto event = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_RIL_DEACTIVATE_DATA_CALL);
bool result = disconnecting->StateProcess(event);
EXPECT_EQ(result, true);
event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_DISCONNECT_TIMEOUT_CHECK);
result = disconnecting->StateProcess(event);
EXPECT_EQ(result, true);
event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_RIL_ADAPTER_HOST_DIED);
result = disconnecting->StateProcess(event);
EXPECT_EQ(result, true);
event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_CONNECT);
result = disconnecting->StateProcess(event);
EXPECT_EQ(result, true);
event = AppExecFwk::InnerEvent::Get(0);
result = disconnecting->StateProcess(event);
EXPECT_EQ(result, false);
}
/**
* @tc.number Disconnecting_StateProcess_002
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Disconnecting_StateProcess_002, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto disconnecting = std::static_pointer_cast<Disconnecting>(cellularMachine->disconnectingState_);
cellularMachine = nullptr;
disconnecting->stateMachine_ = cellularMachine;
auto event = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_RIL_DEACTIVATE_DATA_CALL);
bool result = disconnecting->StateProcess(event);
EXPECT_EQ(result, false);
}
/**
* @tc.number InactiveStateProcess_001
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, InactiveStateProcess_001, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto inactive = std::static_pointer_cast<Inactive>(cellularMachine->inActiveState_);
inactive->stateMachine_ = cellularMachine;
sptr<ApnHolder> apnHolder;
int32_t profileId = 0;
int32_t radioTechnology = 0;
bool nonTrafficUseOnly = false;
bool roamingState = false;
bool userDataRoaming = false;
std::shared_ptr<DataConnectionParams> dataConnectionParams = std::make_shared<DataConnectionParams>(apnHolder,
profileId, radioTechnology, nonTrafficUseOnly, roamingState, userDataRoaming);
auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_DISCONNECT, dataConnectionParams);
bool result = inactive->StateProcess(event);
EXPECT_EQ(result, true);
}
/**
* @tc.number Disconnecting_ProcessDisconnectTimeout_001
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Disconnecting_ProcessDisconnectTimeout_001, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto disconnecting = std::static_pointer_cast<Disconnecting>(cellularMachine->disconnectingState_);
cellularMachine = nullptr;
disconnecting->stateMachine_ = cellularMachine;
auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_DISCONNECT, 0);
disconnecting->ProcessDisconnectTimeout(event);
disconnecting->StateEnd();
EXPECT_EQ(disconnecting->isActive_, false);
}
/**
* @tc.number Disconnecting_ProcessRilAdapterHostDied_002
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Disconnecting_ProcessRilAdapterHostDied_002, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto disconnecting = std::static_pointer_cast<Disconnecting>(cellularMachine->disconnectingState_);
cellularMachine->inActiveState_ = nullptr;
disconnecting->stateMachine_ = cellularMachine;
auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_SM_DISCONNECT, 0);
disconnecting->ProcessRilAdapterHostDied(event);
EXPECT_EQ(cellularMachine->IsDisconnectingState(), false);
}
/**
* @tc.number Activating_RilActivatePdpContextDone_001
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Activating_RilActivatePdpContextDone_001, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto activating = std::static_pointer_cast<Activating>(cellularMachine->activatingState_);
cellularMachine = nullptr;
activating->stateMachine_ = cellularMachine;
auto event = AppExecFwk::InnerEvent::Get(0);
bool result = activating->RilActivatePdpContextDone(event);
EXPECT_EQ(result, false);
}
/**
* @tc.number Activating_RilActivatePdpContextDone_002
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Activating_RilActivatePdpContextDone_002, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto activating = std::static_pointer_cast<Activating>(cellularMachine->activatingState_);
cellularMachine->connectId_ = 1;
activating->stateMachine_ = cellularMachine;
std::shared_ptr<SetupDataCallResultInfo> setupDataCallResultInfo = std::make_shared<SetupDataCallResultInfo>();
setupDataCallResultInfo->flag = 2;
auto event = AppExecFwk::InnerEvent::Get(0, setupDataCallResultInfo);
bool result = activating->RilActivatePdpContextDone(event);
EXPECT_EQ(result, false);
}
/**
* @tc.number Activating_RilActivatePdpContextDone_003
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Activating_RilActivatePdpContextDone_003, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
EXPECT_NE(machine, nullptr);
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto activating = std::static_pointer_cast<Activating>(cellularMachine->activatingState_);
cellularMachine->connectId_ = 1;
activating->stateMachine_ = cellularMachine;
std::shared_ptr<SetupDataCallResultInfo> setupDataCallResultInfo = std::make_shared<SetupDataCallResultInfo>();
setupDataCallResultInfo->flag = 1;
setupDataCallResultInfo->reason = 1;
auto event = AppExecFwk::InnerEvent::Get(0, setupDataCallResultInfo);
activating->RilActivatePdpContextDone(event);
}
/**
* @tc.number Activating_RilActivatePdpContextDone_004
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Activating_RilActivatePdpContextDone_004, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
EXPECT_NE(machine, nullptr);
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto activating = std::static_pointer_cast<Activating>(cellularMachine->activatingState_);
cellularMachine->connectId_ = 1;
activating->stateMachine_ = cellularMachine;
std::shared_ptr<SetupDataCallResultInfo> setupDataCallResultInfo = std::make_shared<SetupDataCallResultInfo>();
setupDataCallResultInfo->flag = 1;
setupDataCallResultInfo->reason = 0;
setupDataCallResultInfo->active = 0;
auto event = AppExecFwk::InnerEvent::Get(0, setupDataCallResultInfo);
activating->RilActivatePdpContextDone(event);
}
/**
* @tc.number Activating_RilActivatePdpContextDone_005
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Activating_RilActivatePdpContextDone_005, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto activating = std::static_pointer_cast<Activating>(cellularMachine->activatingState_);
cellularMachine->connectId_ = 1;
activating->stateMachine_ = cellularMachine;
std::shared_ptr<SetupDataCallResultInfo> setupDataCallResultInfo = std::make_shared<SetupDataCallResultInfo>();
setupDataCallResultInfo->flag = 1;
setupDataCallResultInfo->reason = 0;
setupDataCallResultInfo->active = 1;
setupDataCallResultInfo->cid = 99;
auto event = AppExecFwk::InnerEvent::Get(0, setupDataCallResultInfo);
bool result = activating->RilActivatePdpContextDone(event);
EXPECT_EQ(result, true);
}
/**
* @tc.number Activating_RilErrorResponse_001
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Activating_RilErrorResponse_001, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto activating = std::static_pointer_cast<Activating>(cellularMachine->activatingState_);
cellularMachine->connectId_ = 1;
activating->stateMachine_ = cellularMachine;
std::shared_ptr<RadioResponseInfo> radioResponseInfo = std::make_shared<RadioResponseInfo>();
radioResponseInfo->flag = 12;
auto event = AppExecFwk::InnerEvent::Get(0, radioResponseInfo);
bool result = activating->RilErrorResponse(event);
EXPECT_EQ(result, false);
}
/**
* @tc.number Activating_RilErrorResponse_002
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Activating_RilErrorResponse_002, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto activating = std::static_pointer_cast<Activating>(cellularMachine->activatingState_);
cellularMachine->connectId_ = 1;
activating->stateMachine_ = cellularMachine;
std::shared_ptr<RadioResponseInfo> radioResponseInfo = std::make_shared<RadioResponseInfo>();
radioResponseInfo->flag = 1;
radioResponseInfo->error = ErrType::ERR_GENERIC_FAILURE;
auto event = AppExecFwk::InnerEvent::Get(0, radioResponseInfo);
bool result = activating->RilErrorResponse(event);
EXPECT_EQ(result, true);
}
/**
* @tc.number Activating_RilErrorResponse_003
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Activating_RilErrorResponse_003, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto activating = std::static_pointer_cast<Activating>(cellularMachine->activatingState_);
cellularMachine->connectId_ = 1;
activating->stateMachine_ = cellularMachine;
std::shared_ptr<RadioResponseInfo> radioResponseInfo = std::make_shared<RadioResponseInfo>();
radioResponseInfo->flag = 1;
radioResponseInfo->error = ErrType::ERR_INVALID_RESPONSE;
auto event = AppExecFwk::InnerEvent::Get(0, radioResponseInfo);
bool result = activating->RilErrorResponse(event);
EXPECT_EQ(result, true);
}
/**
* @tc.number Activating_RilErrorResponse_004
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Activating_RilErrorResponse_004, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto activating = std::static_pointer_cast<Activating>(cellularMachine->activatingState_);
cellularMachine->connectId_ = 1;
activating->stateMachine_ = cellularMachine;
std::shared_ptr<RadioResponseInfo> radioResponseInfo = std::make_shared<RadioResponseInfo>();
radioResponseInfo->flag = 1;
radioResponseInfo->error = ErrType::NONE;
auto event = AppExecFwk::InnerEvent::Get(0, radioResponseInfo);
bool result = activating->RilErrorResponse(event);
EXPECT_EQ(result, true);
}
/**
* @tc.number Activating_RilErrorResponse_005
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Activating_RilErrorResponse_005, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto activating = std::static_pointer_cast<Activating>(cellularMachine->activatingState_);
cellularMachine = nullptr;
activating->stateMachine_ = cellularMachine;
auto event = AppExecFwk::InnerEvent::Get(0);
bool result = activating->RilErrorResponse(event);
EXPECT_EQ(result, false);
}
/**
* @tc.number Active_CellularDataStateMachine_001
* @tc.name test function branch
* @tc.desc Function test
*/
HWTEST_F(CellularStateMachineTest, Active_CellularDataStateMachine_001, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto active = std::static_pointer_cast<Active>(cellularMachine->activeState_);
cellularMachine = nullptr;
active->stateMachine_ = cellularMachine;
active->StateBegin();
auto event = AppExecFwk::InnerEvent::Get(0);
bool result = active->ProcessDisconnectDone(event);
EXPECT_EQ(result, false);
result = active->ProcessDisconnectAllDone(event);
EXPECT_EQ(result, false);
result = active->ProcessLostConnection(event);
EXPECT_EQ(result, false);
result = active->ProcessLinkCapabilityChanged(event);
EXPECT_EQ(result, false);
result = active->ProcessDataConnectionRoamOn(event);
EXPECT_EQ(result, false);
active->RefreshConnectionBandwidths();
result = active->ProcessDataConnectionRoamOff(event);
EXPECT_EQ(result, false);
active->RefreshTcpBufferSizes();
result = active->ProcessDataConnectionVoiceCallStartedOrEnded(event);
EXPECT_EQ(result, false);
}
/**
* @tc.number Activating_RilErrorResponse_006
* @tc.name test rilSetChdataErrCnt_ branch to trigger RestartRadio
* @tc.desc Function test - test RestartRadio is called when rilSetChdataErrCnt_ reaches 5 with error = 100
*/
HWTEST_F(CellularStateMachineTest, Activating_RilErrorResponse_006, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto activating = std::static_pointer_cast<Activating>(cellularMachine->activatingState_);
cellularMachine->connectId_ = 1;
activating->stateMachine_ = cellularMachine;
activating->rilSetChdataErrCnt_ = 4;
std::shared_ptr<RadioResponseInfo> radioResponseInfo = std::make_shared<RadioResponseInfo>();
radioResponseInfo->flag = 1;
radioResponseInfo->error = ErrType::ERR_SET_CHDATA_FAIL;
auto event = AppExecFwk::InnerEvent::Get(0, radioResponseInfo);
bool result = activating->RilErrorResponse(event);
EXPECT_EQ(result, true);
EXPECT_EQ(activating->rilSetChdataErrCnt_, 0);
}
/**
* @tc.number Activating_RilErrorResponse_007
* @tc.name test rilSetChdataErrCnt_ does not trigger RestartRadio when less than 5
* @tc.desc Function test - test RestartRadio is not called when rilSetChdataErrCnt_ is less than 5 with error=100
*/
HWTEST_F(CellularStateMachineTest, Activating_RilErrorResponse_007, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto activating = std::static_pointer_cast<Activating>(cellularMachine->activatingState_);
cellularMachine->connectId_ = 1;
activating->stateMachine_ = cellularMachine;
activating->rilSetChdataErrCnt_ = 3;
std::shared_ptr<RadioResponseInfo> radioResponseInfo = std::make_shared<RadioResponseInfo>();
radioResponseInfo->flag = 1;
radioResponseInfo->error = ErrType::ERR_SET_CHDATA_FAIL;
auto event = AppExecFwk::InnerEvent::Get(0, radioResponseInfo);
bool result = activating->RilErrorResponse(event);
EXPECT_EQ(result, true);
EXPECT_EQ(activating->rilSetChdataErrCnt_, 4);
}
/**
* @tc.number Activating_RilErrorResponse_008
* @tc.name test non-RIL_ERR_SET_CHDATA error goes to else branch
* @tc.desc Function test - test non-100 error does not increment rilSetChdataErrCnt_
*/
HWTEST_F(CellularStateMachineTest, Activating_RilErrorResponse_008, Function | MediumTest | Level1)
{
if (cellularMachine == nullptr) {
std::shared_ptr<CellularMachineTest> machine = std::make_shared<CellularMachineTest>();
cellularMachine = machine->CreateCellularDataConnect(0);
cellularMachine->Init();
}
auto activating = std::static_pointer_cast<Activating>(cellularMachine->activatingState_);
cellularMachine->connectId_ = 1;
activating->stateMachine_ = cellularMachine;
activating->rilSetChdataErrCnt_ = 3;
std::shared_ptr<RadioResponseInfo> radioResponseInfo = std::make_shared<RadioResponseInfo>();
radioResponseInfo->flag = 1;
radioResponseInfo->error = ErrType::ERR_GENERIC_FAILURE;
auto event = AppExecFwk::InnerEvent::Get(0, radioResponseInfo);
bool result = activating->RilErrorResponse(event);
EXPECT_EQ(result, true);
EXPECT_EQ(activating->rilSetChdataErrCnt_, 3);
}
} // namespace Telephony
} // namespace OHOS