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 "cellular_data_error.h" 192d43be4eSopenharmony_ci#include "cellular_data_service.h" 202d43be4eSopenharmony_ci#include "data_access_token.h" 212d43be4eSopenharmony_ci#include "data_connection_monitor.h" 222d43be4eSopenharmony_ci#include "gtest/gtest.h" 232d43be4eSopenharmony_ci#include "tel_ril_network_parcel.h" 242d43be4eSopenharmony_ci#include "traffic_management.h" 252d43be4eSopenharmony_ci 262d43be4eSopenharmony_cinamespace OHOS { 272d43be4eSopenharmony_cinamespace Telephony { 282d43be4eSopenharmony_ciusing namespace testing::ext; 292d43be4eSopenharmony_ci 302d43be4eSopenharmony_cistatic const int32_t SLEEP_TIME = 3; 312d43be4eSopenharmony_ci 322d43be4eSopenharmony_ciclass CellularDataServiceTest : public testing::Test { 332d43be4eSopenharmony_cipublic: 342d43be4eSopenharmony_ci static void SetUpTestCase(); 352d43be4eSopenharmony_ci static void TearDownTestCase(); 362d43be4eSopenharmony_ci void SetUp(); 372d43be4eSopenharmony_ci void TearDown(); 382d43be4eSopenharmony_ci std::shared_ptr<CellularDataService> service = DelayedSingleton<CellularDataService>::GetInstance(); 392d43be4eSopenharmony_ci}; 402d43be4eSopenharmony_civoid CellularDataServiceTest::SetUpTestCase() {} 412d43be4eSopenharmony_ci 422d43be4eSopenharmony_civoid CellularDataServiceTest::TearDownTestCase() 432d43be4eSopenharmony_ci{ 442d43be4eSopenharmony_ci sleep(SLEEP_TIME); 452d43be4eSopenharmony_ci} 462d43be4eSopenharmony_ci 472d43be4eSopenharmony_civoid CellularDataServiceTest::SetUp() {} 482d43be4eSopenharmony_ci 492d43be4eSopenharmony_civoid CellularDataServiceTest::TearDown() {} 502d43be4eSopenharmony_ci 512d43be4eSopenharmony_ci/** 522d43be4eSopenharmony_ci * @tc.number CellularDataService_001 532d43be4eSopenharmony_ci * @tc.name test function branch 542d43be4eSopenharmony_ci * @tc.desc Function test 552d43be4eSopenharmony_ci */ 562d43be4eSopenharmony_ciHWTEST_F(CellularDataServiceTest, CellularDataService_001, TestSize.Level0) 572d43be4eSopenharmony_ci{ 582d43be4eSopenharmony_ci DataAccessToken token; 592d43be4eSopenharmony_ci service->OnStart(); 602d43be4eSopenharmony_ci service->isInitSuccess_ = true; 612d43be4eSopenharmony_ci bool dataEnabled = false; 622d43be4eSopenharmony_ci bool dataRoamingEnabled = false; 632d43be4eSopenharmony_ci ASSERT_NE(TELEPHONY_ERR_SUCCESS, service->IsCellularDataEnabled(dataEnabled)); 642d43be4eSopenharmony_ci ASSERT_NE(TELEPHONY_ERR_SUCCESS, service->EnableCellularData(false)); 652d43be4eSopenharmony_ci ASSERT_NE(TELEPHONY_ERR_SUCCESS, service->EnableCellularData(true)); 662d43be4eSopenharmony_ci ASSERT_NE(TELEPHONY_ERR_SUCCESS, service->EnableIntelligenceSwitch(false)); 672d43be4eSopenharmony_ci ASSERT_NE(TELEPHONY_ERR_SUCCESS, service->EnableIntelligenceSwitch(true)); 682d43be4eSopenharmony_ci ASSERT_NE(TELEPHONY_ERR_SUCCESS, service->GetCellularDataState()); 692d43be4eSopenharmony_ci ASSERT_EQ(static_cast<int32_t>(DisConnectionReason::REASON_CHANGE_CONNECTION), 702d43be4eSopenharmony_ci service->GetApnState(DEFAULT_SIM_SLOT_ID, std::string())); 712d43be4eSopenharmony_ci ASSERT_NE(TELEPHONY_ERR_SUCCESS, service->IsCellularDataRoamingEnabled(DEFAULT_SIM_SLOT_ID, dataRoamingEnabled)); 722d43be4eSopenharmony_ci ASSERT_NE(TELEPHONY_ERR_SUCCESS, service->EnableCellularDataRoaming(DEFAULT_SIM_SLOT_ID, true)); 732d43be4eSopenharmony_ci NetRequest request; 742d43be4eSopenharmony_ci request.ident = "simId12"; 752d43be4eSopenharmony_ci ASSERT_NE(TELEPHONY_ERR_SUCCESS, service->RequestNet(request)); 762d43be4eSopenharmony_ci request.ident = "simId2"; 772d43be4eSopenharmony_ci ASSERT_NE(TELEPHONY_ERR_SUCCESS, service->ReleaseNet(request)); 782d43be4eSopenharmony_ci auto event = AppExecFwk::InnerEvent::Get(0); 792d43be4eSopenharmony_ci service->DispatchEvent(DEFAULT_SIM_SLOT_ID, event); 802d43be4eSopenharmony_ci ASSERT_EQ(TELEPHONY_ERR_SUCCESS, service->HandleApnChanged(DEFAULT_SIM_SLOT_ID)); 812d43be4eSopenharmony_ci} 822d43be4eSopenharmony_ci 832d43be4eSopenharmony_ci/** 842d43be4eSopenharmony_ci * @tc.number CellularDataService_002 852d43be4eSopenharmony_ci * @tc.name test function branch 862d43be4eSopenharmony_ci * @tc.desc Function test 872d43be4eSopenharmony_ci */ 882d43be4eSopenharmony_ciHWTEST_F(CellularDataServiceTest, CellularDataService_002, TestSize.Level0) 892d43be4eSopenharmony_ci{ 902d43be4eSopenharmony_ci ASSERT_NE(TELEPHONY_ERR_SUCCESS, service->GetCellularDataFlowType()); 912d43be4eSopenharmony_ci ASSERT_EQ("default slotId: -1", service->GetStateMachineCurrentStatusDump()); 922d43be4eSopenharmony_ci service->GetFlowDataInfoDump(); 932d43be4eSopenharmony_ci ASSERT_NE(TELEPHONY_ERR_SUCCESS, service->StrategySwitch(DEFAULT_SIM_SLOT_ID, false)); 942d43be4eSopenharmony_ci ASSERT_EQ(TELEPHONY_ERR_SUCCESS, service->HasInternetCapability(DEFAULT_SIM_SLOT_ID, 0)); 952d43be4eSopenharmony_ci DisConnectionReason reason = DisConnectionReason::REASON_NORMAL; 962d43be4eSopenharmony_ci ASSERT_NE(TELEPHONY_ERR_SUCCESS, service->ClearAllConnections(DEFAULT_SIM_SLOT_ID, reason)); 972d43be4eSopenharmony_ci ASSERT_EQ(TELEPHONY_ERR_SUCCESS, service->ChangeConnectionForDsds(DEFAULT_SIM_SLOT_ID, false)); 982d43be4eSopenharmony_ci ASSERT_EQ(TELEPHONY_ERR_SUCCESS, service->ChangeConnectionForDsds(DEFAULT_SIM_SLOT_ID, true)); 992d43be4eSopenharmony_ci ApnItem::Attribute apnAttr; 1002d43be4eSopenharmony_ci ASSERT_NE(TELEPHONY_ERR_SUCCESS, service->GetDataConnApnAttr(DEFAULT_SIM_SLOT_ID, apnAttr)); 1012d43be4eSopenharmony_ci std::string ipType; 1022d43be4eSopenharmony_ci ASSERT_EQ(TELEPHONY_ERR_SUCCESS, service->GetDataConnIpType(DEFAULT_SIM_SLOT_ID, ipType)); 1032d43be4eSopenharmony_ci ASSERT_EQ(TELEPHONY_ERR_SUCCESS, service->IsNeedDoRecovery(DEFAULT_SIM_SLOT_ID, true)); 1042d43be4eSopenharmony_ci uint32_t supplierId = 0; 1052d43be4eSopenharmony_ci ASSERT_EQ(TELEPHONY_ERR_SUCCESS, 1062d43be4eSopenharmony_ci service->GetCellularDataSupplierId(DEFAULT_SIM_SLOT_ID, NetCap::NET_CAPABILITY_INTERNET, supplierId)); 1072d43be4eSopenharmony_ci ASSERT_EQ(CELLULAR_DATA_INVALID_PARAM, 1082d43be4eSopenharmony_ci service->GetCellularDataSupplierId(DEFAULT_SIM_SLOT_ID, NetCap::NET_CAPABILITY_END, supplierId)); 1092d43be4eSopenharmony_ci service->CorrectNetSupplierNoAvailable(DEFAULT_SIM_SLOT_ID); 1102d43be4eSopenharmony_ci int32_t regState = -1; 1112d43be4eSopenharmony_ci service->GetSupplierRegisterState(supplierId, regState); 1122d43be4eSopenharmony_ci service->OnStop(); 1132d43be4eSopenharmony_ci} 1142d43be4eSopenharmony_ci 1152d43be4eSopenharmony_ci/** 1162d43be4eSopenharmony_ci * @tc.number DataConnectionMonitor_HandleScreenStateChanged_001 1172d43be4eSopenharmony_ci * @tc.name test function branch 1182d43be4eSopenharmony_ci * @tc.desc Function test 1192d43be4eSopenharmony_ci */ 1202d43be4eSopenharmony_ciHWTEST_F(CellularDataServiceTest, DataConnectionMonitor_HandleScreenStateChanged_001, TestSize.Level0) 1212d43be4eSopenharmony_ci{ 1222d43be4eSopenharmony_ci std::shared_ptr<DataConnectionMonitor> dataConnectionMonitor = std::make_shared<DataConnectionMonitor>(0); 1232d43be4eSopenharmony_ci dataConnectionMonitor->isScreenOn_ = false; 1242d43be4eSopenharmony_ci dataConnectionMonitor->HandleScreenStateChanged(true); 1252d43be4eSopenharmony_ci ASSERT_EQ(dataConnectionMonitor->isScreenOn_, true); 1262d43be4eSopenharmony_ci dataConnectionMonitor->isScreenOn_ = false; 1272d43be4eSopenharmony_ci dataConnectionMonitor->HandleScreenStateChanged(false); 1282d43be4eSopenharmony_ci ASSERT_EQ(dataConnectionMonitor->isScreenOn_, false); 1292d43be4eSopenharmony_ci} 1302d43be4eSopenharmony_ci 1312d43be4eSopenharmony_ci/** 1322d43be4eSopenharmony_ci * @tc.number DataConnectionMonitor_OnStallDetectionTimer_001 1332d43be4eSopenharmony_ci * @tc.name test function branch 1342d43be4eSopenharmony_ci * @tc.desc Function test 1352d43be4eSopenharmony_ci */ 1362d43be4eSopenharmony_ciHWTEST_F(CellularDataServiceTest, DataConnectionMonitor_OnStallDetectionTimer_001, TestSize.Level0) 1372d43be4eSopenharmony_ci{ 1382d43be4eSopenharmony_ci std::shared_ptr<DataConnectionMonitor> dataConnectionMonitor = std::make_shared<DataConnectionMonitor>(0); 1392d43be4eSopenharmony_ci dataConnectionMonitor->noRecvPackets_ = 20; 1402d43be4eSopenharmony_ci dataConnectionMonitor->stallDetectionEnabled_ = true; 1412d43be4eSopenharmony_ci dataConnectionMonitor->OnStallDetectionTimer(); 1422d43be4eSopenharmony_ci ASSERT_EQ(dataConnectionMonitor->noRecvPackets_, 20); 1432d43be4eSopenharmony_ci} 1442d43be4eSopenharmony_ci 1452d43be4eSopenharmony_ci/** 1462d43be4eSopenharmony_ci * @tc.number DataConnectionMonitor_HandleRecovery_001 1472d43be4eSopenharmony_ci * @tc.name test function branch 1482d43be4eSopenharmony_ci * @tc.desc Function test 1492d43be4eSopenharmony_ci */ 1502d43be4eSopenharmony_ciHWTEST_F(CellularDataServiceTest, DataConnectionMonitor_HandleRecovery_001, TestSize.Level0) 1512d43be4eSopenharmony_ci{ 1522d43be4eSopenharmony_ci std::shared_ptr<DataConnectionMonitor> dataConnectionMonitor = std::make_shared<DataConnectionMonitor>(0); 1532d43be4eSopenharmony_ci dataConnectionMonitor->dataRecoveryState_ = RecoveryState::STATE_REQUEST_CONTEXT_LIST; 1542d43be4eSopenharmony_ci dataConnectionMonitor->HandleRecovery(); 1552d43be4eSopenharmony_ci ASSERT_EQ(dataConnectionMonitor->dataRecoveryState_, RecoveryState::STATE_CLEANUP_CONNECTIONS); 1562d43be4eSopenharmony_ci dataConnectionMonitor->dataRecoveryState_ = RecoveryState::STATE_REREGISTER_NETWORK; 1572d43be4eSopenharmony_ci dataConnectionMonitor->HandleRecovery(); 1582d43be4eSopenharmony_ci ASSERT_EQ(dataConnectionMonitor->dataRecoveryState_, RecoveryState::STATE_RADIO_STATUS_RESTART); 1592d43be4eSopenharmony_ci dataConnectionMonitor->dataRecoveryState_ = RecoveryState::STATE_RADIO_STATUS_RESTART; 1602d43be4eSopenharmony_ci dataConnectionMonitor->HandleRecovery(); 1612d43be4eSopenharmony_ci ASSERT_EQ(dataConnectionMonitor->dataRecoveryState_, RecoveryState::STATE_REQUEST_CONTEXT_LIST); 1622d43be4eSopenharmony_ci} 1632d43be4eSopenharmony_ci 1642d43be4eSopenharmony_ci/** 1652d43be4eSopenharmony_ci * @tc.number DataConnectionMonitor_EndNetStatistics_001 1662d43be4eSopenharmony_ci * @tc.name test function branch 1672d43be4eSopenharmony_ci * @tc.desc Function test 1682d43be4eSopenharmony_ci */ 1692d43be4eSopenharmony_ciHWTEST_F(CellularDataServiceTest, DataConnectionMonitor_EndNetStatistics_001, TestSize.Level0) 1702d43be4eSopenharmony_ci{ 1712d43be4eSopenharmony_ci std::shared_ptr<DataConnectionMonitor> dataConnectionMonitor = std::make_shared<DataConnectionMonitor>(0); 1722d43be4eSopenharmony_ci dataConnectionMonitor->dataFlowType_ = CellDataFlowType::DATA_FLOW_TYPE_DOWN; 1732d43be4eSopenharmony_ci dataConnectionMonitor->EndNetStatistics(); 1742d43be4eSopenharmony_ci ASSERT_EQ(dataConnectionMonitor->dataFlowType_, CellDataFlowType::DATA_FLOW_TYPE_NONE); 1752d43be4eSopenharmony_ci} 1762d43be4eSopenharmony_ci 1772d43be4eSopenharmony_ci/** 1782d43be4eSopenharmony_ci * @tc.number DataConnectionMonitor_UpdateNetTrafficState_001 1792d43be4eSopenharmony_ci * @tc.name test function branch 1802d43be4eSopenharmony_ci * @tc.desc Function test 1812d43be4eSopenharmony_ci */ 1822d43be4eSopenharmony_ciHWTEST_F(CellularDataServiceTest, DataConnectionMonitor_UpdateNetTrafficState_001, TestSize.Level0) 1832d43be4eSopenharmony_ci{ 1842d43be4eSopenharmony_ci std::shared_ptr<DataConnectionMonitor> dataConnectionMonitor = std::make_shared<DataConnectionMonitor>(0); 1852d43be4eSopenharmony_ci dataConnectionMonitor->updateNetStat_ = true; 1862d43be4eSopenharmony_ci dataConnectionMonitor->UpdateNetTrafficState(); 1872d43be4eSopenharmony_ci std::shared_ptr<PreferredNetworkTypeInfo> preferredTypeInfo = std::make_shared<PreferredNetworkTypeInfo>(); 1882d43be4eSopenharmony_ci auto event = AppExecFwk::InnerEvent::Get(0, preferredTypeInfo); 1892d43be4eSopenharmony_ci dataConnectionMonitor->SetPreferredNetworkPara(event); 1902d43be4eSopenharmony_ci ASSERT_EQ(dataConnectionMonitor->dataFlowType_, CellDataFlowType::DATA_FLOW_TYPE_NONE); 1912d43be4eSopenharmony_ci} 1922d43be4eSopenharmony_ci 1932d43be4eSopenharmony_ci/** 1942d43be4eSopenharmony_ci * @tc.number DataConnectionMonitor_UpdateDataFlowType_001 1952d43be4eSopenharmony_ci * @tc.name test function branch 1962d43be4eSopenharmony_ci * @tc.desc Function test 1972d43be4eSopenharmony_ci */ 1982d43be4eSopenharmony_ciHWTEST_F(CellularDataServiceTest, DataConnectionMonitor_UpdateDataFlowType_001, TestSize.Level0) 1992d43be4eSopenharmony_ci{ 2002d43be4eSopenharmony_ci std::shared_ptr<DataConnectionMonitor> dataConnectionMonitor = std::make_shared<DataConnectionMonitor>(0); 2012d43be4eSopenharmony_ci dataConnectionMonitor->dataFlowType_ = CellDataFlowType::DATA_FLOW_TYPE_DOWN; 2022d43be4eSopenharmony_ci dataConnectionMonitor->trafficManager_->sendPackets_ = 200; 2032d43be4eSopenharmony_ci dataConnectionMonitor->trafficManager_->recvPackets_ = 100; 2042d43be4eSopenharmony_ci dataConnectionMonitor->UpdateDataFlowType(); 2052d43be4eSopenharmony_ci ASSERT_EQ(static_cast<int32_t>(dataConnectionMonitor->dataFlowType_), 2062d43be4eSopenharmony_ci static_cast<int32_t>(CellDataFlowType::DATA_FLOW_TYPE_NONE)); 2072d43be4eSopenharmony_ci} 2082d43be4eSopenharmony_ci 2092d43be4eSopenharmony_ci/** 2102d43be4eSopenharmony_ci * @tc.number DataConnectionMonitor_SetDataFlowType_001 2112d43be4eSopenharmony_ci * @tc.name test function branch 2122d43be4eSopenharmony_ci * @tc.desc Function test 2132d43be4eSopenharmony_ci */ 2142d43be4eSopenharmony_ciHWTEST_F(CellularDataServiceTest, DataConnectionMonitor_SetDataFlowType_001, TestSize.Level0) 2152d43be4eSopenharmony_ci{ 2162d43be4eSopenharmony_ci std::shared_ptr<DataConnectionMonitor> dataConnectionMonitor = std::make_shared<DataConnectionMonitor>(0); 2172d43be4eSopenharmony_ci auto event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_RUN_MONITOR_TASK); 2182d43be4eSopenharmony_ci dataConnectionMonitor->ProcessEvent(event); 2192d43be4eSopenharmony_ci event = AppExecFwk::InnerEvent::Get(CellularDataEventCode::MSG_STALL_DETECTION_EVENT_ID); 2202d43be4eSopenharmony_ci dataConnectionMonitor->ProcessEvent(event); 2212d43be4eSopenharmony_ci event = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_DATA_CALL_LIST_CHANGED); 2222d43be4eSopenharmony_ci dataConnectionMonitor->ProcessEvent(event); 2232d43be4eSopenharmony_ci event = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_GET_PREFERRED_NETWORK_MODE); 2242d43be4eSopenharmony_ci dataConnectionMonitor->ProcessEvent(event); 2252d43be4eSopenharmony_ci event = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_SET_PREFERRED_NETWORK_MODE); 2262d43be4eSopenharmony_ci dataConnectionMonitor->ProcessEvent(event); 2272d43be4eSopenharmony_ci event = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_OFF); 2282d43be4eSopenharmony_ci dataConnectionMonitor->ProcessEvent(event); 2292d43be4eSopenharmony_ci event = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_ON); 2302d43be4eSopenharmony_ci dataConnectionMonitor->ProcessEvent(event); 2312d43be4eSopenharmony_ci dataConnectionMonitor->dataFlowType_ = CellDataFlowType::DATA_FLOW_TYPE_NONE; 2322d43be4eSopenharmony_ci dataConnectionMonitor->SetDataFlowType(CellDataFlowType::DATA_FLOW_TYPE_DOWN); 2332d43be4eSopenharmony_ci ASSERT_EQ(static_cast<int32_t>(dataConnectionMonitor->dataFlowType_), 2342d43be4eSopenharmony_ci static_cast<int32_t>(CellDataFlowType::DATA_FLOW_TYPE_DOWN)); 2352d43be4eSopenharmony_ci} 2362d43be4eSopenharmony_ci 2372d43be4eSopenharmony_ci/** 2382d43be4eSopenharmony_ci * @tc.number CellularDataController_SetIntelligenceSwitchEnable_001 2392d43be4eSopenharmony_ci * @tc.name test function branch 2402d43be4eSopenharmony_ci * @tc.desc Function test 2412d43be4eSopenharmony_ci */ 2422d43be4eSopenharmony_ciHWTEST_F(CellularDataServiceTest, CellularDataController_SetIntelligenceSwitchEnable_001, TestSize.Level0) 2432d43be4eSopenharmony_ci{ 2442d43be4eSopenharmony_ci std::shared_ptr<CellularDataController> cellularDataController = std::make_shared<CellularDataController>(0); 2452d43be4eSopenharmony_ci cellularDataController->cellularDataHandler_ = nullptr; 2462d43be4eSopenharmony_ci int32_t result = cellularDataController->SetIntelligenceSwitchEnable(true); 2472d43be4eSopenharmony_ci ASSERT_EQ(result, TELEPHONY_ERR_LOCAL_PTR_NULL); 2482d43be4eSopenharmony_ci} 2492d43be4eSopenharmony_ci 2502d43be4eSopenharmony_ci/** 2512d43be4eSopenharmony_ci * @tc.number CellularDataController_SetIntelligenceSwitchEnable_002 2522d43be4eSopenharmony_ci * @tc.name test function branch 2532d43be4eSopenharmony_ci * @tc.desc Function test 2542d43be4eSopenharmony_ci */ 2552d43be4eSopenharmony_ciHWTEST_F(CellularDataServiceTest, CellularDataController_SetIntelligenceSwitchEnable_002, TestSize.Level0) 2562d43be4eSopenharmony_ci{ 2572d43be4eSopenharmony_ci std::shared_ptr<CellularDataController> cellularDataController = std::make_shared<CellularDataController>(0); 2582d43be4eSopenharmony_ci cellularDataController->Init(); 2592d43be4eSopenharmony_ci int32_t result = cellularDataController->SetIntelligenceSwitchEnable(false); 2602d43be4eSopenharmony_ci ASSERT_EQ(result, 0); 2612d43be4eSopenharmony_ci} 2622d43be4eSopenharmony_ci 2632d43be4eSopenharmony_ci/** 2642d43be4eSopenharmony_ci * @tc.number CellularDataController_OnAddSystemAbility_001 2652d43be4eSopenharmony_ci * @tc.name test function branch 2662d43be4eSopenharmony_ci * @tc.desc Function test 2672d43be4eSopenharmony_ci */ 2682d43be4eSopenharmony_ciHWTEST_F(CellularDataServiceTest, CellularDataController_OnAddSystemAbility_001, TestSize.Level0) 2692d43be4eSopenharmony_ci{ 2702d43be4eSopenharmony_ci std::shared_ptr<CellularDataController> cellularDataController = std::make_shared<CellularDataController>(0); 2712d43be4eSopenharmony_ci cellularDataController->systemAbilityListener_ = 2722d43be4eSopenharmony_ci new (std::nothrow) CellularDataController::SystemAbilityStatusChangeListener(0, nullptr); 2732d43be4eSopenharmony_ci if (cellularDataController->systemAbilityListener_ != nullptr) { 2742d43be4eSopenharmony_ci cellularDataController->systemAbilityListener_->OnRemoveSystemAbility( 2752d43be4eSopenharmony_ci COMM_NET_CONN_MANAGER_SYS_ABILITY_ID, ""); 2762d43be4eSopenharmony_ci cellularDataController->systemAbilityListener_->OnRemoveSystemAbility( 2772d43be4eSopenharmony_ci COMM_NET_POLICY_MANAGER_SYS_ABILITY_ID, ""); 2782d43be4eSopenharmony_ci cellularDataController->systemAbilityListener_->OnRemoveSystemAbility( 2792d43be4eSopenharmony_ci DISTRIBUTED_KV_DATA_SERVICE_ABILITY_ID, ""); 2802d43be4eSopenharmony_ci cellularDataController->systemAbilityListener_->OnRemoveSystemAbility(-1, ""); 2812d43be4eSopenharmony_ci } 2822d43be4eSopenharmony_ci ASSERT_EQ(cellularDataController->cellularDataHandler_, nullptr); 2832d43be4eSopenharmony_ci} 2842d43be4eSopenharmony_ci 2852d43be4eSopenharmony_ci/** 2862d43be4eSopenharmony_ci * @tc.number RemoveOrAddUidTest001 2872d43be4eSopenharmony_ci * @tc.name test function branch 2882d43be4eSopenharmony_ci * @tc.desc Function test 2892d43be4eSopenharmony_ci */ 2902d43be4eSopenharmony_ciHWTEST_F(CellularDataServiceTest, RemoveOrAddUidTest001, TestSize.Level0) 2912d43be4eSopenharmony_ci{ 2922d43be4eSopenharmony_ci NetRequest request; 2932d43be4eSopenharmony_ci request.ident = "simId123456789123"; 2942d43be4eSopenharmony_ci EXPECT_EQ(service->AddUid(request), CELLULAR_DATA_INVALID_PARAM); 2952d43be4eSopenharmony_ci EXPECT_EQ(service->RemoveUid(request), CELLULAR_DATA_INVALID_PARAM); 2962d43be4eSopenharmony_ci request.ident = "simId12"; 2972d43be4eSopenharmony_ci EXPECT_EQ(service->AddUid(request), CELLULAR_DATA_INVALID_PARAM); 2982d43be4eSopenharmony_ci EXPECT_EQ(service->RemoveUid(request), CELLULAR_DATA_INVALID_PARAM); 2992d43be4eSopenharmony_ci} 3002d43be4eSopenharmony_ci 3012d43be4eSopenharmony_ci/** 3022d43be4eSopenharmony_ci * @tc.number EstablishAllApnsIfConnectableTest001 3032d43be4eSopenharmony_ci * @tc.name test function branch 3042d43be4eSopenharmony_ci * @tc.desc Function test 3052d43be4eSopenharmony_ci */ 3062d43be4eSopenharmony_ciHWTEST_F(CellularDataServiceTest, EstablishAllApnsIfConnectableTest001, TestSize.Level0) 3072d43be4eSopenharmony_ci{ 3082d43be4eSopenharmony_ci int32_t slotId = -1; 3092d43be4eSopenharmony_ci EXPECT_EQ(service->EstablishAllApnsIfConnectable(slotId), TELEPHONY_ERR_PERMISSION_ERR); 3102d43be4eSopenharmony_ci EXPECT_EQ(service->ReleaseCellularDataConnection(slotId), TELEPHONY_ERR_PERMISSION_ERR); 3112d43be4eSopenharmony_ci} 3122d43be4eSopenharmony_ci 3132d43be4eSopenharmony_ci} // namespace Telephony 3142d43be4eSopenharmony_ci} // namespace OHOS