12d43be4eSopenharmony_ci/*
22d43be4eSopenharmony_ci * Copyright (C) 2021 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
162d43be4eSopenharmony_ci#include <cstdint>
172d43be4eSopenharmony_ci#include <string>
182d43be4eSopenharmony_ci
192d43be4eSopenharmony_ci#define private public
202d43be4eSopenharmony_ci#include <gtest/gtest.h>
212d43be4eSopenharmony_ci
222d43be4eSopenharmony_ci#include "cellular_data_client.h"
232d43be4eSopenharmony_ci#include "cellular_data_controller.h"
242d43be4eSopenharmony_ci#include "cellular_data_error.h"
252d43be4eSopenharmony_ci#include "cellular_data_net_agent.h"
262d43be4eSopenharmony_ci#include "cellular_data_service.h"
272d43be4eSopenharmony_ci#include "cellular_data_types.h"
282d43be4eSopenharmony_ci#include "core_service_client.h"
292d43be4eSopenharmony_ci#include "data_access_token.h"
302d43be4eSopenharmony_ci#include "gtest/gtest-message.h"
312d43be4eSopenharmony_ci#include "gtest/gtest-test-part.h"
322d43be4eSopenharmony_ci#include "gtest/gtest_pred_impl.h"
332d43be4eSopenharmony_ci#include "gtest/hwext/gtest-tag.h"
342d43be4eSopenharmony_ci#include "hap_token_info.h"
352d43be4eSopenharmony_ci#include "i_cellular_data_manager.h"
362d43be4eSopenharmony_ci#include "iosfwd"
372d43be4eSopenharmony_ci#include "iostream"
382d43be4eSopenharmony_ci#include "net_conn_callback_stub.h"
392d43be4eSopenharmony_ci#include "net_supplier_callback_base.h"
402d43be4eSopenharmony_ci#include "net_conn_client.h"
412d43be4eSopenharmony_ci#include "net_handle.h"
422d43be4eSopenharmony_ci#include "net_specifier.h"
432d43be4eSopenharmony_ci#include "ostream"
442d43be4eSopenharmony_ci#include "permission_def.h"
452d43be4eSopenharmony_ci#include "permission_state_full.h"
462d43be4eSopenharmony_ci#include "refbase.h"
472d43be4eSopenharmony_ci#include "telephony_ext_wrapper.h"
482d43be4eSopenharmony_ci#include "telephony_types.h"
492d43be4eSopenharmony_ci#include "token_setproc.h"
502d43be4eSopenharmony_ci#include "unistd.h"
512d43be4eSopenharmony_ci#include "apn_item.h"
522d43be4eSopenharmony_ci#include "cellular_data_constant.h"
532d43be4eSopenharmony_ci#include "common_event_manager.h"
542d43be4eSopenharmony_ci#include "common_event_support.h"
552d43be4eSopenharmony_ci
562d43be4eSopenharmony_cinamespace OHOS {
572d43be4eSopenharmony_cinamespace Telephony {
582d43be4eSopenharmony_ciusing namespace testing::ext;
592d43be4eSopenharmony_ciusing namespace OHOS::NetManagerStandard;
602d43be4eSopenharmony_ci
612d43be4eSopenharmony_cistatic const int32_t SLEEP_TIME = 1;
622d43be4eSopenharmony_cistatic const int32_t SIM_SLOT_ID_1 = DEFAULT_SIM_SLOT_ID + 1;
632d43be4eSopenharmony_cistatic const int32_t DATA_SLOT_ID_INVALID = DEFAULT_SIM_SLOT_ID + 10;
642d43be4eSopenharmony_cistatic const int32_t PING_CHECK_SUCCESS = 0;
652d43be4eSopenharmony_cistatic const int32_t PING_CHECK_FAIL = 1;
662d43be4eSopenharmony_cistatic const int32_t MAX_TIMES = 60;
672d43be4eSopenharmony_cistatic const int32_t CMD_BUF_SIZE = 10240;
682d43be4eSopenharmony_cistatic const int32_t NET_REGISTER_TIMEOUT_MS = 20000;
692d43be4eSopenharmony_cistatic const int32_t SLEEP_TIME_SECONDS = 3;
702d43be4eSopenharmony_ci
712d43be4eSopenharmony_ciclass TestCallback : public NetManagerStandard::NetConnCallbackStub {
722d43be4eSopenharmony_ci    int32_t NetAvailable(sptr<NetManagerStandard::NetHandle> &netHandle) override
732d43be4eSopenharmony_ci    {
742d43be4eSopenharmony_ci        isCallback_ = true;
752d43be4eSopenharmony_ci        std::cout << "TestCallback::NetAvailable" << std::endl;
762d43be4eSopenharmony_ci        return 0;
772d43be4eSopenharmony_ci    }
782d43be4eSopenharmony_ci
792d43be4eSopenharmony_ci    int32_t NetCapabilitiesChange(sptr<NetManagerStandard::NetHandle> &netHandle,
802d43be4eSopenharmony_ci        const sptr<NetManagerStandard::NetAllCapabilities> &netAllCap) override
812d43be4eSopenharmony_ci    {
822d43be4eSopenharmony_ci        isCallback_ = true;
832d43be4eSopenharmony_ci        std::cout << "TestCallback::NetCapabilitiesChange" << std::endl;
842d43be4eSopenharmony_ci        return 0;
852d43be4eSopenharmony_ci    }
862d43be4eSopenharmony_ci
872d43be4eSopenharmony_ci    int32_t NetConnectionPropertiesChange(
882d43be4eSopenharmony_ci        sptr<NetManagerStandard::NetHandle> &netHandle, const sptr<NetManagerStandard::NetLinkInfo> &info) override
892d43be4eSopenharmony_ci    {
902d43be4eSopenharmony_ci        isCallback_ = true;
912d43be4eSopenharmony_ci        std::cout << "TestCallback::NetConnectionPropertiesChange" << std::endl;
922d43be4eSopenharmony_ci        return 0;
932d43be4eSopenharmony_ci    }
942d43be4eSopenharmony_ci
952d43be4eSopenharmony_ci    int32_t NetLost(sptr<NetManagerStandard::NetHandle> &netHandle) override
962d43be4eSopenharmony_ci    {
972d43be4eSopenharmony_ci        isCallback_ = true;
982d43be4eSopenharmony_ci        std::cout << "TestCallback::NetLost" << std::endl;
992d43be4eSopenharmony_ci        return 0;
1002d43be4eSopenharmony_ci    }
1012d43be4eSopenharmony_ci
1022d43be4eSopenharmony_ci    int32_t NetUnavailable() override
1032d43be4eSopenharmony_ci    {
1042d43be4eSopenharmony_ci        isCallback_ = true;
1052d43be4eSopenharmony_ci        std::cout << "TestCallback::NetUnavailable" << std::endl;
1062d43be4eSopenharmony_ci        return 0;
1072d43be4eSopenharmony_ci    }
1082d43be4eSopenharmony_ci
1092d43be4eSopenharmony_ci    int32_t NetBlockStatusChange(sptr<NetManagerStandard::NetHandle> &netHandle, bool blocked) override
1102d43be4eSopenharmony_ci    {
1112d43be4eSopenharmony_ci        isCallback_ = true;
1122d43be4eSopenharmony_ci        std::cout << "TestCallback::NetBlockStatusChange" << std::endl;
1132d43be4eSopenharmony_ci        return 0;
1142d43be4eSopenharmony_ci    }
1152d43be4eSopenharmony_ci
1162d43be4eSopenharmony_cipublic:
1172d43be4eSopenharmony_ci    bool isCallback_ = false;
1182d43be4eSopenharmony_ci};
1192d43be4eSopenharmony_ci
1202d43be4eSopenharmony_ciclass CellularDataTest : public testing::Test {
1212d43be4eSopenharmony_cipublic:
1222d43be4eSopenharmony_ci    static void SetUpTestCase();
1232d43be4eSopenharmony_ci    static void TearDownTestCase();
1242d43be4eSopenharmony_ci    virtual void SetUp();
1252d43be4eSopenharmony_ci    virtual void TearDown();
1262d43be4eSopenharmony_ci    static bool HasSimCard(const int32_t slotId);
1272d43be4eSopenharmony_ci    static int32_t IsCellularDataEnabledTest(bool &dataEnabled);
1282d43be4eSopenharmony_ci    static int32_t EnableCellularDataTest(bool enable);
1292d43be4eSopenharmony_ci    static int32_t EnableIntelligenceSwitchTest(bool enable);
1302d43be4eSopenharmony_ci    static int32_t GetCellularDataStateTest();
1312d43be4eSopenharmony_ci    static int32_t IsCellularDataRoamingEnabledTest(int32_t slotId, bool &dataRoamingEnabled);
1322d43be4eSopenharmony_ci    static int32_t EnableCellularDataRoamingTest(int32_t slotId, bool enable);
1332d43be4eSopenharmony_ci    static int32_t GetDefaultCellularDataSlotIdTest();
1342d43be4eSopenharmony_ci    static int32_t GetDefaultCellularDataSimIdTest();
1352d43be4eSopenharmony_ci    static int32_t SetDefaultCellularDataSlotIdTest(int32_t slotId);
1362d43be4eSopenharmony_ci    static int32_t GetCellularDataFlowTypeTest();
1372d43be4eSopenharmony_ci    static void WaitTestTimeout(const int32_t status);
1382d43be4eSopenharmony_ci    static sptr<ICellularDataManager> GetProxy();
1392d43be4eSopenharmony_ci    static string GetCmdResult();
1402d43be4eSopenharmony_ci    static int32_t PingTest();
1412d43be4eSopenharmony_ci    static int32_t HasInternetCapability(int32_t slotId, int32_t cid);
1422d43be4eSopenharmony_ci    static int32_t ClearCellularDataConnections(int32_t slotId);
1432d43be4eSopenharmony_ci    static int32_t ClearAllConnections(int32_t slotId, DisConnectionReason reason);
1442d43be4eSopenharmony_ci    static int32_t GetApnState(int32_t slotId, const std::string &apnTyp);
1452d43be4eSopenharmony_ci    static int32_t GetDataRecoveryState();
1462d43be4eSopenharmony_ci    static int32_t GetDataConnApnAttr(int32_t slotId, ApnItem::Attribute &apnAttr);
1472d43be4eSopenharmony_ci    static int32_t GetDataConnIpType(int32_t slotId, std::string &ipType);
1482d43be4eSopenharmony_ci    static int32_t IsNeedDoRecovery(int32_t slotId, bool needDoRecovery);
1492d43be4eSopenharmony_ci    static int32_t InitCellularDataController(int32_t slotId);
1502d43be4eSopenharmony_ci    static int32_t GetIntelligenceSwitchStateTest(bool &state);
1512d43be4eSopenharmony_ci    static int32_t GetCellularDataSupplierId(int32_t slotId, uint64_t capability, uint32_t &supplierId);
1522d43be4eSopenharmony_ci    static int32_t CorrectNetSupplierNoAvailable(int32_t slotid);
1532d43be4eSopenharmony_ci    static int32_t GetSupplierRegisterState(uint32_t supplierId, int32_t &regState);
1542d43be4eSopenharmony_ci    CellularDataNetAgent &netAgent = CellularDataNetAgent::GetInstance();
1552d43be4eSopenharmony_ci};
1562d43be4eSopenharmony_ci
1572d43be4eSopenharmony_cibool CellularDataTest::HasSimCard(const int32_t slotId)
1582d43be4eSopenharmony_ci{
1592d43be4eSopenharmony_ci    bool hasSimCard = false;
1602d43be4eSopenharmony_ci    DelayedRefSingleton<CoreServiceClient>::GetInstance().HasSimCard(slotId, hasSimCard);
1612d43be4eSopenharmony_ci    return hasSimCard;
1622d43be4eSopenharmony_ci}
1632d43be4eSopenharmony_ci
1642d43be4eSopenharmony_civoid CellularDataTest::TearDownTestCase()
1652d43be4eSopenharmony_ci{
1662d43be4eSopenharmony_ci    if (CoreServiceClient::GetInstance().GetProxy() == nullptr) {
1672d43be4eSopenharmony_ci        std::cout << "connect coreService server failed!" << std::endl;
1682d43be4eSopenharmony_ci        return;
1692d43be4eSopenharmony_ci    }
1702d43be4eSopenharmony_ci    DataAccessToken token;
1712d43be4eSopenharmony_ci    int32_t slotId = DATA_SLOT_ID_INVALID;
1722d43be4eSopenharmony_ci    if (HasSimCard(DEFAULT_SIM_SLOT_ID)) {
1732d43be4eSopenharmony_ci        slotId = DEFAULT_SIM_SLOT_ID;
1742d43be4eSopenharmony_ci    } else if (HasSimCard(SIM_SLOT_ID_1)) {
1752d43be4eSopenharmony_ci        slotId = SIM_SLOT_ID_1;
1762d43be4eSopenharmony_ci    }
1772d43be4eSopenharmony_ci    if (slotId == DATA_SLOT_ID_INVALID) {
1782d43be4eSopenharmony_ci        return;
1792d43be4eSopenharmony_ci    }
1802d43be4eSopenharmony_ci    // Set the default slot
1812d43be4eSopenharmony_ci    int32_t result = CellularDataClient::GetInstance().SetDefaultCellularDataSlotId(slotId);
1822d43be4eSopenharmony_ci    if (result != TELEPHONY_ERR_SUCCESS) {
1832d43be4eSopenharmony_ci        return;
1842d43be4eSopenharmony_ci    }
1852d43be4eSopenharmony_ci    int32_t enable = CellularDataClient::GetInstance().EnableCellularData(true);
1862d43be4eSopenharmony_ci    ASSERT_TRUE(enable == TELEPHONY_ERR_SUCCESS);
1872d43be4eSopenharmony_ci    WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_CONNECTED));
1882d43be4eSopenharmony_ci    sleep(SLEEP_TIME_SECONDS);
1892d43be4eSopenharmony_ci}
1902d43be4eSopenharmony_ci
1912d43be4eSopenharmony_civoid CellularDataTest::SetUp() {}
1922d43be4eSopenharmony_ci
1932d43be4eSopenharmony_civoid CellularDataTest::TearDown() {}
1942d43be4eSopenharmony_ci
1952d43be4eSopenharmony_civoid CellularDataTest::SetUpTestCase()
1962d43be4eSopenharmony_ci{
1972d43be4eSopenharmony_ci    if (CoreServiceClient::GetInstance().GetProxy() == nullptr) {
1982d43be4eSopenharmony_ci        std::cout << "connect coreService server failed!" << std::endl;
1992d43be4eSopenharmony_ci        return;
2002d43be4eSopenharmony_ci    }
2012d43be4eSopenharmony_ci    DataAccessToken token;
2022d43be4eSopenharmony_ci    int32_t slotId = DATA_SLOT_ID_INVALID;
2032d43be4eSopenharmony_ci    if (HasSimCard(DEFAULT_SIM_SLOT_ID)) {
2042d43be4eSopenharmony_ci        slotId = DEFAULT_SIM_SLOT_ID;
2052d43be4eSopenharmony_ci    } else if (HasSimCard(SIM_SLOT_ID_1)) {
2062d43be4eSopenharmony_ci        slotId = SIM_SLOT_ID_1;
2072d43be4eSopenharmony_ci    }
2082d43be4eSopenharmony_ci    if (slotId == DATA_SLOT_ID_INVALID) {
2092d43be4eSopenharmony_ci        return;
2102d43be4eSopenharmony_ci    }
2112d43be4eSopenharmony_ci    // Set the default slot
2122d43be4eSopenharmony_ci    int32_t result = CellularDataClient::GetInstance().SetDefaultCellularDataSlotId(slotId);
2132d43be4eSopenharmony_ci    if (result != TELEPHONY_ERR_SUCCESS) {
2142d43be4eSopenharmony_ci        return;
2152d43be4eSopenharmony_ci    }
2162d43be4eSopenharmony_ci    int32_t enable = CellularDataClient::GetInstance().EnableCellularData(true);
2172d43be4eSopenharmony_ci    ASSERT_TRUE(enable == TELEPHONY_ERR_SUCCESS);
2182d43be4eSopenharmony_ci    WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_CONNECTED));
2192d43be4eSopenharmony_ci}
2202d43be4eSopenharmony_ci
2212d43be4eSopenharmony_civoid CellularDataTest::WaitTestTimeout(const int32_t status)
2222d43be4eSopenharmony_ci{
2232d43be4eSopenharmony_ci    int32_t count = 0;
2242d43be4eSopenharmony_ci    while (count < MAX_TIMES) {
2252d43be4eSopenharmony_ci        sleep(SLEEP_TIME);
2262d43be4eSopenharmony_ci        if (CellularDataClient::GetInstance().GetCellularDataState() == status) {
2272d43be4eSopenharmony_ci            return;
2282d43be4eSopenharmony_ci        }
2292d43be4eSopenharmony_ci        count++;
2302d43be4eSopenharmony_ci    }
2312d43be4eSopenharmony_ci}
2322d43be4eSopenharmony_ci
2332d43be4eSopenharmony_cistring CellularDataTest::GetCmdResult()
2342d43be4eSopenharmony_ci{
2352d43be4eSopenharmony_ci    string strCmd = "ping -c3 www.openharmony.cn";
2362d43be4eSopenharmony_ci    char buf[CMD_BUF_SIZE] = { 0 };
2372d43be4eSopenharmony_ci    FILE *pf;
2382d43be4eSopenharmony_ci
2392d43be4eSopenharmony_ci    if ((pf = popen(strCmd.c_str(), "r")) == nullptr) {
2402d43be4eSopenharmony_ci        return "";
2412d43be4eSopenharmony_ci    }
2422d43be4eSopenharmony_ci    string strResult;
2432d43be4eSopenharmony_ci    while (fgets(buf, sizeof(buf), pf) != nullptr) {
2442d43be4eSopenharmony_ci        strResult += buf;
2452d43be4eSopenharmony_ci    }
2462d43be4eSopenharmony_ci    pclose(pf);
2472d43be4eSopenharmony_ci    unsigned int iSize = strResult.size();
2482d43be4eSopenharmony_ci    if (iSize > 0 && strResult[iSize - 1] == '\n') {
2492d43be4eSopenharmony_ci        strResult = strResult.substr(0, iSize - 1);
2502d43be4eSopenharmony_ci    }
2512d43be4eSopenharmony_ci    return strResult;
2522d43be4eSopenharmony_ci}
2532d43be4eSopenharmony_ci
2542d43be4eSopenharmony_ciint32_t CellularDataTest::PingTest()
2552d43be4eSopenharmony_ci{
2562d43be4eSopenharmony_ci    string strRe = GetCmdResult();
2572d43be4eSopenharmony_ci    std::cout << strRe << std::endl;
2582d43be4eSopenharmony_ci
2592d43be4eSopenharmony_ci    // if ping succeed, the result should contains something like:
2602d43be4eSopenharmony_ci    // 3 packets transmitted, 3 received, 0% packet loss, time 5440ms
2612d43be4eSopenharmony_ci    if (strRe.find("3 packets") != string::npos) {
2622d43be4eSopenharmony_ci        return PING_CHECK_SUCCESS;
2632d43be4eSopenharmony_ci    } else {
2642d43be4eSopenharmony_ci        return PING_CHECK_FAIL;
2652d43be4eSopenharmony_ci    }
2662d43be4eSopenharmony_ci}
2672d43be4eSopenharmony_ci
2682d43be4eSopenharmony_ciint32_t CellularDataTest::IsCellularDataRoamingEnabledTest(int32_t slotId, bool &dataRoamingEnabled)
2692d43be4eSopenharmony_ci{
2702d43be4eSopenharmony_ci    return CellularDataClient::GetInstance().IsCellularDataRoamingEnabled(slotId, dataRoamingEnabled);
2712d43be4eSopenharmony_ci}
2722d43be4eSopenharmony_ci
2732d43be4eSopenharmony_ciint32_t CellularDataTest::IsCellularDataEnabledTest(bool &dataEnabled)
2742d43be4eSopenharmony_ci{
2752d43be4eSopenharmony_ci    return CellularDataClient::GetInstance().IsCellularDataEnabled(dataEnabled);
2762d43be4eSopenharmony_ci}
2772d43be4eSopenharmony_ci
2782d43be4eSopenharmony_ciint32_t CellularDataTest::EnableCellularDataTest(bool enable)
2792d43be4eSopenharmony_ci{
2802d43be4eSopenharmony_ci    return CellularDataClient::GetInstance().EnableCellularData(enable);
2812d43be4eSopenharmony_ci}
2822d43be4eSopenharmony_ci
2832d43be4eSopenharmony_ciint32_t CellularDataTest::EnableIntelligenceSwitchTest(bool enable)
2842d43be4eSopenharmony_ci{
2852d43be4eSopenharmony_ci    return CellularDataClient::GetInstance().EnableIntelligenceSwitch(enable);
2862d43be4eSopenharmony_ci}
2872d43be4eSopenharmony_ci
2882d43be4eSopenharmony_ciint32_t CellularDataTest::GetCellularDataStateTest()
2892d43be4eSopenharmony_ci{
2902d43be4eSopenharmony_ci    return CellularDataClient::GetInstance().GetCellularDataState();
2912d43be4eSopenharmony_ci}
2922d43be4eSopenharmony_ci
2932d43be4eSopenharmony_ciint32_t CellularDataTest::GetIntelligenceSwitchStateTest(bool &state)
2942d43be4eSopenharmony_ci{
2952d43be4eSopenharmony_ci    return CellularDataClient::GetInstance().GetIntelligenceSwitchState(state);
2962d43be4eSopenharmony_ci}
2972d43be4eSopenharmony_ci
2982d43be4eSopenharmony_ciint32_t CellularDataTest::EnableCellularDataRoamingTest(int32_t slotId, bool enable)
2992d43be4eSopenharmony_ci{
3002d43be4eSopenharmony_ci    return CellularDataClient::GetInstance().EnableCellularDataRoaming(slotId, enable);
3012d43be4eSopenharmony_ci}
3022d43be4eSopenharmony_ci
3032d43be4eSopenharmony_ciint32_t CellularDataTest::GetDefaultCellularDataSlotIdTest()
3042d43be4eSopenharmony_ci{
3052d43be4eSopenharmony_ci    return CellularDataClient::GetInstance().GetDefaultCellularDataSlotId();
3062d43be4eSopenharmony_ci}
3072d43be4eSopenharmony_ci
3082d43be4eSopenharmony_ciint32_t CellularDataTest::GetDefaultCellularDataSimIdTest()
3092d43be4eSopenharmony_ci{
3102d43be4eSopenharmony_ci    int32_t simId = 0;
3112d43be4eSopenharmony_ci    return CellularDataClient::GetInstance().GetDefaultCellularDataSimId(simId);
3122d43be4eSopenharmony_ci}
3132d43be4eSopenharmony_ci
3142d43be4eSopenharmony_ciint32_t CellularDataTest::SetDefaultCellularDataSlotIdTest(int32_t slotId)
3152d43be4eSopenharmony_ci{
3162d43be4eSopenharmony_ci    return CellularDataClient::GetInstance().SetDefaultCellularDataSlotId(slotId);
3172d43be4eSopenharmony_ci}
3182d43be4eSopenharmony_ci
3192d43be4eSopenharmony_ciint32_t CellularDataTest::GetCellularDataFlowTypeTest()
3202d43be4eSopenharmony_ci{
3212d43be4eSopenharmony_ci    return CellularDataClient::GetInstance().GetCellularDataFlowType();
3222d43be4eSopenharmony_ci}
3232d43be4eSopenharmony_ci
3242d43be4eSopenharmony_ciint32_t CellularDataTest::HasInternetCapability(int32_t slotId, int32_t cid)
3252d43be4eSopenharmony_ci{
3262d43be4eSopenharmony_ci    CellularDataClient::GetInstance().IsConnect();
3272d43be4eSopenharmony_ci    return CellularDataClient::GetInstance().HasInternetCapability(slotId, cid);
3282d43be4eSopenharmony_ci}
3292d43be4eSopenharmony_ci
3302d43be4eSopenharmony_ciint32_t CellularDataTest::ClearCellularDataConnections(int32_t slotId)
3312d43be4eSopenharmony_ci{
3322d43be4eSopenharmony_ci    CellularDataClient::GetInstance().IsConnect();
3332d43be4eSopenharmony_ci    return CellularDataClient::GetInstance().ClearCellularDataConnections(slotId);
3342d43be4eSopenharmony_ci}
3352d43be4eSopenharmony_ci
3362d43be4eSopenharmony_ciint32_t CellularDataTest::ClearAllConnections(int32_t slotId, DisConnectionReason reason)
3372d43be4eSopenharmony_ci{
3382d43be4eSopenharmony_ci    return CellularDataClient::GetInstance().ClearAllConnections(slotId, reason);
3392d43be4eSopenharmony_ci}
3402d43be4eSopenharmony_ci
3412d43be4eSopenharmony_ciint32_t CellularDataTest::GetApnState(int32_t slotId, const std::string &apnTyp)
3422d43be4eSopenharmony_ci{
3432d43be4eSopenharmony_ci    return CellularDataClient::GetInstance().GetApnState(slotId, apnTyp);
3442d43be4eSopenharmony_ci}
3452d43be4eSopenharmony_ci
3462d43be4eSopenharmony_ciint32_t CellularDataTest::GetDataRecoveryState()
3472d43be4eSopenharmony_ci{
3482d43be4eSopenharmony_ci    return CellularDataClient::GetInstance().GetDataRecoveryState();
3492d43be4eSopenharmony_ci}
3502d43be4eSopenharmony_ci
3512d43be4eSopenharmony_ciint32_t CellularDataTest::GetDataConnApnAttr(int32_t slotId, ApnItem::Attribute &apnAttr)
3522d43be4eSopenharmony_ci{
3532d43be4eSopenharmony_ci    return CellularDataClient::GetInstance().GetDataConnApnAttr(slotId, apnAttr);
3542d43be4eSopenharmony_ci}
3552d43be4eSopenharmony_ci
3562d43be4eSopenharmony_ciint32_t CellularDataTest::GetDataConnIpType(int32_t slotId, std::string &ipType)
3572d43be4eSopenharmony_ci{
3582d43be4eSopenharmony_ci    return CellularDataClient::GetInstance().GetDataConnIpType(slotId, ipType);
3592d43be4eSopenharmony_ci}
3602d43be4eSopenharmony_ci
3612d43be4eSopenharmony_ciint32_t CellularDataTest::IsNeedDoRecovery(int32_t slotId, bool needDoRecovery)
3622d43be4eSopenharmony_ci{
3632d43be4eSopenharmony_ci    return CellularDataClient::GetInstance().IsNeedDoRecovery(slotId, needDoRecovery);
3642d43be4eSopenharmony_ci}
3652d43be4eSopenharmony_ci
3662d43be4eSopenharmony_ciint32_t CellularDataTest::InitCellularDataController(int32_t slotId)
3672d43be4eSopenharmony_ci{
3682d43be4eSopenharmony_ci    return CellularDataClient::GetInstance().InitCellularDataController(slotId);
3692d43be4eSopenharmony_ci}
3702d43be4eSopenharmony_ci
3712d43be4eSopenharmony_ciint32_t CellularDataTest::GetCellularDataSupplierId(int32_t slotId, uint64_t capability, uint32_t &supplierId)
3722d43be4eSopenharmony_ci{
3732d43be4eSopenharmony_ci    return CellularDataClient::GetInstance().GetCellularDataSupplierId(slotId, capability, supplierId);
3742d43be4eSopenharmony_ci}
3752d43be4eSopenharmony_ci
3762d43be4eSopenharmony_ciint32_t CellularDataTest::CorrectNetSupplierNoAvailable(int32_t slotId)
3772d43be4eSopenharmony_ci{
3782d43be4eSopenharmony_ci    return CellularDataClient::GetInstance().CorrectNetSupplierNoAvailable(slotId);
3792d43be4eSopenharmony_ci}
3802d43be4eSopenharmony_ci
3812d43be4eSopenharmony_ciint32_t CellularDataTest::GetSupplierRegisterState(uint32_t supplierId, int32_t &regState)
3822d43be4eSopenharmony_ci{
3832d43be4eSopenharmony_ci    return CellularDataClient::GetInstance().GetSupplierRegisterState(supplierId, regState);
3842d43be4eSopenharmony_ci}
3852d43be4eSopenharmony_ci#ifndef TEL_TEST_UNSUPPORT
3862d43be4eSopenharmony_ci/**
3872d43be4eSopenharmony_ci * @tc.number   IsCellularDataEnabled_Test
3882d43be4eSopenharmony_ci * @tc.name     Test cellular data switch status(enabled or disabled)
3892d43be4eSopenharmony_ci * @tc.desc     Function test
3902d43be4eSopenharmony_ci */
3912d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, IsCellularDataEnabled_Test, TestSize.Level1)
3922d43be4eSopenharmony_ci{
3932d43be4eSopenharmony_ci    DataAccessToken token;
3942d43be4eSopenharmony_ci    bool dataEnabled = false;
3952d43be4eSopenharmony_ci    CellularDataTest::IsCellularDataEnabledTest(dataEnabled);
3962d43be4eSopenharmony_ci    ASSERT_TRUE(dataEnabled >= static_cast<int32_t>(DataSwitchCode::CELLULAR_DATA_DISABLED));
3972d43be4eSopenharmony_ci}
3982d43be4eSopenharmony_ci
3992d43be4eSopenharmony_ci/**
4002d43be4eSopenharmony_ci * @tc.number   DefaultCellularDataSlotId_Test
4012d43be4eSopenharmony_ci * @tc.name     Test set default data card slot
4022d43be4eSopenharmony_ci * @tc.desc     Function test
4032d43be4eSopenharmony_ci */
4042d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, DefaultCellularDataSlotId_Test, TestSize.Level2)
4052d43be4eSopenharmony_ci{
4062d43be4eSopenharmony_ci    if (!HasSimCard(DEFAULT_SIM_SLOT_ID)) {
4072d43be4eSopenharmony_ci        return;
4082d43be4eSopenharmony_ci    }
4092d43be4eSopenharmony_ci    DataAccessToken token;
4102d43be4eSopenharmony_ci    int32_t result = CellularDataTest::GetDefaultCellularDataSlotIdTest();
4112d43be4eSopenharmony_ci    if (result < DEFAULT_SIM_SLOT_ID_REMOVE) {
4122d43be4eSopenharmony_ci        return;
4132d43be4eSopenharmony_ci    }
4142d43be4eSopenharmony_ci    result = CellularDataTest::SetDefaultCellularDataSlotIdTest(DEFAULT_SIM_SLOT_ID);
4152d43be4eSopenharmony_ci    ASSERT_TRUE(result == TELEPHONY_ERR_SUCCESS);
4162d43be4eSopenharmony_ci    // Multiple cards will need to be optimized again
4172d43be4eSopenharmony_ci    result = CellularDataTest::SetDefaultCellularDataSlotIdTest(DEFAULT_SIM_SLOT_ID - 1);
4182d43be4eSopenharmony_ci    ASSERT_TRUE(result != TELEPHONY_ERR_SUCCESS);
4192d43be4eSopenharmony_ci    result = CellularDataTest::SetDefaultCellularDataSlotIdTest(DATA_SLOT_ID_INVALID);
4202d43be4eSopenharmony_ci    ASSERT_TRUE(result != TELEPHONY_ERR_SUCCESS);
4212d43be4eSopenharmony_ci}
4222d43be4eSopenharmony_ci
4232d43be4eSopenharmony_ci/**
4242d43be4eSopenharmony_ci * @tc.number   GetDefaultCellularDataSimId
4252d43be4eSopenharmony_ci * @tc.name     Test get default data sim id
4262d43be4eSopenharmony_ci * @tc.desc     Function test
4272d43be4eSopenharmony_ci */
4282d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, DefaultCellularDataSimId_Test, TestSize.Level2)
4292d43be4eSopenharmony_ci{
4302d43be4eSopenharmony_ci    if (!HasSimCard(DEFAULT_SIM_SLOT_ID)) {
4312d43be4eSopenharmony_ci        return;
4322d43be4eSopenharmony_ci    }
4332d43be4eSopenharmony_ci    int32_t result = CellularDataTest::GetDefaultCellularDataSimIdTest();
4342d43be4eSopenharmony_ci    ASSERT_TRUE(result == TELEPHONY_ERR_SUCCESS);
4352d43be4eSopenharmony_ci}
4362d43be4eSopenharmony_ci
4372d43be4eSopenharmony_ci/**
4382d43be4eSopenharmony_ci * @tc.number   DefaultCellularDataSlotId_Test_01
4392d43be4eSopenharmony_ci * @tc.name     Test set default data card slot
4402d43be4eSopenharmony_ci * @tc.desc     Function test
4412d43be4eSopenharmony_ci */
4422d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, DefaultCellularDataSlotId_Test_01, TestSize.Level2)
4432d43be4eSopenharmony_ci{
4442d43be4eSopenharmony_ci    if (!HasSimCard(SIM_SLOT_ID_1)) {
4452d43be4eSopenharmony_ci        return;
4462d43be4eSopenharmony_ci    }
4472d43be4eSopenharmony_ci    DataAccessToken token;
4482d43be4eSopenharmony_ci    int32_t result = CellularDataTest::GetDefaultCellularDataSlotIdTest();
4492d43be4eSopenharmony_ci    if (result < DEFAULT_SIM_SLOT_ID_REMOVE) {
4502d43be4eSopenharmony_ci        return;
4512d43be4eSopenharmony_ci    }
4522d43be4eSopenharmony_ci    result = CellularDataTest::SetDefaultCellularDataSlotIdTest(SIM_SLOT_ID_1);
4532d43be4eSopenharmony_ci    ASSERT_TRUE(result == TELEPHONY_ERR_SUCCESS);
4542d43be4eSopenharmony_ci    result = CellularDataTest::SetDefaultCellularDataSlotIdTest(DATA_SLOT_ID_INVALID);
4552d43be4eSopenharmony_ci    ASSERT_TRUE(result != TELEPHONY_ERR_SUCCESS);
4562d43be4eSopenharmony_ci}
4572d43be4eSopenharmony_ci
4582d43be4eSopenharmony_ci/**
4592d43be4eSopenharmony_ci * @tc.number   EnableCellularData_Test_01
4602d43be4eSopenharmony_ci * @tc.name     Test cellular data switch
4612d43be4eSopenharmony_ci * @tc.desc     Function test
4622d43be4eSopenharmony_ci */
4632d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, EnableCellularData_Test_01, TestSize.Level2)
4642d43be4eSopenharmony_ci{
4652d43be4eSopenharmony_ci    if (!HasSimCard(DEFAULT_SIM_SLOT_ID)) {
4662d43be4eSopenharmony_ci        return;
4672d43be4eSopenharmony_ci    }
4682d43be4eSopenharmony_ci    DataAccessToken token;
4692d43be4eSopenharmony_ci    CellularDataTest::SetDefaultCellularDataSlotIdTest(DEFAULT_SIM_SLOT_ID);
4702d43be4eSopenharmony_ci    CellularDataTest::EnableCellularDataTest(false);
4712d43be4eSopenharmony_ci    WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_DISCONNECTED));
4722d43be4eSopenharmony_ci    sleep(SLEEP_TIME);
4732d43be4eSopenharmony_ci    int32_t result = CellularDataTest::EnableCellularDataTest(true);
4742d43be4eSopenharmony_ci    ASSERT_TRUE(result == TELEPHONY_ERR_SUCCESS);
4752d43be4eSopenharmony_ci    WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_CONNECTED));
4762d43be4eSopenharmony_ci    sleep(SLEEP_TIME);
4772d43be4eSopenharmony_ci    std::cout << "Cellular Data Connected Ping..." << std::endl;
4782d43be4eSopenharmony_ci    int32_t pingResult = CellularDataTest::PingTest();
4792d43be4eSopenharmony_ci    ASSERT_TRUE(pingResult >= PING_CHECK_SUCCESS);
4802d43be4eSopenharmony_ci    CellularDataTest::EnableCellularDataTest(false);
4812d43be4eSopenharmony_ci    WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_DISCONNECTED));
4822d43be4eSopenharmony_ci    sleep(SLEEP_TIME);
4832d43be4eSopenharmony_ci    std::cout << "Cellular Data Disconnected Ping..." << std::endl;
4842d43be4eSopenharmony_ci    pingResult = CellularDataTest::PingTest();
4852d43be4eSopenharmony_ci    ASSERT_TRUE(pingResult == PING_CHECK_FAIL);
4862d43be4eSopenharmony_ci}
4872d43be4eSopenharmony_ci
4882d43be4eSopenharmony_ci/**
4892d43be4eSopenharmony_ci * @tc.number   EnableCellularData_Test_02
4902d43be4eSopenharmony_ci * @tc.name     Test cellular data switch
4912d43be4eSopenharmony_ci * @tc.desc     Function test
4922d43be4eSopenharmony_ci */
4932d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, EnableCellularData_Test_02, TestSize.Level2)
4942d43be4eSopenharmony_ci{
4952d43be4eSopenharmony_ci    if (!HasSimCard(SIM_SLOT_ID_1)) {
4962d43be4eSopenharmony_ci        return;
4972d43be4eSopenharmony_ci    }
4982d43be4eSopenharmony_ci    DataAccessToken token;
4992d43be4eSopenharmony_ci    CellularDataTest::SetDefaultCellularDataSlotIdTest(SIM_SLOT_ID_1);
5002d43be4eSopenharmony_ci    CellularDataTest::EnableCellularDataTest(false);
5012d43be4eSopenharmony_ci    WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_DISCONNECTED));
5022d43be4eSopenharmony_ci    sleep(SLEEP_TIME);
5032d43be4eSopenharmony_ci    int32_t result = CellularDataTest::EnableCellularDataTest(true);
5042d43be4eSopenharmony_ci    ASSERT_TRUE(result == TELEPHONY_ERR_SUCCESS);
5052d43be4eSopenharmony_ci    WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_CONNECTED));
5062d43be4eSopenharmony_ci    sleep(SLEEP_TIME);
5072d43be4eSopenharmony_ci    std::cout << "Cellular Data Connected Ping..." << std::endl;
5082d43be4eSopenharmony_ci    int32_t pingResult = CellularDataTest::PingTest();
5092d43be4eSopenharmony_ci    ASSERT_TRUE(pingResult >= PING_CHECK_SUCCESS);
5102d43be4eSopenharmony_ci    CellularDataTest::EnableCellularDataTest(false);
5112d43be4eSopenharmony_ci    WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_DISCONNECTED));
5122d43be4eSopenharmony_ci    sleep(SLEEP_TIME);
5132d43be4eSopenharmony_ci    std::cout << "Cellular Data Disconnected Ping..." << std::endl;
5142d43be4eSopenharmony_ci    pingResult = CellularDataTest::PingTest();
5152d43be4eSopenharmony_ci    ASSERT_TRUE(pingResult == PING_CHECK_FAIL);
5162d43be4eSopenharmony_ci}
5172d43be4eSopenharmony_ci
5182d43be4eSopenharmony_ci/**
5192d43be4eSopenharmony_ci * @tc.number   DataRoamingState_ValidSlot_Test_01
5202d43be4eSopenharmony_ci * @tc.name     Test the cellular data roaming switch with a slot id
5212d43be4eSopenharmony_ci * @tc.desc     Function test
5222d43be4eSopenharmony_ci */
5232d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, DataRoamingState_ValidSlot_Test_01, TestSize.Level3)
5242d43be4eSopenharmony_ci{
5252d43be4eSopenharmony_ci    if (!HasSimCard(DEFAULT_SIM_SLOT_ID)) {
5262d43be4eSopenharmony_ci        return;
5272d43be4eSopenharmony_ci    }
5282d43be4eSopenharmony_ci    DataAccessToken token;
5292d43be4eSopenharmony_ci    CellularDataTest::SetDefaultCellularDataSlotIdTest(DEFAULT_SIM_SLOT_ID);
5302d43be4eSopenharmony_ci    int32_t disabled = CellularDataTest::EnableCellularDataTest(false);
5312d43be4eSopenharmony_ci    ASSERT_TRUE(disabled == TELEPHONY_ERR_SUCCESS);
5322d43be4eSopenharmony_ci    WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_DISCONNECTED));
5332d43be4eSopenharmony_ci
5342d43be4eSopenharmony_ci    // slot0 enable data roaming
5352d43be4eSopenharmony_ci    int32_t enabled = CellularDataTest::EnableCellularDataRoamingTest(DEFAULT_SIM_SLOT_ID, true);
5362d43be4eSopenharmony_ci    ASSERT_TRUE(enabled == TELEPHONY_ERR_SUCCESS);
5372d43be4eSopenharmony_ci    bool dataRoamingEnabled = false;
5382d43be4eSopenharmony_ci    CellularDataTest::IsCellularDataRoamingEnabledTest(DEFAULT_SIM_SLOT_ID, dataRoamingEnabled);
5392d43be4eSopenharmony_ci    ASSERT_TRUE(dataRoamingEnabled);
5402d43be4eSopenharmony_ci    // slot0 close
5412d43be4eSopenharmony_ci    int32_t enable = CellularDataTest::EnableCellularDataRoamingTest(DEFAULT_SIM_SLOT_ID, false);
5422d43be4eSopenharmony_ci    ASSERT_TRUE(enable == TELEPHONY_ERR_SUCCESS);
5432d43be4eSopenharmony_ci    CellularDataTest::IsCellularDataRoamingEnabledTest(DEFAULT_SIM_SLOT_ID, dataRoamingEnabled);
5442d43be4eSopenharmony_ci    ASSERT_TRUE(!dataRoamingEnabled);
5452d43be4eSopenharmony_ci
5462d43be4eSopenharmony_ci    // At present, multiple card problems, the subsequent need to continue to deal with
5472d43be4eSopenharmony_ci    enable = CellularDataTest::EnableCellularDataRoamingTest(DATA_SLOT_ID_INVALID, true);
5482d43be4eSopenharmony_ci    ASSERT_TRUE(enable != TELEPHONY_ERR_SUCCESS);
5492d43be4eSopenharmony_ci    int32_t result = CellularDataTest::IsCellularDataRoamingEnabledTest(DATA_SLOT_ID_INVALID, dataRoamingEnabled);
5502d43be4eSopenharmony_ci    ASSERT_TRUE(result == CELLULAR_DATA_INVALID_PARAM);
5512d43be4eSopenharmony_ci    enable = CellularDataTest::EnableCellularDataRoamingTest(DATA_SLOT_ID_INVALID, false);
5522d43be4eSopenharmony_ci    // At present, multiple card problems, the subsequent need to continue to deal with
5532d43be4eSopenharmony_ci    ASSERT_TRUE(enable != TELEPHONY_ERR_SUCCESS);
5542d43be4eSopenharmony_ci    result = CellularDataTest::IsCellularDataRoamingEnabledTest(DATA_SLOT_ID_INVALID, dataRoamingEnabled);
5552d43be4eSopenharmony_ci    ASSERT_TRUE(result == CELLULAR_DATA_INVALID_PARAM);
5562d43be4eSopenharmony_ci}
5572d43be4eSopenharmony_ci
5582d43be4eSopenharmony_ci/**
5592d43be4eSopenharmony_ci * @tc.number   DataRoamingState_ValidSlot_Test_02
5602d43be4eSopenharmony_ci * @tc.name     Test the cellular data roaming switch with a slot id
5612d43be4eSopenharmony_ci * @tc.desc     Function test
5622d43be4eSopenharmony_ci */
5632d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, DataRoamingState_ValidSlot_Test_02, TestSize.Level3)
5642d43be4eSopenharmony_ci{
5652d43be4eSopenharmony_ci    if (!HasSimCard(SIM_SLOT_ID_1)) {
5662d43be4eSopenharmony_ci        return;
5672d43be4eSopenharmony_ci    }
5682d43be4eSopenharmony_ci    DataAccessToken token;
5692d43be4eSopenharmony_ci    CellularDataTest::SetDefaultCellularDataSlotIdTest(SIM_SLOT_ID_1);
5702d43be4eSopenharmony_ci    int32_t disabled = CellularDataTest::EnableCellularDataTest(false);
5712d43be4eSopenharmony_ci    ASSERT_TRUE(disabled == TELEPHONY_ERR_SUCCESS);
5722d43be4eSopenharmony_ci    WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_DISCONNECTED));
5732d43be4eSopenharmony_ci
5742d43be4eSopenharmony_ci    // slot1 enable data roaming
5752d43be4eSopenharmony_ci    int32_t enabled = CellularDataTest::EnableCellularDataRoamingTest(SIM_SLOT_ID_1, true);
5762d43be4eSopenharmony_ci    ASSERT_TRUE(enabled == TELEPHONY_ERR_SUCCESS);
5772d43be4eSopenharmony_ci    bool dataRoamingEnabled = false;
5782d43be4eSopenharmony_ci    CellularDataTest::IsCellularDataRoamingEnabledTest(SIM_SLOT_ID_1, dataRoamingEnabled);
5792d43be4eSopenharmony_ci    ASSERT_TRUE(dataRoamingEnabled);
5802d43be4eSopenharmony_ci    // slot1 close
5812d43be4eSopenharmony_ci    int32_t enable = CellularDataTest::EnableCellularDataRoamingTest(SIM_SLOT_ID_1, false);
5822d43be4eSopenharmony_ci    ASSERT_TRUE(enable == TELEPHONY_ERR_SUCCESS);
5832d43be4eSopenharmony_ci    CellularDataTest::IsCellularDataRoamingEnabledTest(SIM_SLOT_ID_1, dataRoamingEnabled);
5842d43be4eSopenharmony_ci    ASSERT_TRUE(!dataRoamingEnabled);
5852d43be4eSopenharmony_ci
5862d43be4eSopenharmony_ci    // At present, multiple card problems, the subsequent need to continue to deal with
5872d43be4eSopenharmony_ci    enable = CellularDataTest::EnableCellularDataRoamingTest(DATA_SLOT_ID_INVALID, true);
5882d43be4eSopenharmony_ci    ASSERT_TRUE(enable != TELEPHONY_ERR_SUCCESS);
5892d43be4eSopenharmony_ci    int32_t result = CellularDataTest::IsCellularDataRoamingEnabledTest(DATA_SLOT_ID_INVALID, dataRoamingEnabled);
5902d43be4eSopenharmony_ci    ASSERT_TRUE(result == CELLULAR_DATA_INVALID_PARAM);
5912d43be4eSopenharmony_ci    enable = CellularDataTest::EnableCellularDataRoamingTest(DATA_SLOT_ID_INVALID, false);
5922d43be4eSopenharmony_ci    // At present, multiple card problems, the subsequent need to continue to deal with
5932d43be4eSopenharmony_ci    ASSERT_TRUE(enable != TELEPHONY_ERR_SUCCESS);
5942d43be4eSopenharmony_ci    result = CellularDataTest::IsCellularDataRoamingEnabledTest(DATA_SLOT_ID_INVALID, dataRoamingEnabled);
5952d43be4eSopenharmony_ci    ASSERT_TRUE(result == CELLULAR_DATA_INVALID_PARAM);
5962d43be4eSopenharmony_ci}
5972d43be4eSopenharmony_ci
5982d43be4eSopenharmony_ci/**
5992d43be4eSopenharmony_ci * @tc.number   EnableCellularDataRoaming_ValidSlot_Test_01
6002d43be4eSopenharmony_ci * @tc.name     Test the cellular data roaming switch with a slot id
6012d43be4eSopenharmony_ci * @tc.desc     Function test
6022d43be4eSopenharmony_ci */
6032d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, EnableCellularDataRoaming_ValidSlot_Test_01, TestSize.Level3)
6042d43be4eSopenharmony_ci{
6052d43be4eSopenharmony_ci    if (!HasSimCard(DEFAULT_SIM_SLOT_ID)) {
6062d43be4eSopenharmony_ci        return;
6072d43be4eSopenharmony_ci    }
6082d43be4eSopenharmony_ci    DataAccessToken token;
6092d43be4eSopenharmony_ci    CellularDataTest::SetDefaultCellularDataSlotIdTest(DEFAULT_SIM_SLOT_ID);
6102d43be4eSopenharmony_ci    int32_t disabled = CellularDataTest::EnableCellularDataTest(false);
6112d43be4eSopenharmony_ci    ASSERT_TRUE(disabled == TELEPHONY_ERR_SUCCESS);
6122d43be4eSopenharmony_ci    WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_DISCONNECTED));
6132d43be4eSopenharmony_ci
6142d43be4eSopenharmony_ci    bool dataRoamingEnabled = false;
6152d43be4eSopenharmony_ci    CellularDataTest::IsCellularDataRoamingEnabledTest(DEFAULT_SIM_SLOT_ID, dataRoamingEnabled);
6162d43be4eSopenharmony_ci    if (dataRoamingEnabled) {
6172d43be4eSopenharmony_ci        int32_t result = CellularDataTest::EnableCellularDataRoamingTest(DEFAULT_SIM_SLOT_ID, false);
6182d43be4eSopenharmony_ci        ASSERT_TRUE(result == TELEPHONY_ERR_SUCCESS);
6192d43be4eSopenharmony_ci    } else {
6202d43be4eSopenharmony_ci        int32_t result = CellularDataTest::EnableCellularDataRoamingTest(DEFAULT_SIM_SLOT_ID, true);
6212d43be4eSopenharmony_ci        ASSERT_TRUE(result == TELEPHONY_ERR_SUCCESS);
6222d43be4eSopenharmony_ci    }
6232d43be4eSopenharmony_ci    // At present, multiple card problems, the subsequent need to continue to deal with
6242d43be4eSopenharmony_ci    CellularDataTest::IsCellularDataRoamingEnabledTest(DEFAULT_SIM_SLOT_ID, dataRoamingEnabled);
6252d43be4eSopenharmony_ci    if (dataRoamingEnabled) {
6262d43be4eSopenharmony_ci        int32_t result = CellularDataTest::EnableCellularDataRoamingTest(DATA_SLOT_ID_INVALID, false);
6272d43be4eSopenharmony_ci        ASSERT_TRUE(result != TELEPHONY_ERR_SUCCESS);
6282d43be4eSopenharmony_ci    } else {
6292d43be4eSopenharmony_ci        int32_t result = CellularDataTest::EnableCellularDataRoamingTest(DATA_SLOT_ID_INVALID, true);
6302d43be4eSopenharmony_ci        ASSERT_TRUE(result != TELEPHONY_ERR_SUCCESS);
6312d43be4eSopenharmony_ci    }
6322d43be4eSopenharmony_ci}
6332d43be4eSopenharmony_ci
6342d43be4eSopenharmony_ci/**
6352d43be4eSopenharmony_ci * @tc.number   EnableCellularDataRoaming_ValidSlot_Test_02
6362d43be4eSopenharmony_ci * @tc.name     Test the cellular data roaming switch with a slot id
6372d43be4eSopenharmony_ci * @tc.desc     Function test
6382d43be4eSopenharmony_ci */
6392d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, EnableCellularDataRoaming_ValidSlot_Test_02, TestSize.Level3)
6402d43be4eSopenharmony_ci{
6412d43be4eSopenharmony_ci    if (!HasSimCard(SIM_SLOT_ID_1)) {
6422d43be4eSopenharmony_ci        return;
6432d43be4eSopenharmony_ci    }
6442d43be4eSopenharmony_ci    DataAccessToken token;
6452d43be4eSopenharmony_ci    CellularDataTest::SetDefaultCellularDataSlotIdTest(SIM_SLOT_ID_1);
6462d43be4eSopenharmony_ci    int32_t disabled = CellularDataTest::EnableCellularDataTest(false);
6472d43be4eSopenharmony_ci    ASSERT_TRUE(disabled == TELEPHONY_ERR_SUCCESS);
6482d43be4eSopenharmony_ci    WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_DISCONNECTED));
6492d43be4eSopenharmony_ci
6502d43be4eSopenharmony_ci    bool dataRoamingEnabled = false;
6512d43be4eSopenharmony_ci    CellularDataTest::IsCellularDataRoamingEnabledTest(SIM_SLOT_ID_1, dataRoamingEnabled);
6522d43be4eSopenharmony_ci    if (dataRoamingEnabled) {
6532d43be4eSopenharmony_ci        int32_t result = CellularDataTest::EnableCellularDataRoamingTest(SIM_SLOT_ID_1, false);
6542d43be4eSopenharmony_ci        ASSERT_TRUE(result == TELEPHONY_ERR_SUCCESS);
6552d43be4eSopenharmony_ci    } else {
6562d43be4eSopenharmony_ci        int32_t result = CellularDataTest::EnableCellularDataRoamingTest(SIM_SLOT_ID_1, true);
6572d43be4eSopenharmony_ci        ASSERT_TRUE(result == TELEPHONY_ERR_SUCCESS);
6582d43be4eSopenharmony_ci    }
6592d43be4eSopenharmony_ci    // At present, multiple card problems, the subsequent need to continue to deal with
6602d43be4eSopenharmony_ci    CellularDataTest::IsCellularDataRoamingEnabledTest(SIM_SLOT_ID_1, dataRoamingEnabled);
6612d43be4eSopenharmony_ci    if (dataRoamingEnabled) {
6622d43be4eSopenharmony_ci        int32_t result = CellularDataTest::EnableCellularDataRoamingTest(DATA_SLOT_ID_INVALID, false);
6632d43be4eSopenharmony_ci        ASSERT_TRUE(result != TELEPHONY_ERR_SUCCESS);
6642d43be4eSopenharmony_ci    } else {
6652d43be4eSopenharmony_ci        int32_t result = CellularDataTest::EnableCellularDataRoamingTest(DATA_SLOT_ID_INVALID, true);
6662d43be4eSopenharmony_ci        ASSERT_TRUE(result != TELEPHONY_ERR_SUCCESS);
6672d43be4eSopenharmony_ci    }
6682d43be4eSopenharmony_ci}
6692d43be4eSopenharmony_ci
6702d43be4eSopenharmony_ci/**
6712d43be4eSopenharmony_ci * @tc.number   GetCellularDataState_ValidityTest_01
6722d43be4eSopenharmony_ci * @tc.name     Test the GetCellularDataState function
6732d43be4eSopenharmony_ci * @tc.desc     Function test
6742d43be4eSopenharmony_ci */
6752d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, GetCellularDataState_ValidityTest_01, TestSize.Level3)
6762d43be4eSopenharmony_ci{
6772d43be4eSopenharmony_ci    if (!HasSimCard(DEFAULT_SIM_SLOT_ID)) {
6782d43be4eSopenharmony_ci        return;
6792d43be4eSopenharmony_ci    }
6802d43be4eSopenharmony_ci    DataAccessToken token;
6812d43be4eSopenharmony_ci    CellularDataTest::SetDefaultCellularDataSlotIdTest(DEFAULT_SIM_SLOT_ID);
6822d43be4eSopenharmony_ci    bool dataEnabled = false;
6832d43be4eSopenharmony_ci    CellularDataTest::IsCellularDataEnabledTest(dataEnabled);
6842d43be4eSopenharmony_ci    if (dataEnabled) {
6852d43be4eSopenharmony_ci        CellularDataTest::EnableCellularDataTest(false);
6862d43be4eSopenharmony_ci        WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_DISCONNECTED));
6872d43be4eSopenharmony_ci        sleep(SLEEP_TIME);
6882d43be4eSopenharmony_ci        CellularDataTest::EnableCellularDataTest(true);
6892d43be4eSopenharmony_ci        WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_CONNECTED));
6902d43be4eSopenharmony_ci        int32_t result = CellularDataTest::GetCellularDataStateTest();
6912d43be4eSopenharmony_ci        ASSERT_TRUE(result == static_cast<int32_t>(DataConnectionStatus::DATA_STATE_CONNECTED));
6922d43be4eSopenharmony_ci    } else {
6932d43be4eSopenharmony_ci        CellularDataTest::EnableCellularDataTest(true);
6942d43be4eSopenharmony_ci        WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_CONNECTED));
6952d43be4eSopenharmony_ci        sleep(SLEEP_TIME);
6962d43be4eSopenharmony_ci        CellularDataTest::EnableCellularDataTest(false);
6972d43be4eSopenharmony_ci        WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_DISCONNECTED));
6982d43be4eSopenharmony_ci        int32_t result = CellularDataTest::GetCellularDataStateTest();
6992d43be4eSopenharmony_ci        ASSERT_TRUE(result == static_cast<int32_t>(DataConnectionStatus::DATA_STATE_DISCONNECTED));
7002d43be4eSopenharmony_ci    }
7012d43be4eSopenharmony_ci    CellularDataTest::EnableCellularDataTest(false);
7022d43be4eSopenharmony_ci    WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_DISCONNECTED));
7032d43be4eSopenharmony_ci}
7042d43be4eSopenharmony_ci
7052d43be4eSopenharmony_ci/**
7062d43be4eSopenharmony_ci * @tc.number   GetCellularDataState_ValidityTest_02
7072d43be4eSopenharmony_ci * @tc.name     Test the GetCellularDataState function
7082d43be4eSopenharmony_ci * @tc.desc     Function test
7092d43be4eSopenharmony_ci */
7102d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, GetCellularDataState_ValidityTest_02, TestSize.Level3)
7112d43be4eSopenharmony_ci{
7122d43be4eSopenharmony_ci    if (!HasSimCard(SIM_SLOT_ID_1)) {
7132d43be4eSopenharmony_ci        return;
7142d43be4eSopenharmony_ci    }
7152d43be4eSopenharmony_ci    DataAccessToken token;
7162d43be4eSopenharmony_ci    CellularDataTest::SetDefaultCellularDataSlotIdTest(SIM_SLOT_ID_1);
7172d43be4eSopenharmony_ci    bool dataEnabled = false;
7182d43be4eSopenharmony_ci    CellularDataTest::IsCellularDataEnabledTest(dataEnabled);
7192d43be4eSopenharmony_ci    if (dataEnabled) {
7202d43be4eSopenharmony_ci        CellularDataTest::EnableCellularDataTest(false);
7212d43be4eSopenharmony_ci        WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_DISCONNECTED));
7222d43be4eSopenharmony_ci        sleep(SLEEP_TIME);
7232d43be4eSopenharmony_ci        CellularDataTest::EnableCellularDataTest(true);
7242d43be4eSopenharmony_ci        WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_CONNECTED));
7252d43be4eSopenharmony_ci        int32_t result = CellularDataTest::GetCellularDataStateTest();
7262d43be4eSopenharmony_ci        ASSERT_TRUE(result == static_cast<int32_t>(DataConnectionStatus::DATA_STATE_CONNECTED));
7272d43be4eSopenharmony_ci    } else {
7282d43be4eSopenharmony_ci        CellularDataTest::EnableCellularDataTest(true);
7292d43be4eSopenharmony_ci        WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_CONNECTED));
7302d43be4eSopenharmony_ci        sleep(SLEEP_TIME);
7312d43be4eSopenharmony_ci        CellularDataTest::EnableCellularDataTest(false);
7322d43be4eSopenharmony_ci        WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_DISCONNECTED));
7332d43be4eSopenharmony_ci        int32_t result = CellularDataTest::GetCellularDataStateTest();
7342d43be4eSopenharmony_ci        ASSERT_TRUE(result == static_cast<int32_t>(DataConnectionStatus::DATA_STATE_DISCONNECTED));
7352d43be4eSopenharmony_ci    }
7362d43be4eSopenharmony_ci    CellularDataTest::EnableCellularDataTest(false);
7372d43be4eSopenharmony_ci    WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_DISCONNECTED));
7382d43be4eSopenharmony_ci}
7392d43be4eSopenharmony_ci
7402d43be4eSopenharmony_ci/**
7412d43be4eSopenharmony_ci * @tc.number   DataRoamingState_InValidSlot_Test_01
7422d43be4eSopenharmony_ci * @tc.name     Test the EnableCellularDataRoaming function with a invalid slot id
7432d43be4eSopenharmony_ci * @tc.desc     Function test
7442d43be4eSopenharmony_ci */
7452d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, DataRoamingState_InValidSlot_Test_01, TestSize.Level3)
7462d43be4eSopenharmony_ci{
7472d43be4eSopenharmony_ci    if (!HasSimCard(DEFAULT_SIM_SLOT_ID)) {
7482d43be4eSopenharmony_ci        return;
7492d43be4eSopenharmony_ci    }
7502d43be4eSopenharmony_ci    DataAccessToken token;
7512d43be4eSopenharmony_ci    // invalid slot turn on data roaming
7522d43be4eSopenharmony_ci    int32_t enable = CellularDataTest::EnableCellularDataRoamingTest(DEFAULT_SIM_SLOT_ID - 1, true);
7532d43be4eSopenharmony_ci    ASSERT_TRUE(enable != TELEPHONY_ERR_SUCCESS);
7542d43be4eSopenharmony_ci    bool dataRoamingEnabled = false;
7552d43be4eSopenharmony_ci    int32_t result = CellularDataTest::IsCellularDataRoamingEnabledTest(DEFAULT_SIM_SLOT_ID - 1, dataRoamingEnabled);
7562d43be4eSopenharmony_ci    ASSERT_TRUE(result == CELLULAR_DATA_INVALID_PARAM);
7572d43be4eSopenharmony_ci    enable = CellularDataTest::EnableCellularDataRoamingTest(DATA_SLOT_ID_INVALID, true);
7582d43be4eSopenharmony_ci    ASSERT_TRUE(enable != TELEPHONY_ERR_SUCCESS);
7592d43be4eSopenharmony_ci    result = CellularDataTest::IsCellularDataRoamingEnabledTest(DATA_SLOT_ID_INVALID, dataRoamingEnabled);
7602d43be4eSopenharmony_ci    ASSERT_TRUE(result == CELLULAR_DATA_INVALID_PARAM);
7612d43be4eSopenharmony_ci    // invalid slot disable roaming
7622d43be4eSopenharmony_ci    enable = CellularDataTest::EnableCellularDataRoamingTest(DEFAULT_SIM_SLOT_ID - 1, false);
7632d43be4eSopenharmony_ci    ASSERT_TRUE(enable != TELEPHONY_ERR_SUCCESS);
7642d43be4eSopenharmony_ci    result = CellularDataTest::IsCellularDataRoamingEnabledTest(DEFAULT_SIM_SLOT_ID - 1, dataRoamingEnabled);
7652d43be4eSopenharmony_ci    ASSERT_TRUE(result == CELLULAR_DATA_INVALID_PARAM);
7662d43be4eSopenharmony_ci    enable = CellularDataTest::EnableCellularDataRoamingTest(DATA_SLOT_ID_INVALID, false);
7672d43be4eSopenharmony_ci    ASSERT_TRUE(enable != TELEPHONY_ERR_SUCCESS);
7682d43be4eSopenharmony_ci    result = CellularDataTest::IsCellularDataRoamingEnabledTest(DATA_SLOT_ID_INVALID, dataRoamingEnabled);
7692d43be4eSopenharmony_ci    ASSERT_TRUE(result == CELLULAR_DATA_INVALID_PARAM);
7702d43be4eSopenharmony_ci}
7712d43be4eSopenharmony_ci
7722d43be4eSopenharmony_ci/**
7732d43be4eSopenharmony_ci * @tc.number   DataFlowType_Test_01
7742d43be4eSopenharmony_ci * @tc.name     Test the GetCellularDataFlowType function
7752d43be4eSopenharmony_ci * @tc.desc     Function test
7762d43be4eSopenharmony_ci */
7772d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, DataFlowType_Test_01, TestSize.Level3)
7782d43be4eSopenharmony_ci{
7792d43be4eSopenharmony_ci    if (!HasSimCard(DEFAULT_SIM_SLOT_ID)) {
7802d43be4eSopenharmony_ci        return;
7812d43be4eSopenharmony_ci    }
7822d43be4eSopenharmony_ci    DataAccessToken token;
7832d43be4eSopenharmony_ci    CellularDataTest::SetDefaultCellularDataSlotIdTest(DEFAULT_SIM_SLOT_ID);
7842d43be4eSopenharmony_ci    CellularDataTest::EnableCellularDataTest(false);
7852d43be4eSopenharmony_ci    WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_DISCONNECTED));
7862d43be4eSopenharmony_ci    sleep(SLEEP_TIME);
7872d43be4eSopenharmony_ci
7882d43be4eSopenharmony_ci    CellularDataTest::EnableCellularDataTest(true);
7892d43be4eSopenharmony_ci    WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_CONNECTED));
7902d43be4eSopenharmony_ci    sleep(SLEEP_TIME);
7912d43be4eSopenharmony_ci    std::cout << "Cellular Data Connected Ping..." << std::endl;
7922d43be4eSopenharmony_ci    int32_t pingResult = CellularDataTest::PingTest();
7932d43be4eSopenharmony_ci    ASSERT_TRUE(pingResult >= PING_CHECK_SUCCESS);
7942d43be4eSopenharmony_ci    int32_t dataFlowType = CellularDataTest::GetCellularDataFlowTypeTest();
7952d43be4eSopenharmony_ci    ASSERT_TRUE(dataFlowType >= 0);
7962d43be4eSopenharmony_ci
7972d43be4eSopenharmony_ci    CellularDataTest::EnableCellularDataTest(false);
7982d43be4eSopenharmony_ci    WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_DISCONNECTED));
7992d43be4eSopenharmony_ci    sleep(SLEEP_TIME);
8002d43be4eSopenharmony_ci    std::cout << "Cellular Data Disconnected Ping..." << std::endl;
8012d43be4eSopenharmony_ci    pingResult = CellularDataTest::PingTest();
8022d43be4eSopenharmony_ci    ASSERT_TRUE(pingResult == PING_CHECK_FAIL);
8032d43be4eSopenharmony_ci    dataFlowType = CellularDataTest::GetCellularDataFlowTypeTest();
8042d43be4eSopenharmony_ci    ASSERT_TRUE(dataFlowType == 0);
8052d43be4eSopenharmony_ci}
8062d43be4eSopenharmony_ci
8072d43be4eSopenharmony_ci/**
8082d43be4eSopenharmony_ci * @tc.number   DataFlowType_Test_02
8092d43be4eSopenharmony_ci * @tc.name     Test the GetCellularDataFlowType function
8102d43be4eSopenharmony_ci * @tc.desc     Function test
8112d43be4eSopenharmony_ci */
8122d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, DataFlowType_Test_02, TestSize.Level3)
8132d43be4eSopenharmony_ci{
8142d43be4eSopenharmony_ci    if (!HasSimCard(SIM_SLOT_ID_1)) {
8152d43be4eSopenharmony_ci        return;
8162d43be4eSopenharmony_ci    }
8172d43be4eSopenharmony_ci    DataAccessToken token;
8182d43be4eSopenharmony_ci    CellularDataTest::SetDefaultCellularDataSlotIdTest(SIM_SLOT_ID_1);
8192d43be4eSopenharmony_ci    CellularDataTest::EnableCellularDataTest(false);
8202d43be4eSopenharmony_ci    WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_DISCONNECTED));
8212d43be4eSopenharmony_ci    sleep(SLEEP_TIME);
8222d43be4eSopenharmony_ci
8232d43be4eSopenharmony_ci    CellularDataTest::EnableCellularDataTest(true);
8242d43be4eSopenharmony_ci    WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_CONNECTED));
8252d43be4eSopenharmony_ci    sleep(SLEEP_TIME);
8262d43be4eSopenharmony_ci    std::cout << "Cellular Data Connected Ping..." << std::endl;
8272d43be4eSopenharmony_ci    int32_t pingResult = CellularDataTest::PingTest();
8282d43be4eSopenharmony_ci    ASSERT_TRUE(pingResult >= PING_CHECK_SUCCESS);
8292d43be4eSopenharmony_ci    int32_t dataFlowType = CellularDataTest::GetCellularDataFlowTypeTest();
8302d43be4eSopenharmony_ci    ASSERT_TRUE(dataFlowType >= 0);
8312d43be4eSopenharmony_ci
8322d43be4eSopenharmony_ci    CellularDataTest::EnableCellularDataTest(false);
8332d43be4eSopenharmony_ci    WaitTestTimeout(static_cast<int32_t>(DataConnectionStatus::DATA_STATE_DISCONNECTED));
8342d43be4eSopenharmony_ci    sleep(SLEEP_TIME);
8352d43be4eSopenharmony_ci    std::cout << "Cellular Data Disconnected Ping..." << std::endl;
8362d43be4eSopenharmony_ci    pingResult = CellularDataTest::PingTest();
8372d43be4eSopenharmony_ci    ASSERT_TRUE(pingResult == PING_CHECK_FAIL);
8382d43be4eSopenharmony_ci    dataFlowType = CellularDataTest::GetCellularDataFlowTypeTest();
8392d43be4eSopenharmony_ci    ASSERT_TRUE(dataFlowType == 0);
8402d43be4eSopenharmony_ci}
8412d43be4eSopenharmony_ci
8422d43be4eSopenharmony_ci/**
8432d43be4eSopenharmony_ci * @tc.number   MmsApn_Test_01
8442d43be4eSopenharmony_ci * @tc.name     Test the Mms apn function
8452d43be4eSopenharmony_ci * @tc.desc     Function test
8462d43be4eSopenharmony_ci */
8472d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, MmsApn_Test_01, TestSize.Level3)
8482d43be4eSopenharmony_ci{
8492d43be4eSopenharmony_ci    if (!HasSimCard(DEFAULT_SIM_SLOT_ID)) {
8502d43be4eSopenharmony_ci        return;
8512d43be4eSopenharmony_ci    }
8522d43be4eSopenharmony_ci    DataAccessToken token;
8532d43be4eSopenharmony_ci    sptr<INetConnCallback> callback = new (std::nothrow) TestCallback();
8542d43be4eSopenharmony_ci    if (callback == nullptr) {
8552d43be4eSopenharmony_ci        std::cout << "callback is null" << std::endl;
8562d43be4eSopenharmony_ci        return;
8572d43be4eSopenharmony_ci    }
8582d43be4eSopenharmony_ci    NetSpecifier netSpecifier;
8592d43be4eSopenharmony_ci    NetAllCapabilities netAllCapabilities;
8602d43be4eSopenharmony_ci    netAllCapabilities.netCaps_.insert(NetCap::NET_CAPABILITY_MMS);
8612d43be4eSopenharmony_ci    netAllCapabilities.bearerTypes_.insert(NetBearType::BEARER_CELLULAR);
8622d43be4eSopenharmony_ci    int32_t simId = CoreServiceClient::GetInstance().GetSimId(DEFAULT_SIM_SLOT_ID);
8632d43be4eSopenharmony_ci    netSpecifier.ident_ = "simId" + std::to_string(simId);
8642d43be4eSopenharmony_ci    netSpecifier.netCapabilities_ = netAllCapabilities;
8652d43be4eSopenharmony_ci    sptr<NetSpecifier> specifier = new (std::nothrow) NetSpecifier(netSpecifier);
8662d43be4eSopenharmony_ci    if (specifier == nullptr) {
8672d43be4eSopenharmony_ci        std::cout << "specifier is null" << std::endl;
8682d43be4eSopenharmony_ci        return;
8692d43be4eSopenharmony_ci    }
8702d43be4eSopenharmony_ci    int32_t result = NetConnClient::GetInstance().RegisterNetConnCallback(specifier, callback, NET_REGISTER_TIMEOUT_MS);
8712d43be4eSopenharmony_ci    std::cout << "RegisterNetConnCallback result [" << result << "]" << std::endl;
8722d43be4eSopenharmony_ci    auto mmsCallback = static_cast<TestCallback *>(callback.GetRefPtr());
8732d43be4eSopenharmony_ci    if (mmsCallback == nullptr) {
8742d43be4eSopenharmony_ci        std::cout << "mmsCallback is null" << std::endl;
8752d43be4eSopenharmony_ci        return;
8762d43be4eSopenharmony_ci    }
8772d43be4eSopenharmony_ci    int32_t count = 0;
8782d43be4eSopenharmony_ci    while (count < MAX_TIMES) {
8792d43be4eSopenharmony_ci        sleep(SLEEP_TIME);
8802d43be4eSopenharmony_ci        if (mmsCallback->isCallback_ == true) {
8812d43be4eSopenharmony_ci            break;
8822d43be4eSopenharmony_ci        }
8832d43be4eSopenharmony_ci        count++;
8842d43be4eSopenharmony_ci    }
8852d43be4eSopenharmony_ci    ASSERT_TRUE(mmsCallback->isCallback_);
8862d43be4eSopenharmony_ci    result = NetConnClient::GetInstance().UnregisterNetConnCallback(callback);
8872d43be4eSopenharmony_ci    std::cout << "UnregisterNetConnCallback result [" << result << "]" << std::endl;
8882d43be4eSopenharmony_ci}
8892d43be4eSopenharmony_ci
8902d43be4eSopenharmony_ci/**
8912d43be4eSopenharmony_ci * @tc.number   MmsApn_Test_02
8922d43be4eSopenharmony_ci * @tc.name     Test the Mms apn function
8932d43be4eSopenharmony_ci * @tc.desc     Function test
8942d43be4eSopenharmony_ci */
8952d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, MmsApn_Test_02, TestSize.Level3)
8962d43be4eSopenharmony_ci{
8972d43be4eSopenharmony_ci    if (!HasSimCard(SIM_SLOT_ID_1)) {
8982d43be4eSopenharmony_ci        return;
8992d43be4eSopenharmony_ci    }
9002d43be4eSopenharmony_ci    DataAccessToken token;
9012d43be4eSopenharmony_ci    sptr<INetConnCallback> callback = new (std::nothrow) TestCallback();
9022d43be4eSopenharmony_ci    if (callback == nullptr) {
9032d43be4eSopenharmony_ci        std::cout << "callback is null" << std::endl;
9042d43be4eSopenharmony_ci        return;
9052d43be4eSopenharmony_ci    }
9062d43be4eSopenharmony_ci    NetSpecifier netSpecifier;
9072d43be4eSopenharmony_ci    NetAllCapabilities netAllCapabilities;
9082d43be4eSopenharmony_ci    netAllCapabilities.netCaps_.insert(NetCap::NET_CAPABILITY_MMS);
9092d43be4eSopenharmony_ci    netAllCapabilities.bearerTypes_.insert(NetBearType::BEARER_CELLULAR);
9102d43be4eSopenharmony_ci    int32_t simId = CoreServiceClient::GetInstance().GetSimId(SIM_SLOT_ID_1);
9112d43be4eSopenharmony_ci    netSpecifier.ident_ = "simId" + std::to_string(simId);
9122d43be4eSopenharmony_ci    netSpecifier.netCapabilities_ = netAllCapabilities;
9132d43be4eSopenharmony_ci    sptr<NetSpecifier> specifier = new (std::nothrow) NetSpecifier(netSpecifier);
9142d43be4eSopenharmony_ci    if (specifier == nullptr) {
9152d43be4eSopenharmony_ci        std::cout << "specifier is null" << std::endl;
9162d43be4eSopenharmony_ci        return;
9172d43be4eSopenharmony_ci    }
9182d43be4eSopenharmony_ci    int32_t result = NetConnClient::GetInstance().RegisterNetConnCallback(specifier, callback, NET_REGISTER_TIMEOUT_MS);
9192d43be4eSopenharmony_ci    std::cout << "RegisterNetConnCallback result [" << result << "]" << std::endl;
9202d43be4eSopenharmony_ci    auto mmsCallback = static_cast<TestCallback *>(callback.GetRefPtr());
9212d43be4eSopenharmony_ci    if (mmsCallback == nullptr) {
9222d43be4eSopenharmony_ci        std::cout << "mmsCallback is null" << std::endl;
9232d43be4eSopenharmony_ci        return;
9242d43be4eSopenharmony_ci    }
9252d43be4eSopenharmony_ci    int32_t count = 0;
9262d43be4eSopenharmony_ci    while (count < MAX_TIMES) {
9272d43be4eSopenharmony_ci        sleep(SLEEP_TIME);
9282d43be4eSopenharmony_ci        if (mmsCallback->isCallback_ == true) {
9292d43be4eSopenharmony_ci            break;
9302d43be4eSopenharmony_ci        }
9312d43be4eSopenharmony_ci        count++;
9322d43be4eSopenharmony_ci    }
9332d43be4eSopenharmony_ci    ASSERT_TRUE(mmsCallback->isCallback_);
9342d43be4eSopenharmony_ci    result = NetConnClient::GetInstance().UnregisterNetConnCallback(callback);
9352d43be4eSopenharmony_ci    std::cout << "UnregisterNetConnCallback result [" << result << "]" << std::endl;
9362d43be4eSopenharmony_ci}
9372d43be4eSopenharmony_ci
9382d43be4eSopenharmony_ci/**
9392d43be4eSopenharmony_ci * @tc.number   HasInternetCapability_Test_01
9402d43be4eSopenharmony_ci * @tc.name     Test the HasInternetCapability function
9412d43be4eSopenharmony_ci * @tc.desc     Function test
9422d43be4eSopenharmony_ci */
9432d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, HasInternetCapability_Test_01, TestSize.Level3)
9442d43be4eSopenharmony_ci{
9452d43be4eSopenharmony_ci    if (!HasSimCard(SIM_SLOT_ID_1)) {
9462d43be4eSopenharmony_ci        return;
9472d43be4eSopenharmony_ci    }
9482d43be4eSopenharmony_ci
9492d43be4eSopenharmony_ci    int32_t cid = 1;
9502d43be4eSopenharmony_ci    int32_t result = CellularDataTest::HasInternetCapability(SIM_SLOT_ID_1, cid);
9512d43be4eSopenharmony_ci    ASSERT_TRUE(result == static_cast<int32_t>(RequestNetCode::REQUEST_FAILED));
9522d43be4eSopenharmony_ci}
9532d43be4eSopenharmony_ci
9542d43be4eSopenharmony_ci/**
9552d43be4eSopenharmony_ci * @tc.number   HasInternetCapability_Test_02
9562d43be4eSopenharmony_ci * @tc.name     Test the HasInternetCapability function
9572d43be4eSopenharmony_ci * @tc.desc     Function test
9582d43be4eSopenharmony_ci */
9592d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, HasInternetCapability_Test_02, TestSize.Level3)
9602d43be4eSopenharmony_ci{
9612d43be4eSopenharmony_ci    if (!HasSimCard(DEFAULT_SIM_SLOT_ID)) {
9622d43be4eSopenharmony_ci        return;
9632d43be4eSopenharmony_ci    }
9642d43be4eSopenharmony_ci
9652d43be4eSopenharmony_ci    int32_t cid = 1;
9662d43be4eSopenharmony_ci    int32_t result = CellularDataTest::HasInternetCapability(DEFAULT_SIM_SLOT_ID, cid);
9672d43be4eSopenharmony_ci    ASSERT_TRUE(result == static_cast<int32_t>(RequestNetCode::REQUEST_FAILED));
9682d43be4eSopenharmony_ci}
9692d43be4eSopenharmony_ci
9702d43be4eSopenharmony_ci/**
9712d43be4eSopenharmony_ci * @tc.number   ClearCellularDataConnections_Test_01
9722d43be4eSopenharmony_ci * @tc.name     Test the ClearCellularDataConnections function
9732d43be4eSopenharmony_ci * @tc.desc     Function test
9742d43be4eSopenharmony_ci */
9752d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, ClearCellularDataConnections_Test_01, TestSize.Level3)
9762d43be4eSopenharmony_ci{
9772d43be4eSopenharmony_ci    if (!HasSimCard(SIM_SLOT_ID_1)) {
9782d43be4eSopenharmony_ci        return;
9792d43be4eSopenharmony_ci    }
9802d43be4eSopenharmony_ci    DataAccessToken token;
9812d43be4eSopenharmony_ci    int32_t result = CellularDataTest::ClearCellularDataConnections(SIM_SLOT_ID_1);
9822d43be4eSopenharmony_ci    ASSERT_TRUE(result == static_cast<int32_t>(RequestNetCode::REQUEST_SUCCESS));
9832d43be4eSopenharmony_ci}
9842d43be4eSopenharmony_ci
9852d43be4eSopenharmony_ci/**
9862d43be4eSopenharmony_ci * @tc.number   ClearCellularDataConnections_Test_02
9872d43be4eSopenharmony_ci * @tc.name     Test the ClearCellularDataConnections function
9882d43be4eSopenharmony_ci * @tc.desc     Function test
9892d43be4eSopenharmony_ci */
9902d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, ClearCellularDataConnections_Test_02, TestSize.Level3)
9912d43be4eSopenharmony_ci{
9922d43be4eSopenharmony_ci    if (!HasSimCard(DEFAULT_SIM_SLOT_ID)) {
9932d43be4eSopenharmony_ci        return;
9942d43be4eSopenharmony_ci    }
9952d43be4eSopenharmony_ci    DataAccessToken token;
9962d43be4eSopenharmony_ci    int32_t result = CellularDataTest::ClearCellularDataConnections(DEFAULT_SIM_SLOT_ID);
9972d43be4eSopenharmony_ci    ASSERT_TRUE(result == static_cast<int32_t>(RequestNetCode::REQUEST_SUCCESS));
9982d43be4eSopenharmony_ci}
9992d43be4eSopenharmony_ci
10002d43be4eSopenharmony_ci/**
10012d43be4eSopenharmony_ci * @tc.number   ClearAllConnections
10022d43be4eSopenharmony_ci * @tc.name     Test the ClearAllConnections function
10032d43be4eSopenharmony_ci * @tc.desc     Function test
10042d43be4eSopenharmony_ci */
10052d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, ClearAllConnections_Test_01, TestSize.Level3)
10062d43be4eSopenharmony_ci{
10072d43be4eSopenharmony_ci    if (!HasSimCard(DEFAULT_SIM_SLOT_ID)) {
10082d43be4eSopenharmony_ci        return;
10092d43be4eSopenharmony_ci    }
10102d43be4eSopenharmony_ci    DataAccessToken token;
10112d43be4eSopenharmony_ci    int32_t result = CellularDataTest::ClearAllConnections(
10122d43be4eSopenharmony_ci        DEFAULT_SIM_SLOT_ID, DisConnectionReason::REASON_RETRY_CONNECTION);
10132d43be4eSopenharmony_ci    ASSERT_TRUE(result == static_cast<int32_t>(RequestNetCode::REQUEST_SUCCESS));
10142d43be4eSopenharmony_ci}
10152d43be4eSopenharmony_ci
10162d43be4eSopenharmony_ci/**
10172d43be4eSopenharmony_ci * @tc.number   GetApnState
10182d43be4eSopenharmony_ci * @tc.name     Test the GetApnState function
10192d43be4eSopenharmony_ci * @tc.desc     Function test
10202d43be4eSopenharmony_ci */
10212d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, GetApnState_Test_01, TestSize.Level3)
10222d43be4eSopenharmony_ci{
10232d43be4eSopenharmony_ci    if (!HasSimCard(DEFAULT_SIM_SLOT_ID)) {
10242d43be4eSopenharmony_ci        return;
10252d43be4eSopenharmony_ci    }
10262d43be4eSopenharmony_ci    DataAccessToken token;
10272d43be4eSopenharmony_ci    int32_t result = CellularDataTest::GetApnState(DEFAULT_SIM_SLOT_ID, "default");
10282d43be4eSopenharmony_ci    ASSERT_TRUE(result >= 0 && result <= 5);
10292d43be4eSopenharmony_ci}
10302d43be4eSopenharmony_ci
10312d43be4eSopenharmony_ci/**
10322d43be4eSopenharmony_ci * @tc.number   GetDataRecoveryState
10332d43be4eSopenharmony_ci * @tc.name     Test the GetDataRecoveryState function
10342d43be4eSopenharmony_ci * @tc.desc     Function test
10352d43be4eSopenharmony_ci */
10362d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, GetDataRecoveryState_Test_01, TestSize.Level3)
10372d43be4eSopenharmony_ci{
10382d43be4eSopenharmony_ci    if (!HasSimCard(DEFAULT_SIM_SLOT_ID)) {
10392d43be4eSopenharmony_ci        return;
10402d43be4eSopenharmony_ci    }
10412d43be4eSopenharmony_ci    DataAccessToken token;
10422d43be4eSopenharmony_ci    int32_t result = CellularDataTest::GetDataRecoveryState();
10432d43be4eSopenharmony_ci    ASSERT_TRUE(result >= 0 && result <= 3);
10442d43be4eSopenharmony_ci}
10452d43be4eSopenharmony_ci
10462d43be4eSopenharmony_ci/**
10472d43be4eSopenharmony_ci * @tc.number   CellularDataDump_Test_01
10482d43be4eSopenharmony_ci * @tc.name    TestDump
10492d43be4eSopenharmony_ci * @tc.desc     Function test
10502d43be4eSopenharmony_ci */
10512d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, CellularDataDump_Test_01, Function | MediumTest | Level3)
10522d43be4eSopenharmony_ci{
10532d43be4eSopenharmony_ci    std::vector<std::u16string> emptyArgs = {};
10542d43be4eSopenharmony_ci    std::vector<std::u16string> args = { u"test", u"test1" };
10552d43be4eSopenharmony_ci    EXPECT_GE(DelayedSingleton<CellularDataService>::GetInstance()->Dump(-1, args), 0);
10562d43be4eSopenharmony_ci    EXPECT_GE(DelayedSingleton<CellularDataService>::GetInstance()->Dump(0, emptyArgs), 0);
10572d43be4eSopenharmony_ci    EXPECT_GE(DelayedSingleton<CellularDataService>::GetInstance()->Dump(0, args), 0);
10582d43be4eSopenharmony_ci}
10592d43be4eSopenharmony_ci
10602d43be4eSopenharmony_ci/**
10612d43be4eSopenharmony_ci * @tc.number   Telephony_Cellulardata_InitTelephonyExtService_0100
10622d43be4eSopenharmony_ci * @tc.name     Init Telephony Ext Service.
10632d43be4eSopenharmony_ci * @tc.desc     Function test
10642d43be4eSopenharmony_ci */
10652d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, Telephony_Cellulardata_InitTelephonyExtService_0100, Function | MediumTest | Level1)
10662d43be4eSopenharmony_ci{
10672d43be4eSopenharmony_ci    DataAccessToken token;
10682d43be4eSopenharmony_ci    TELEPHONY_EXT_WRAPPER.InitTelephonyExtWrapper();
10692d43be4eSopenharmony_ci    if (TELEPHONY_EXT_WRAPPER.telephonyExtWrapperHandle_ == nullptr) {
10702d43be4eSopenharmony_ci        TELEPHONY_LOGI("telephonyExtWrapperHandle_ null");
10712d43be4eSopenharmony_ci    } else {
10722d43be4eSopenharmony_ci        TELEPHONY_LOGI("telephonyExtWrapperHandle_ not null");
10732d43be4eSopenharmony_ci        EXPECT_EQ(TELEPHONY_EXT_WRAPPER.dataEndSelfCure_ != nullptr, true);
10742d43be4eSopenharmony_ci    }
10752d43be4eSopenharmony_ci}
10762d43be4eSopenharmony_ci
10772d43be4eSopenharmony_ci/**
10782d43be4eSopenharmony_ci * @tc.number   GetDataConnApnAttr_Test_01
10792d43be4eSopenharmony_ci * @tc.name     Test the GetDataConnApnAttr function
10802d43be4eSopenharmony_ci * @tc.desc     Function test
10812d43be4eSopenharmony_ci */
10822d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, GetDataConnApnAttr_Test_01, TestSize.Level3)
10832d43be4eSopenharmony_ci{
10842d43be4eSopenharmony_ci    if (!HasSimCard(SIM_SLOT_ID_1)) {
10852d43be4eSopenharmony_ci        return;
10862d43be4eSopenharmony_ci    }
10872d43be4eSopenharmony_ci    DataAccessToken token;
10882d43be4eSopenharmony_ci    ApnItem::Attribute apnAttr;
10892d43be4eSopenharmony_ci    int32_t result = CellularDataTest::GetDataConnApnAttr(SIM_SLOT_ID_1, apnAttr);
10902d43be4eSopenharmony_ci    ASSERT_TRUE(result == TELEPHONY_ERR_SUCCESS);
10912d43be4eSopenharmony_ci}
10922d43be4eSopenharmony_ci
10932d43be4eSopenharmony_ci/**
10942d43be4eSopenharmony_ci * @tc.number   GetDataConnApnAttr_Test_02
10952d43be4eSopenharmony_ci * @tc.name     Test the GetDataConnApnAttr function
10962d43be4eSopenharmony_ci * @tc.desc     Function test
10972d43be4eSopenharmony_ci */
10982d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, GetDataConnApnAttr_Test_02, TestSize.Level3)
10992d43be4eSopenharmony_ci{
11002d43be4eSopenharmony_ci    if (!HasSimCard(DEFAULT_SIM_SLOT_ID)) {
11012d43be4eSopenharmony_ci        return;
11022d43be4eSopenharmony_ci    }
11032d43be4eSopenharmony_ci    DataAccessToken token;
11042d43be4eSopenharmony_ci    ApnItem::Attribute apnAttr;
11052d43be4eSopenharmony_ci    int32_t result = CellularDataTest::GetDataConnApnAttr(DEFAULT_SIM_SLOT_ID, apnAttr);
11062d43be4eSopenharmony_ci    ASSERT_TRUE(result == TELEPHONY_ERR_SUCCESS);
11072d43be4eSopenharmony_ci}
11082d43be4eSopenharmony_ci
11092d43be4eSopenharmony_ci/**
11102d43be4eSopenharmony_ci * @tc.number   GetDataConnIpType_Test_01
11112d43be4eSopenharmony_ci * @tc.name     Test the GetDataConnIpType function
11122d43be4eSopenharmony_ci * @tc.desc     Function test
11132d43be4eSopenharmony_ci */
11142d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, GetDataConnIpType_Test_01, TestSize.Level3)
11152d43be4eSopenharmony_ci{
11162d43be4eSopenharmony_ci    if (!HasSimCard(SIM_SLOT_ID_1)) {
11172d43be4eSopenharmony_ci        return;
11182d43be4eSopenharmony_ci    }
11192d43be4eSopenharmony_ci    DataAccessToken token;
11202d43be4eSopenharmony_ci    std::string ipType;
11212d43be4eSopenharmony_ci    int32_t result = CellularDataTest::GetDataConnIpType(SIM_SLOT_ID_1, ipType);
11222d43be4eSopenharmony_ci    ASSERT_TRUE(result == TELEPHONY_ERR_SUCCESS);
11232d43be4eSopenharmony_ci}
11242d43be4eSopenharmony_ci
11252d43be4eSopenharmony_ci/**
11262d43be4eSopenharmony_ci * @tc.number   GetDataConnIpType_Test_02
11272d43be4eSopenharmony_ci * @tc.name     Test the GetDataConnIpType function
11282d43be4eSopenharmony_ci * @tc.desc     Function test
11292d43be4eSopenharmony_ci */
11302d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, GetDataConnIpType_Test_02, TestSize.Level3)
11312d43be4eSopenharmony_ci{
11322d43be4eSopenharmony_ci    if (!HasSimCard(DEFAULT_SIM_SLOT_ID)) {
11332d43be4eSopenharmony_ci        return;
11342d43be4eSopenharmony_ci    }
11352d43be4eSopenharmony_ci    DataAccessToken token;
11362d43be4eSopenharmony_ci    std::string ipType;
11372d43be4eSopenharmony_ci    int32_t result = CellularDataTest::GetDataConnIpType(DEFAULT_SIM_SLOT_ID, ipType);
11382d43be4eSopenharmony_ci    ASSERT_TRUE(result == TELEPHONY_ERR_SUCCESS);
11392d43be4eSopenharmony_ci}
11402d43be4eSopenharmony_ci
11412d43be4eSopenharmony_ci/**
11422d43be4eSopenharmony_ci * @tc.number   IsNeedDoRecovery_Test_01
11432d43be4eSopenharmony_ci * @tc.name     Test the IsNeedDoRecovery function
11442d43be4eSopenharmony_ci * @tc.desc     Function test
11452d43be4eSopenharmony_ci */
11462d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, IsNeedDoRecovery_Test_01, TestSize.Level3)
11472d43be4eSopenharmony_ci{
11482d43be4eSopenharmony_ci    if (!HasSimCard(SIM_SLOT_ID_1)) {
11492d43be4eSopenharmony_ci        return;
11502d43be4eSopenharmony_ci    }
11512d43be4eSopenharmony_ci    DataAccessToken token;
11522d43be4eSopenharmony_ci    bool needDoRecovery = true;
11532d43be4eSopenharmony_ci    int32_t result = CellularDataTest::IsNeedDoRecovery(SIM_SLOT_ID_1, needDoRecovery);
11542d43be4eSopenharmony_ci    ASSERT_TRUE(result == TELEPHONY_ERR_SUCCESS);
11552d43be4eSopenharmony_ci}
11562d43be4eSopenharmony_ci
11572d43be4eSopenharmony_ci/**
11582d43be4eSopenharmony_ci * @tc.number   IsNeedDoRecovery_Test_02
11592d43be4eSopenharmony_ci * @tc.name     Test the IsNeedDoRecovery function
11602d43be4eSopenharmony_ci * @tc.desc     Function test
11612d43be4eSopenharmony_ci */
11622d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, IsNeedDoRecovery_Test_02, TestSize.Level3)
11632d43be4eSopenharmony_ci{
11642d43be4eSopenharmony_ci    if (!HasSimCard(DEFAULT_SIM_SLOT_ID)) {
11652d43be4eSopenharmony_ci        return;
11662d43be4eSopenharmony_ci    }
11672d43be4eSopenharmony_ci    DataAccessToken token;
11682d43be4eSopenharmony_ci    bool needDoRecovery = true;
11692d43be4eSopenharmony_ci    int32_t result = CellularDataTest::IsNeedDoRecovery(DEFAULT_SIM_SLOT_ID, needDoRecovery);
11702d43be4eSopenharmony_ci    ASSERT_TRUE(result == TELEPHONY_ERR_SUCCESS);
11712d43be4eSopenharmony_ci}
11722d43be4eSopenharmony_ci
11732d43be4eSopenharmony_ci/**
11742d43be4eSopenharmony_ci * @tc.number   GetCellularDataSupplierId_Test_01
11752d43be4eSopenharmony_ci * @tc.name     Test the function
11762d43be4eSopenharmony_ci * @tc.desc     Function test
11772d43be4eSopenharmony_ci */
11782d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, GetCellularDataSupplierId_Test_01, TestSize.Level3)
11792d43be4eSopenharmony_ci{
11802d43be4eSopenharmony_ci    if (!HasSimCard(DEFAULT_SIM_SLOT_ID)) {
11812d43be4eSopenharmony_ci        return;
11822d43be4eSopenharmony_ci    }
11832d43be4eSopenharmony_ci    DataAccessToken token;
11842d43be4eSopenharmony_ci    uint32_t supplierId = 0;
11852d43be4eSopenharmony_ci    uint64_t capabilityInvalid = NetCap::NET_CAPABILITY_END;
11862d43be4eSopenharmony_ci    int32_t result = CellularDataTest::GetCellularDataSupplierId(DEFAULT_SIM_SLOT_ID, capabilityInvalid, supplierId);
11872d43be4eSopenharmony_ci    ASSERT_TRUE(result == CELLULAR_DATA_INVALID_PARAM);
11882d43be4eSopenharmony_ci
11892d43be4eSopenharmony_ci    result =
11902d43be4eSopenharmony_ci        CellularDataTest::GetCellularDataSupplierId(DEFAULT_SIM_SLOT_ID, NetCap::NET_CAPABILITY_INTERNET, supplierId);
11912d43be4eSopenharmony_ci    ASSERT_TRUE(result == TELEPHONY_ERR_SUCCESS);
11922d43be4eSopenharmony_ci}
11932d43be4eSopenharmony_ci
11942d43be4eSopenharmony_ci/**
11952d43be4eSopenharmony_ci * @tc.number   CorrectNetSupplierNoAvailable_Test_01
11962d43be4eSopenharmony_ci * @tc.name     Test the function
11972d43be4eSopenharmony_ci * @tc.desc     Function test
11982d43be4eSopenharmony_ci */
11992d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, CorrectNetSupplierNoAvailable_Test_01, TestSize.Level3)
12002d43be4eSopenharmony_ci{
12012d43be4eSopenharmony_ci    if (!HasSimCard(DEFAULT_SIM_SLOT_ID)) {
12022d43be4eSopenharmony_ci        return;
12032d43be4eSopenharmony_ci    }
12042d43be4eSopenharmony_ci    DataAccessToken token;
12052d43be4eSopenharmony_ci    int32_t result = CellularDataTest::CorrectNetSupplierNoAvailable(DEFAULT_SIM_SLOT_ID);
12062d43be4eSopenharmony_ci    int32_t apnState = CellularDataTest::GetApnState(DEFAULT_SIM_SLOT_ID, "default");
12072d43be4eSopenharmony_ci    if (apnState == ApnProfileState::PROFILE_STATE_CONNECTED) {
12082d43be4eSopenharmony_ci        ASSERT_TRUE(result == TELEPHONY_ERR_FAIL);
12092d43be4eSopenharmony_ci    } else {
12102d43be4eSopenharmony_ci        ASSERT_TRUE(result == TELEPHONY_ERR_SUCCESS);
12112d43be4eSopenharmony_ci    }
12122d43be4eSopenharmony_ci}
12132d43be4eSopenharmony_ci
12142d43be4eSopenharmony_ci/**
12152d43be4eSopenharmony_ci * @tc.number   GetSupplierRegisterState_Test_01
12162d43be4eSopenharmony_ci * @tc.name     Test the function
12172d43be4eSopenharmony_ci * @tc.desc     Function test
12182d43be4eSopenharmony_ci */
12192d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, GetSupplierRegisterState_Test_01, TestSize.Level3)
12202d43be4eSopenharmony_ci{
12212d43be4eSopenharmony_ci    DataAccessToken token;
12222d43be4eSopenharmony_ci    int32_t regState = -1;
12232d43be4eSopenharmony_ci    uint32_t supplierId = 1;
12242d43be4eSopenharmony_ci    int32_t result = CellularDataTest::GetSupplierRegisterState(supplierId, regState);
12252d43be4eSopenharmony_ci    ASSERT_TRUE(result == TELEPHONY_ERR_FAIL);
12262d43be4eSopenharmony_ci
12272d43be4eSopenharmony_ci    if (!HasSimCard(DEFAULT_SIM_SLOT_ID)) {
12282d43be4eSopenharmony_ci        return;
12292d43be4eSopenharmony_ci    }
12302d43be4eSopenharmony_ci    int32_t getSupplierIdRet =
12312d43be4eSopenharmony_ci        CellularDataTest::GetCellularDataSupplierId(DEFAULT_SIM_SLOT_ID, NetCap::NET_CAPABILITY_INTERNET, supplierId);
12322d43be4eSopenharmony_ci    if (getSupplierIdRet == TELEPHONY_ERR_SUCCESS) {
12332d43be4eSopenharmony_ci        result = CellularDataTest::GetSupplierRegisterState(supplierId, regState);
12342d43be4eSopenharmony_ci        ASSERT_TRUE(result == TELEPHONY_ERR_SUCCESS);
12352d43be4eSopenharmony_ci    }
12362d43be4eSopenharmony_ci}
12372d43be4eSopenharmony_ci
12382d43be4eSopenharmony_ci/**
12392d43be4eSopenharmony_ci * @tc.number   EnableIntelligenceSwitch_Test_01
12402d43be4eSopenharmony_ci * @tc.name     Test Intelligence switch
12412d43be4eSopenharmony_ci * @tc.desc     Function test
12422d43be4eSopenharmony_ci */
12432d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, EnableIntelligenceSwitch_Test_01, TestSize.Level2)
12442d43be4eSopenharmony_ci{
12452d43be4eSopenharmony_ci    if (!HasSimCard(DEFAULT_SIM_SLOT_ID)) {
12462d43be4eSopenharmony_ci        return;
12472d43be4eSopenharmony_ci    }
12482d43be4eSopenharmony_ci    DataAccessToken token;
12492d43be4eSopenharmony_ci    CellularDataTest::SetDefaultCellularDataSlotIdTest(DEFAULT_SIM_SLOT_ID);
12502d43be4eSopenharmony_ci    int32_t result1 = CellularDataTest::EnableIntelligenceSwitchTest(true);
12512d43be4eSopenharmony_ci    ASSERT_TRUE(result1 == TELEPHONY_ERR_SUCCESS);
12522d43be4eSopenharmony_ci    sleep(SLEEP_TIME);
12532d43be4eSopenharmony_ci    std::cout << "EnableIntelligenceSwitch ..." << std::endl;
12542d43be4eSopenharmony_ci    int32_t result2 = CellularDataTest::EnableIntelligenceSwitchTest(false);
12552d43be4eSopenharmony_ci    ASSERT_TRUE(result2 == TELEPHONY_ERR_SUCCESS);
12562d43be4eSopenharmony_ci    sleep(SLEEP_TIME);
12572d43be4eSopenharmony_ci    std::cout << "DisableIntelligenceSwitch ..." << std::endl;
12582d43be4eSopenharmony_ci}
12592d43be4eSopenharmony_ci
12602d43be4eSopenharmony_ci/**
12612d43be4eSopenharmony_ci * @tc.number   GetIntelligenceSwitchState_Test_01
12622d43be4eSopenharmony_ci * @tc.name     Test Intelligence switch
12632d43be4eSopenharmony_ci * @tc.desc     Function test
12642d43be4eSopenharmony_ci */
12652d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, GetIntelligenceSwitchState_Test_01, TestSize.Level2)
12662d43be4eSopenharmony_ci{
12672d43be4eSopenharmony_ci    if (!HasSimCard(DEFAULT_SIM_SLOT_ID)) {
12682d43be4eSopenharmony_ci        return;
12692d43be4eSopenharmony_ci    }
12702d43be4eSopenharmony_ci    DataAccessToken token;
12712d43be4eSopenharmony_ci    CellularDataTest::SetDefaultCellularDataSlotIdTest(DEFAULT_SIM_SLOT_ID);
12722d43be4eSopenharmony_ci    int32_t result1 = CellularDataTest::EnableIntelligenceSwitchTest(true);
12732d43be4eSopenharmony_ci    ASSERT_TRUE(result1 == TELEPHONY_ERR_SUCCESS);
12742d43be4eSopenharmony_ci    bool res1 = false;
12752d43be4eSopenharmony_ci    CellularDataTest::GetIntelligenceSwitchStateTest(res1);
12762d43be4eSopenharmony_ci    ASSERT_TRUE(res1 == true);
12772d43be4eSopenharmony_ci    std::cout << "Test GetIntelligenceSwitchState Of True..." << std::endl;
12782d43be4eSopenharmony_ci    int32_t result2 = CellularDataTest::EnableIntelligenceSwitchTest(false);
12792d43be4eSopenharmony_ci    ASSERT_TRUE(result2 == TELEPHONY_ERR_SUCCESS);
12802d43be4eSopenharmony_ci    bool res2 = true;
12812d43be4eSopenharmony_ci    CellularDataTest::GetIntelligenceSwitchStateTest(res2);
12822d43be4eSopenharmony_ci    ASSERT_TRUE(res2 == false);
12832d43be4eSopenharmony_ci    std::cout << "Test GetIntelligenceSwitchState Of False..." << std::endl;
12842d43be4eSopenharmony_ci}
12852d43be4eSopenharmony_ci
12862d43be4eSopenharmony_ci/**
12872d43be4eSopenharmony_ci * @tc.number   InitCellularDataController_Test_01
12882d43be4eSopenharmony_ci * @tc.name     Test the InitCellularDataController function
12892d43be4eSopenharmony_ci * @tc.desc     Function test
12902d43be4eSopenharmony_ci */
12912d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, InitCellularDataController_Test_01, TestSize.Level3)
12922d43be4eSopenharmony_ci{
12932d43be4eSopenharmony_ci    if (!HasSimCard(SIM_SLOT_ID_1)) {
12942d43be4eSopenharmony_ci        return;
12952d43be4eSopenharmony_ci    }
12962d43be4eSopenharmony_ci    DataAccessToken token;
12972d43be4eSopenharmony_ci    int32_t result = CellularDataTest::InitCellularDataController(SIM_SLOT_ID_1);
12982d43be4eSopenharmony_ci    ASSERT_TRUE(result == CELLULAR_DATA_INVALID_PARAM);
12992d43be4eSopenharmony_ci}
13002d43be4eSopenharmony_ci
13012d43be4eSopenharmony_ci/**
13022d43be4eSopenharmony_ci * @tc.number   InitCellularDataController_Test_02
13032d43be4eSopenharmony_ci * @tc.name     Test the InitCellularDataController function
13042d43be4eSopenharmony_ci * @tc.desc     Function test
13052d43be4eSopenharmony_ci */
13062d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, InitCellularDataController_Test_02, TestSize.Level3)
13072d43be4eSopenharmony_ci{
13082d43be4eSopenharmony_ci    if (!HasSimCard(DEFAULT_SIM_SLOT_ID)) {
13092d43be4eSopenharmony_ci        return;
13102d43be4eSopenharmony_ci    }
13112d43be4eSopenharmony_ci    DataAccessToken token;
13122d43be4eSopenharmony_ci    int32_t result = CellularDataTest::InitCellularDataController(DEFAULT_SIM_SLOT_ID);
13132d43be4eSopenharmony_ci    ASSERT_TRUE(result == CELLULAR_DATA_INVALID_PARAM);
13142d43be4eSopenharmony_ci}
13152d43be4eSopenharmony_ci
13162d43be4eSopenharmony_ci/**
13172d43be4eSopenharmony_ci * @tc.number   InitCellularDataController_Test_03
13182d43be4eSopenharmony_ci * @tc.name     Test the InitCellularDataController function
13192d43be4eSopenharmony_ci * @tc.desc     Function test
13202d43be4eSopenharmony_ci */
13212d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, InitCellularDataController_Test_03, TestSize.Level3)
13222d43be4eSopenharmony_ci{
13232d43be4eSopenharmony_ci    DataAccessToken token;
13242d43be4eSopenharmony_ci    int32_t result = CellularDataTest::InitCellularDataController(CELLULAR_DATA_VSIM_SLOT_ID);
13252d43be4eSopenharmony_ci    ASSERT_TRUE(result == TELEPHONY_ERR_SUCCESS);
13262d43be4eSopenharmony_ci}
13272d43be4eSopenharmony_ci
13282d43be4eSopenharmony_ci/**
13292d43be4eSopenharmony_ci * @tc.number   SUPL_Apn_Test_01
13302d43be4eSopenharmony_ci * @tc.name     Test the SUPL apn function
13312d43be4eSopenharmony_ci * @tc.desc     Function test
13322d43be4eSopenharmony_ci */
13332d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, SUPL_Apn_Test_01, TestSize.Level3)
13342d43be4eSopenharmony_ci{
13352d43be4eSopenharmony_ci    if (!HasSimCard(DEFAULT_SIM_SLOT_ID)) {
13362d43be4eSopenharmony_ci        return;
13372d43be4eSopenharmony_ci    }
13382d43be4eSopenharmony_ci    DataAccessToken token;
13392d43be4eSopenharmony_ci    sptr<INetConnCallback> callback = new (std::nothrow) TestCallback();
13402d43be4eSopenharmony_ci    if (callback == nullptr) {
13412d43be4eSopenharmony_ci        std::cout << "callback is null" << std::endl;
13422d43be4eSopenharmony_ci        return;
13432d43be4eSopenharmony_ci    }
13442d43be4eSopenharmony_ci    NetSpecifier netSpecifier;
13452d43be4eSopenharmony_ci    NetAllCapabilities netAllCapabilities;
13462d43be4eSopenharmony_ci    netAllCapabilities.netCaps_.insert(NetCap::NET_CAPABILITY_SUPL);
13472d43be4eSopenharmony_ci    netAllCapabilities.bearerTypes_.insert(NetBearType::BEARER_CELLULAR);
13482d43be4eSopenharmony_ci    int32_t simId = CoreServiceClient::GetInstance().GetSimId(DEFAULT_SIM_SLOT_ID);
13492d43be4eSopenharmony_ci    netSpecifier.ident_ = "simId" + std::to_string(simId);
13502d43be4eSopenharmony_ci    netSpecifier.netCapabilities_ = netAllCapabilities;
13512d43be4eSopenharmony_ci    sptr<NetSpecifier> specifier = new (std::nothrow) NetSpecifier(netSpecifier);
13522d43be4eSopenharmony_ci    if (specifier == nullptr) {
13532d43be4eSopenharmony_ci        std::cout << "specifier is null" << std::endl;
13542d43be4eSopenharmony_ci        return;
13552d43be4eSopenharmony_ci    }
13562d43be4eSopenharmony_ci    int32_t result = NetConnClient::GetInstance().RegisterNetConnCallback(specifier, callback, NET_REGISTER_TIMEOUT_MS);
13572d43be4eSopenharmony_ci    std::cout << "RegisterNetConnCallback result [" << result << "]" << std::endl;
13582d43be4eSopenharmony_ci    auto suplCallback = static_cast<TestCallback *>(callback.GetRefPtr());
13592d43be4eSopenharmony_ci    if (suplCallback == nullptr) {
13602d43be4eSopenharmony_ci        std::cout << "suplCallback is null" << std::endl;
13612d43be4eSopenharmony_ci        return;
13622d43be4eSopenharmony_ci    }
13632d43be4eSopenharmony_ci    int32_t count = 0;
13642d43be4eSopenharmony_ci    while (count < MAX_TIMES) {
13652d43be4eSopenharmony_ci        sleep(SLEEP_TIME);
13662d43be4eSopenharmony_ci        if (suplCallback->isCallback_ == true) {
13672d43be4eSopenharmony_ci            break;
13682d43be4eSopenharmony_ci        }
13692d43be4eSopenharmony_ci        count++;
13702d43be4eSopenharmony_ci    }
13712d43be4eSopenharmony_ci    ASSERT_TRUE(suplCallback->isCallback_);
13722d43be4eSopenharmony_ci    result = NetConnClient::GetInstance().UnregisterNetConnCallback(callback);
13732d43be4eSopenharmony_ci    std::cout << "UnregisterNetConnCallback result [" << result << "]" << std::endl;
13742d43be4eSopenharmony_ci}
13752d43be4eSopenharmony_ci
13762d43be4eSopenharmony_ci/**
13772d43be4eSopenharmony_ci * @tc.number   SUPL_Apn_Test_02
13782d43be4eSopenharmony_ci * @tc.name     Test the SUPL apn function
13792d43be4eSopenharmony_ci * @tc.desc     Function test
13802d43be4eSopenharmony_ci */
13812d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, SUPL_Apn_Test_02, TestSize.Level3)
13822d43be4eSopenharmony_ci{
13832d43be4eSopenharmony_ci    if (!HasSimCard(SIM_SLOT_ID_1)) {
13842d43be4eSopenharmony_ci        return;
13852d43be4eSopenharmony_ci    }
13862d43be4eSopenharmony_ci    DataAccessToken token;
13872d43be4eSopenharmony_ci    sptr<INetConnCallback> callback = new (std::nothrow) TestCallback();
13882d43be4eSopenharmony_ci    if (callback == nullptr) {
13892d43be4eSopenharmony_ci        std::cout << "callback is null" << std::endl;
13902d43be4eSopenharmony_ci        return;
13912d43be4eSopenharmony_ci    }
13922d43be4eSopenharmony_ci    NetSpecifier netSpecifier;
13932d43be4eSopenharmony_ci    NetAllCapabilities netAllCapabilities;
13942d43be4eSopenharmony_ci    netAllCapabilities.netCaps_.insert(NetCap::NET_CAPABILITY_SUPL);
13952d43be4eSopenharmony_ci    netAllCapabilities.bearerTypes_.insert(NetBearType::BEARER_CELLULAR);
13962d43be4eSopenharmony_ci    int32_t simId = CoreServiceClient::GetInstance().GetSimId(SIM_SLOT_ID_1);
13972d43be4eSopenharmony_ci    netSpecifier.ident_ = "simId" + std::to_string(simId);
13982d43be4eSopenharmony_ci    netSpecifier.netCapabilities_ = netAllCapabilities;
13992d43be4eSopenharmony_ci    sptr<NetSpecifier> specifier = new (std::nothrow) NetSpecifier(netSpecifier);
14002d43be4eSopenharmony_ci    if (specifier == nullptr) {
14012d43be4eSopenharmony_ci        std::cout << "specifier is null" << std::endl;
14022d43be4eSopenharmony_ci        return;
14032d43be4eSopenharmony_ci    }
14042d43be4eSopenharmony_ci    int32_t result = NetConnClient::GetInstance().RegisterNetConnCallback(specifier, callback, NET_REGISTER_TIMEOUT_MS);
14052d43be4eSopenharmony_ci    std::cout << "RegisterNetConnCallback result [" << result << "]" << std::endl;
14062d43be4eSopenharmony_ci    auto suplCallback = static_cast<TestCallback *>(callback.GetRefPtr());
14072d43be4eSopenharmony_ci    if (suplCallback == nullptr) {
14082d43be4eSopenharmony_ci        std::cout << "suplCallback is null" << std::endl;
14092d43be4eSopenharmony_ci        return;
14102d43be4eSopenharmony_ci    }
14112d43be4eSopenharmony_ci    int32_t count = 0;
14122d43be4eSopenharmony_ci    while (count < MAX_TIMES) {
14132d43be4eSopenharmony_ci        sleep(SLEEP_TIME);
14142d43be4eSopenharmony_ci        if (suplCallback->isCallback_ == true) {
14152d43be4eSopenharmony_ci            break;
14162d43be4eSopenharmony_ci        }
14172d43be4eSopenharmony_ci        count++;
14182d43be4eSopenharmony_ci    }
14192d43be4eSopenharmony_ci    ASSERT_TRUE(suplCallback->isCallback_);
14202d43be4eSopenharmony_ci    result = NetConnClient::GetInstance().UnregisterNetConnCallback(callback);
14212d43be4eSopenharmony_ci    std::cout << "UnregisterNetConnCallback result [" << result << "]" << std::endl;
14222d43be4eSopenharmony_ci}
14232d43be4eSopenharmony_ci
14242d43be4eSopenharmony_ci/**
14252d43be4eSopenharmony_ci * @tc.number   DUN_Apn_Test_01
14262d43be4eSopenharmony_ci * @tc.name     Test the DUN apn function
14272d43be4eSopenharmony_ci * @tc.desc     Function test
14282d43be4eSopenharmony_ci */
14292d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, DUN_Apn_Test_01, TestSize.Level3)
14302d43be4eSopenharmony_ci{
14312d43be4eSopenharmony_ci    if (!HasSimCard(DEFAULT_SIM_SLOT_ID)) {
14322d43be4eSopenharmony_ci        return;
14332d43be4eSopenharmony_ci    }
14342d43be4eSopenharmony_ci    DataAccessToken token;
14352d43be4eSopenharmony_ci    sptr<INetConnCallback> callback = new (std::nothrow) TestCallback();
14362d43be4eSopenharmony_ci    if (callback == nullptr) {
14372d43be4eSopenharmony_ci        std::cout << "callback is null" << std::endl;
14382d43be4eSopenharmony_ci        return;
14392d43be4eSopenharmony_ci    }
14402d43be4eSopenharmony_ci    NetSpecifier netSpecifier;
14412d43be4eSopenharmony_ci    NetAllCapabilities netAllCapabilities;
14422d43be4eSopenharmony_ci    netAllCapabilities.netCaps_.insert(NetCap::NET_CAPABILITY_DUN);
14432d43be4eSopenharmony_ci    netAllCapabilities.bearerTypes_.insert(NetBearType::BEARER_CELLULAR);
14442d43be4eSopenharmony_ci    int32_t simId = CoreServiceClient::GetInstance().GetSimId(DEFAULT_SIM_SLOT_ID);
14452d43be4eSopenharmony_ci    netSpecifier.ident_ = "simId" + std::to_string(simId);
14462d43be4eSopenharmony_ci    netSpecifier.netCapabilities_ = netAllCapabilities;
14472d43be4eSopenharmony_ci    sptr<NetSpecifier> specifier = new (std::nothrow) NetSpecifier(netSpecifier);
14482d43be4eSopenharmony_ci    if (specifier == nullptr) {
14492d43be4eSopenharmony_ci        std::cout << "specifier is null" << std::endl;
14502d43be4eSopenharmony_ci        return;
14512d43be4eSopenharmony_ci    }
14522d43be4eSopenharmony_ci    int32_t result = NetConnClient::GetInstance().RegisterNetConnCallback(specifier, callback, NET_REGISTER_TIMEOUT_MS);
14532d43be4eSopenharmony_ci    std::cout << "RegisterNetConnCallback result [" << result << "]" << std::endl;
14542d43be4eSopenharmony_ci    auto dunCallback = static_cast<TestCallback *>(callback.GetRefPtr());
14552d43be4eSopenharmony_ci    if (dunCallback == nullptr) {
14562d43be4eSopenharmony_ci        std::cout << "dunCallback is null" << std::endl;
14572d43be4eSopenharmony_ci        return;
14582d43be4eSopenharmony_ci    }
14592d43be4eSopenharmony_ci    int32_t count = 0;
14602d43be4eSopenharmony_ci    while (count < MAX_TIMES) {
14612d43be4eSopenharmony_ci        sleep(SLEEP_TIME);
14622d43be4eSopenharmony_ci        if (dunCallback->isCallback_ == true) {
14632d43be4eSopenharmony_ci            break;
14642d43be4eSopenharmony_ci        }
14652d43be4eSopenharmony_ci        count++;
14662d43be4eSopenharmony_ci    }
14672d43be4eSopenharmony_ci    ASSERT_TRUE(dunCallback->isCallback_);
14682d43be4eSopenharmony_ci    result = NetConnClient::GetInstance().UnregisterNetConnCallback(callback);
14692d43be4eSopenharmony_ci    std::cout << "UnregisterNetConnCallback result [" << result << "]" << std::endl;
14702d43be4eSopenharmony_ci}
14712d43be4eSopenharmony_ci
14722d43be4eSopenharmony_ci/**
14732d43be4eSopenharmony_ci * @tc.number   DUN_Apn_Test_02
14742d43be4eSopenharmony_ci * @tc.name     Test the DUN apn function
14752d43be4eSopenharmony_ci * @tc.desc     Function test
14762d43be4eSopenharmony_ci */
14772d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, DUN_Apn_Test_02, TestSize.Level3)
14782d43be4eSopenharmony_ci{
14792d43be4eSopenharmony_ci    if (!HasSimCard(SIM_SLOT_ID_1)) {
14802d43be4eSopenharmony_ci        return;
14812d43be4eSopenharmony_ci    }
14822d43be4eSopenharmony_ci    DataAccessToken token;
14832d43be4eSopenharmony_ci    sptr<INetConnCallback> callback = new (std::nothrow) TestCallback();
14842d43be4eSopenharmony_ci    if (callback == nullptr) {
14852d43be4eSopenharmony_ci        std::cout << "callback is null" << std::endl;
14862d43be4eSopenharmony_ci        return;
14872d43be4eSopenharmony_ci    }
14882d43be4eSopenharmony_ci    NetSpecifier netSpecifier;
14892d43be4eSopenharmony_ci    NetAllCapabilities netAllCapabilities;
14902d43be4eSopenharmony_ci    netAllCapabilities.netCaps_.insert(NetCap::NET_CAPABILITY_DUN);
14912d43be4eSopenharmony_ci    netAllCapabilities.bearerTypes_.insert(NetBearType::BEARER_CELLULAR);
14922d43be4eSopenharmony_ci    int32_t simId = CoreServiceClient::GetInstance().GetSimId(SIM_SLOT_ID_1);
14932d43be4eSopenharmony_ci    netSpecifier.ident_ = "simId" + std::to_string(simId);
14942d43be4eSopenharmony_ci    netSpecifier.netCapabilities_ = netAllCapabilities;
14952d43be4eSopenharmony_ci    sptr<NetSpecifier> specifier = new (std::nothrow) NetSpecifier(netSpecifier);
14962d43be4eSopenharmony_ci    if (specifier == nullptr) {
14972d43be4eSopenharmony_ci        std::cout << "specifier is null" << std::endl;
14982d43be4eSopenharmony_ci        return;
14992d43be4eSopenharmony_ci    }
15002d43be4eSopenharmony_ci    int32_t result = NetConnClient::GetInstance().RegisterNetConnCallback(specifier, callback, NET_REGISTER_TIMEOUT_MS);
15012d43be4eSopenharmony_ci    std::cout << "RegisterNetConnCallback result [" << result << "]" << std::endl;
15022d43be4eSopenharmony_ci    auto dunCallback = static_cast<TestCallback *>(callback.GetRefPtr());
15032d43be4eSopenharmony_ci    if (dunCallback == nullptr) {
15042d43be4eSopenharmony_ci        std::cout << "dunCallback is null" << std::endl;
15052d43be4eSopenharmony_ci        return;
15062d43be4eSopenharmony_ci    }
15072d43be4eSopenharmony_ci    int32_t count = 0;
15082d43be4eSopenharmony_ci    while (count < MAX_TIMES) {
15092d43be4eSopenharmony_ci        sleep(SLEEP_TIME);
15102d43be4eSopenharmony_ci        if (dunCallback->isCallback_ == true) {
15112d43be4eSopenharmony_ci            break;
15122d43be4eSopenharmony_ci        }
15132d43be4eSopenharmony_ci        count++;
15142d43be4eSopenharmony_ci    }
15152d43be4eSopenharmony_ci    ASSERT_TRUE(dunCallback->isCallback_);
15162d43be4eSopenharmony_ci    result = NetConnClient::GetInstance().UnregisterNetConnCallback(callback);
15172d43be4eSopenharmony_ci    std::cout << "UnregisterNetConnCallback result [" << result << "]" << std::endl;
15182d43be4eSopenharmony_ci}
15192d43be4eSopenharmony_ci
15202d43be4eSopenharmony_ci/**
15212d43be4eSopenharmony_ci * @tc.number   IA_Apn_Test_01
15222d43be4eSopenharmony_ci * @tc.name     Test the IA apn function
15232d43be4eSopenharmony_ci * @tc.desc     Function test
15242d43be4eSopenharmony_ci */
15252d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, IA_Apn_Test_01, TestSize.Level3)
15262d43be4eSopenharmony_ci{
15272d43be4eSopenharmony_ci    if (!HasSimCard(DEFAULT_SIM_SLOT_ID)) {
15282d43be4eSopenharmony_ci        return;
15292d43be4eSopenharmony_ci    }
15302d43be4eSopenharmony_ci    DataAccessToken token;
15312d43be4eSopenharmony_ci    sptr<INetConnCallback> callback = new (std::nothrow) TestCallback();
15322d43be4eSopenharmony_ci    if (callback == nullptr) {
15332d43be4eSopenharmony_ci        std::cout << "callback is null" << std::endl;
15342d43be4eSopenharmony_ci        return;
15352d43be4eSopenharmony_ci    }
15362d43be4eSopenharmony_ci    NetSpecifier netSpecifier;
15372d43be4eSopenharmony_ci    NetAllCapabilities netAllCapabilities;
15382d43be4eSopenharmony_ci    netAllCapabilities.netCaps_.insert(NetCap::NET_CAPABILITY_IA);
15392d43be4eSopenharmony_ci    netAllCapabilities.bearerTypes_.insert(NetBearType::BEARER_CELLULAR);
15402d43be4eSopenharmony_ci    int32_t simId = CoreServiceClient::GetInstance().GetSimId(DEFAULT_SIM_SLOT_ID);
15412d43be4eSopenharmony_ci    netSpecifier.ident_ = "simId" + std::to_string(simId);
15422d43be4eSopenharmony_ci    netSpecifier.netCapabilities_ = netAllCapabilities;
15432d43be4eSopenharmony_ci    sptr<NetSpecifier> specifier = new (std::nothrow) NetSpecifier(netSpecifier);
15442d43be4eSopenharmony_ci    if (specifier == nullptr) {
15452d43be4eSopenharmony_ci        std::cout << "specifier is null" << std::endl;
15462d43be4eSopenharmony_ci        return;
15472d43be4eSopenharmony_ci    }
15482d43be4eSopenharmony_ci    int32_t result = NetConnClient::GetInstance().RegisterNetConnCallback(specifier, callback, NET_REGISTER_TIMEOUT_MS);
15492d43be4eSopenharmony_ci    std::cout << "RegisterNetConnCallback result [" << result << "]" << std::endl;
15502d43be4eSopenharmony_ci    auto iaCallback = static_cast<TestCallback *>(callback.GetRefPtr());
15512d43be4eSopenharmony_ci    if (iaCallback == nullptr) {
15522d43be4eSopenharmony_ci        std::cout << "iaCallback is null" << std::endl;
15532d43be4eSopenharmony_ci        return;
15542d43be4eSopenharmony_ci    }
15552d43be4eSopenharmony_ci    int32_t count = 0;
15562d43be4eSopenharmony_ci    while (count < MAX_TIMES) {
15572d43be4eSopenharmony_ci        sleep(SLEEP_TIME);
15582d43be4eSopenharmony_ci        if (iaCallback->isCallback_ == true) {
15592d43be4eSopenharmony_ci            break;
15602d43be4eSopenharmony_ci        }
15612d43be4eSopenharmony_ci        count++;
15622d43be4eSopenharmony_ci    }
15632d43be4eSopenharmony_ci    ASSERT_TRUE(iaCallback->isCallback_);
15642d43be4eSopenharmony_ci    result = NetConnClient::GetInstance().UnregisterNetConnCallback(callback);
15652d43be4eSopenharmony_ci    std::cout << "UnregisterNetConnCallback result [" << result << "]" << std::endl;
15662d43be4eSopenharmony_ci}
15672d43be4eSopenharmony_ci
15682d43be4eSopenharmony_ci/**
15692d43be4eSopenharmony_ci * @tc.number   IA_Apn_Test_02
15702d43be4eSopenharmony_ci * @tc.name     Test the IA apn function
15712d43be4eSopenharmony_ci * @tc.desc     Function test
15722d43be4eSopenharmony_ci */
15732d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, IA_Apn_Test_02, TestSize.Level3)
15742d43be4eSopenharmony_ci{
15752d43be4eSopenharmony_ci    if (!HasSimCard(SIM_SLOT_ID_1)) {
15762d43be4eSopenharmony_ci        return;
15772d43be4eSopenharmony_ci    }
15782d43be4eSopenharmony_ci    DataAccessToken token;
15792d43be4eSopenharmony_ci    sptr<INetConnCallback> callback = new (std::nothrow) TestCallback();
15802d43be4eSopenharmony_ci    if (callback == nullptr) {
15812d43be4eSopenharmony_ci        std::cout << "callback is null" << std::endl;
15822d43be4eSopenharmony_ci        return;
15832d43be4eSopenharmony_ci    }
15842d43be4eSopenharmony_ci    NetSpecifier netSpecifier;
15852d43be4eSopenharmony_ci    NetAllCapabilities netAllCapabilities;
15862d43be4eSopenharmony_ci    netAllCapabilities.netCaps_.insert(NetCap::NET_CAPABILITY_IA);
15872d43be4eSopenharmony_ci    netAllCapabilities.bearerTypes_.insert(NetBearType::BEARER_CELLULAR);
15882d43be4eSopenharmony_ci    int32_t simId = CoreServiceClient::GetInstance().GetSimId(SIM_SLOT_ID_1);
15892d43be4eSopenharmony_ci    netSpecifier.ident_ = "simId" + std::to_string(simId);
15902d43be4eSopenharmony_ci    netSpecifier.netCapabilities_ = netAllCapabilities;
15912d43be4eSopenharmony_ci    sptr<NetSpecifier> specifier = new (std::nothrow) NetSpecifier(netSpecifier);
15922d43be4eSopenharmony_ci    if (specifier == nullptr) {
15932d43be4eSopenharmony_ci        std::cout << "specifier is null" << std::endl;
15942d43be4eSopenharmony_ci        return;
15952d43be4eSopenharmony_ci    }
15962d43be4eSopenharmony_ci    int32_t result = NetConnClient::GetInstance().RegisterNetConnCallback(specifier, callback, NET_REGISTER_TIMEOUT_MS);
15972d43be4eSopenharmony_ci    std::cout << "RegisterNetConnCallback result [" << result << "]" << std::endl;
15982d43be4eSopenharmony_ci    auto iaCallback = static_cast<TestCallback *>(callback.GetRefPtr());
15992d43be4eSopenharmony_ci    if (iaCallback == nullptr) {
16002d43be4eSopenharmony_ci        std::cout << "iaCallback is null" << std::endl;
16012d43be4eSopenharmony_ci        return;
16022d43be4eSopenharmony_ci    }
16032d43be4eSopenharmony_ci    int32_t count = 0;
16042d43be4eSopenharmony_ci    while (count < MAX_TIMES) {
16052d43be4eSopenharmony_ci        sleep(SLEEP_TIME);
16062d43be4eSopenharmony_ci        if (iaCallback->isCallback_ == true) {
16072d43be4eSopenharmony_ci            break;
16082d43be4eSopenharmony_ci        }
16092d43be4eSopenharmony_ci        count++;
16102d43be4eSopenharmony_ci    }
16112d43be4eSopenharmony_ci    ASSERT_TRUE(iaCallback->isCallback_);
16122d43be4eSopenharmony_ci    result = NetConnClient::GetInstance().UnregisterNetConnCallback(callback);
16132d43be4eSopenharmony_ci    std::cout << "UnregisterNetConnCallback result [" << result << "]" << std::endl;
16142d43be4eSopenharmony_ci}
16152d43be4eSopenharmony_ci
16162d43be4eSopenharmony_ci/**
16172d43be4eSopenharmony_ci * @tc.number   XCAP_Apn_Test_01
16182d43be4eSopenharmony_ci * @tc.name     Test the XCAP apn function
16192d43be4eSopenharmony_ci * @tc.desc     Function test
16202d43be4eSopenharmony_ci */
16212d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, XCAP_Apn_Test_01, TestSize.Level3)
16222d43be4eSopenharmony_ci{
16232d43be4eSopenharmony_ci    if (!HasSimCard(DEFAULT_SIM_SLOT_ID)) {
16242d43be4eSopenharmony_ci        return;
16252d43be4eSopenharmony_ci    }
16262d43be4eSopenharmony_ci    DataAccessToken token;
16272d43be4eSopenharmony_ci    sptr<INetConnCallback> callback = new (std::nothrow) TestCallback();
16282d43be4eSopenharmony_ci    if (callback == nullptr) {
16292d43be4eSopenharmony_ci        std::cout << "callback is null" << std::endl;
16302d43be4eSopenharmony_ci        return;
16312d43be4eSopenharmony_ci    }
16322d43be4eSopenharmony_ci    NetSpecifier netSpecifier;
16332d43be4eSopenharmony_ci    NetAllCapabilities netAllCapabilities;
16342d43be4eSopenharmony_ci    netAllCapabilities.netCaps_.insert(NetCap::NET_CAPABILITY_XCAP);
16352d43be4eSopenharmony_ci    netAllCapabilities.bearerTypes_.insert(NetBearType::BEARER_CELLULAR);
16362d43be4eSopenharmony_ci    int32_t simId = CoreServiceClient::GetInstance().GetSimId(DEFAULT_SIM_SLOT_ID);
16372d43be4eSopenharmony_ci    netSpecifier.ident_ = "simId" + std::to_string(simId);
16382d43be4eSopenharmony_ci    netSpecifier.netCapabilities_ = netAllCapabilities;
16392d43be4eSopenharmony_ci    sptr<NetSpecifier> specifier = new (std::nothrow) NetSpecifier(netSpecifier);
16402d43be4eSopenharmony_ci    if (specifier == nullptr) {
16412d43be4eSopenharmony_ci        std::cout << "specifier is null" << std::endl;
16422d43be4eSopenharmony_ci        return;
16432d43be4eSopenharmony_ci    }
16442d43be4eSopenharmony_ci    int32_t result = NetConnClient::GetInstance().RegisterNetConnCallback(specifier, callback, NET_REGISTER_TIMEOUT_MS);
16452d43be4eSopenharmony_ci    std::cout << "RegisterNetConnCallback result [" << result << "]" << std::endl;
16462d43be4eSopenharmony_ci    auto xcapCallback = static_cast<TestCallback *>(callback.GetRefPtr());
16472d43be4eSopenharmony_ci    if (xcapCallback == nullptr) {
16482d43be4eSopenharmony_ci        std::cout << "xcapCallback is null" << std::endl;
16492d43be4eSopenharmony_ci        return;
16502d43be4eSopenharmony_ci    }
16512d43be4eSopenharmony_ci    int32_t count = 0;
16522d43be4eSopenharmony_ci    while (count < MAX_TIMES) {
16532d43be4eSopenharmony_ci        sleep(SLEEP_TIME);
16542d43be4eSopenharmony_ci        if (xcapCallback->isCallback_ == true) {
16552d43be4eSopenharmony_ci            break;
16562d43be4eSopenharmony_ci        }
16572d43be4eSopenharmony_ci        count++;
16582d43be4eSopenharmony_ci    }
16592d43be4eSopenharmony_ci    ASSERT_TRUE(xcapCallback->isCallback_);
16602d43be4eSopenharmony_ci    result = NetConnClient::GetInstance().UnregisterNetConnCallback(callback);
16612d43be4eSopenharmony_ci    std::cout << "UnregisterNetConnCallback result [" << result << "]" << std::endl;
16622d43be4eSopenharmony_ci}
16632d43be4eSopenharmony_ci
16642d43be4eSopenharmony_ci/**
16652d43be4eSopenharmony_ci * @tc.number   XCAP_Apn_Test_02
16662d43be4eSopenharmony_ci * @tc.name     Test the XCAP apn function
16672d43be4eSopenharmony_ci * @tc.desc     Function test
16682d43be4eSopenharmony_ci */
16692d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, XCAP_Apn_Test_02, TestSize.Level3)
16702d43be4eSopenharmony_ci{
16712d43be4eSopenharmony_ci    if (!HasSimCard(SIM_SLOT_ID_1)) {
16722d43be4eSopenharmony_ci        return;
16732d43be4eSopenharmony_ci    }
16742d43be4eSopenharmony_ci    DataAccessToken token;
16752d43be4eSopenharmony_ci    sptr<INetConnCallback> callback = new (std::nothrow) TestCallback();
16762d43be4eSopenharmony_ci    if (callback == nullptr) {
16772d43be4eSopenharmony_ci        std::cout << "callback is null" << std::endl;
16782d43be4eSopenharmony_ci        return;
16792d43be4eSopenharmony_ci    }
16802d43be4eSopenharmony_ci    NetSpecifier netSpecifier;
16812d43be4eSopenharmony_ci    NetAllCapabilities netAllCapabilities;
16822d43be4eSopenharmony_ci    netAllCapabilities.netCaps_.insert(NetCap::NET_CAPABILITY_XCAP);
16832d43be4eSopenharmony_ci    netAllCapabilities.bearerTypes_.insert(NetBearType::BEARER_CELLULAR);
16842d43be4eSopenharmony_ci    int32_t simId = CoreServiceClient::GetInstance().GetSimId(SIM_SLOT_ID_1);
16852d43be4eSopenharmony_ci    netSpecifier.ident_ = "simId" + std::to_string(simId);
16862d43be4eSopenharmony_ci    netSpecifier.netCapabilities_ = netAllCapabilities;
16872d43be4eSopenharmony_ci    sptr<NetSpecifier> specifier = new (std::nothrow) NetSpecifier(netSpecifier);
16882d43be4eSopenharmony_ci    if (specifier == nullptr) {
16892d43be4eSopenharmony_ci        std::cout << "specifier is null" << std::endl;
16902d43be4eSopenharmony_ci        return;
16912d43be4eSopenharmony_ci    }
16922d43be4eSopenharmony_ci    int32_t result = NetConnClient::GetInstance().RegisterNetConnCallback(specifier, callback, NET_REGISTER_TIMEOUT_MS);
16932d43be4eSopenharmony_ci    std::cout << "RegisterNetConnCallback result [" << result << "]" << std::endl;
16942d43be4eSopenharmony_ci    auto xcapCallback = static_cast<TestCallback *>(callback.GetRefPtr());
16952d43be4eSopenharmony_ci    if (xcapCallback == nullptr) {
16962d43be4eSopenharmony_ci        std::cout << "xcapCallback is null" << std::endl;
16972d43be4eSopenharmony_ci        return;
16982d43be4eSopenharmony_ci    }
16992d43be4eSopenharmony_ci    int32_t count = 0;
17002d43be4eSopenharmony_ci    while (count < MAX_TIMES) {
17012d43be4eSopenharmony_ci        sleep(SLEEP_TIME);
17022d43be4eSopenharmony_ci        if (xcapCallback->isCallback_ == true) {
17032d43be4eSopenharmony_ci            break;
17042d43be4eSopenharmony_ci        }
17052d43be4eSopenharmony_ci        count++;
17062d43be4eSopenharmony_ci    }
17072d43be4eSopenharmony_ci    ASSERT_TRUE(xcapCallback->isCallback_);
17082d43be4eSopenharmony_ci    result = NetConnClient::GetInstance().UnregisterNetConnCallback(callback);
17092d43be4eSopenharmony_ci    std::cout << "UnregisterNetConnCallback result [" << result << "]" << std::endl;
17102d43be4eSopenharmony_ci}
17112d43be4eSopenharmony_ci
17122d43be4eSopenharmony_ci/**
17132d43be4eSopenharmony_ci * @tc.number   RequestNetwork_001
17142d43be4eSopenharmony_ci * @tc.name     Test the function
17152d43be4eSopenharmony_ci * @tc.desc     Function test
17162d43be4eSopenharmony_ci */
17172d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, RequestNetwork_001, TestSize.Level3)
17182d43be4eSopenharmony_ci{
17192d43be4eSopenharmony_ci    std::string ident = "testIdent";
17202d43be4eSopenharmony_ci    std::set<NetCap> netCaps;
17212d43be4eSopenharmony_ci    NetManagerStandard::NetRequest netrequest;
17222d43be4eSopenharmony_ci    int32_t result = netAgent.callBack_->RequestNetwork(ident, netCaps, netrequest);
17232d43be4eSopenharmony_ci    ASSERT_EQ(result, CELLULAR_DATA_INVALID_PARAM);
17242d43be4eSopenharmony_ci}
17252d43be4eSopenharmony_ci
17262d43be4eSopenharmony_ci/**
17272d43be4eSopenharmony_ci * @tc.number   RequestNetwork_002
17282d43be4eSopenharmony_ci * @tc.name     Test the function
17292d43be4eSopenharmony_ci * @tc.desc     Function test
17302d43be4eSopenharmony_ci */
17312d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, RequestNetwork_002, TestSize.Level3)
17322d43be4eSopenharmony_ci{
17332d43be4eSopenharmony_ci    std::string ident = "testIdent";
17342d43be4eSopenharmony_ci    std::set<NetCap> netCaps = { NetManagerStandard::NetCap::NET_CAPABILITY_INTERNET };
17352d43be4eSopenharmony_ci    NetManagerStandard::NetRequest netrequest;
17362d43be4eSopenharmony_ci    int32_t result = netAgent.callBack_->RequestNetwork(ident, netCaps, netrequest);
17372d43be4eSopenharmony_ci    ASSERT_EQ(result, CELLULAR_DATA_INVALID_PARAM);
17382d43be4eSopenharmony_ci}
17392d43be4eSopenharmony_ci
17402d43be4eSopenharmony_ci/**
17412d43be4eSopenharmony_ci * @tc.number   ReleaseNetwork_001
17422d43be4eSopenharmony_ci * @tc.name     Test the function
17432d43be4eSopenharmony_ci * @tc.desc     Function test
17442d43be4eSopenharmony_ci */
17452d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, ReleaseNetwork_001, TestSize.Level3)
17462d43be4eSopenharmony_ci{
17472d43be4eSopenharmony_ci    std::string ident = "testIdent";
17482d43be4eSopenharmony_ci    std::set<NetCap> netCaps;
17492d43be4eSopenharmony_ci    int32_t result = netAgent.callBack_->ReleaseNetwork(ident, netCaps);
17502d43be4eSopenharmony_ci    ASSERT_EQ(result, CELLULAR_DATA_INVALID_PARAM);
17512d43be4eSopenharmony_ci}
17522d43be4eSopenharmony_ci
17532d43be4eSopenharmony_ci/**
17542d43be4eSopenharmony_ci * @tc.number   ReleaseNetwork_002
17552d43be4eSopenharmony_ci * @tc.name     Test the function
17562d43be4eSopenharmony_ci * @tc.desc     Function test
17572d43be4eSopenharmony_ci */
17582d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, ReleaseNetwork_002, TestSize.Level3)
17592d43be4eSopenharmony_ci{
17602d43be4eSopenharmony_ci    std::string ident = "testIdent";
17612d43be4eSopenharmony_ci    std::set<NetCap> netCaps = { NetManagerStandard::NetCap::NET_CAPABILITY_INTERNET };
17622d43be4eSopenharmony_ci    int32_t result = netAgent.callBack_->ReleaseNetwork(ident, netCaps);
17632d43be4eSopenharmony_ci    ASSERT_EQ(result, CELLULAR_DATA_INVALID_PARAM);
17642d43be4eSopenharmony_ci}
17652d43be4eSopenharmony_ci
17662d43be4eSopenharmony_ci/**
17672d43be4eSopenharmony_ci * @tc.number   NetStrategySwitch_001
17682d43be4eSopenharmony_ci * @tc.name     Test the function
17692d43be4eSopenharmony_ci * @tc.desc     Function test
17702d43be4eSopenharmony_ci */
17712d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, NetStrategySwitch_001, TestSize.Level3)
17722d43be4eSopenharmony_ci{
17732d43be4eSopenharmony_ci    int32_t result = netAgent.tacticsCallBack_->NetStrategySwitch("", true);
17742d43be4eSopenharmony_ci    ASSERT_EQ(result, CELLULAR_DATA_INVALID_PARAM);
17752d43be4eSopenharmony_ci}
17762d43be4eSopenharmony_ci
17772d43be4eSopenharmony_ci/**
17782d43be4eSopenharmony_ci * @tc.number   NetStrategySwitch_002
17792d43be4eSopenharmony_ci * @tc.name     Test the function
17802d43be4eSopenharmony_ci * @tc.desc     Function test
17812d43be4eSopenharmony_ci */
17822d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, NetStrategySwitch_002, TestSize.Level3)
17832d43be4eSopenharmony_ci{
17842d43be4eSopenharmony_ci    int32_t result = netAgent.tacticsCallBack_->NetStrategySwitch("abc", true);
17852d43be4eSopenharmony_ci    ASSERT_EQ(result, CELLULAR_DATA_INVALID_PARAM);
17862d43be4eSopenharmony_ci}
17872d43be4eSopenharmony_ci
17882d43be4eSopenharmony_ci/**
17892d43be4eSopenharmony_ci * @tc.number   NetStrategySwitch_003
17902d43be4eSopenharmony_ci * @tc.name     Test the function
17912d43be4eSopenharmony_ci * @tc.desc     Function test
17922d43be4eSopenharmony_ci */
17932d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, NetStrategySwitch_003, TestSize.Level3)
17942d43be4eSopenharmony_ci{
17952d43be4eSopenharmony_ci    int32_t result = netAgent.tacticsCallBack_->NetStrategySwitch("123", true);
17962d43be4eSopenharmony_ci    ASSERT_EQ(result, CELLULAR_DATA_INVALID_PARAM);
17972d43be4eSopenharmony_ci}
17982d43be4eSopenharmony_ci
17992d43be4eSopenharmony_ci/**
18002d43be4eSopenharmony_ci * @tc.number   RdbUpdate_001
18012d43be4eSopenharmony_ci * @tc.name     Test the function
18022d43be4eSopenharmony_ci * @tc.desc     Function test
18032d43be4eSopenharmony_ci */
18042d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, RdbUpdate_001, TestSize.Level3)
18052d43be4eSopenharmony_ci{
18062d43be4eSopenharmony_ci    DataShare::DataShareValuesBucket values;
18072d43be4eSopenharmony_ci    DataShare::DataSharePredicates predicates;
18082d43be4eSopenharmony_ci    CellularDataRdbHelper cellularDataRdbHelper;
18092d43be4eSopenharmony_ci    int result = cellularDataRdbHelper.Update(values, predicates);
18102d43be4eSopenharmony_ci    ASSERT_EQ(result, NULL_POINTER_EXCEPTION);
18112d43be4eSopenharmony_ci}
18122d43be4eSopenharmony_ci
18132d43be4eSopenharmony_ci/**
18142d43be4eSopenharmony_ci * @tc.number   RdbInsert_001
18152d43be4eSopenharmony_ci * @tc.name     Test the function
18162d43be4eSopenharmony_ci * @tc.desc     Function test
18172d43be4eSopenharmony_ci */
18182d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, RdbInsert_001, TestSize.Level3)
18192d43be4eSopenharmony_ci{
18202d43be4eSopenharmony_ci    DataShare::DataShareValuesBucket values;
18212d43be4eSopenharmony_ci    CellularDataRdbHelper cellularDataRdbHelper;
18222d43be4eSopenharmony_ci    int result = cellularDataRdbHelper.Insert(values);
18232d43be4eSopenharmony_ci    ASSERT_EQ(result, NULL_POINTER_EXCEPTION);
18242d43be4eSopenharmony_ci}
18252d43be4eSopenharmony_ci
18262d43be4eSopenharmony_ci/**
18272d43be4eSopenharmony_ci * @tc.number   QueryApns_001
18282d43be4eSopenharmony_ci * @tc.name     Test the function
18292d43be4eSopenharmony_ci * @tc.desc     Function test
18302d43be4eSopenharmony_ci */
18312d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, QueryApns_001, TestSize.Level3)
18322d43be4eSopenharmony_ci{
18332d43be4eSopenharmony_ci    std::string mcc = "123";
18342d43be4eSopenharmony_ci    std::string mnc = "456";
18352d43be4eSopenharmony_ci    std::vector<PdpProfile> apnVec;
18362d43be4eSopenharmony_ci    int32_t slotId = 0;
18372d43be4eSopenharmony_ci    CellularDataRdbHelper cellularDataRdbHelper;
18382d43be4eSopenharmony_ci    bool result = cellularDataRdbHelper.QueryApns(mcc, mnc, apnVec, slotId);
18392d43be4eSopenharmony_ci    ASSERT_FALSE(result);
18402d43be4eSopenharmony_ci}
18412d43be4eSopenharmony_ci
18422d43be4eSopenharmony_ci
18432d43be4eSopenharmony_ci/**
18442d43be4eSopenharmony_ci * @tc.number   QueryMvnoApnsByType_001
18452d43be4eSopenharmony_ci * @tc.name     Test the function
18462d43be4eSopenharmony_ci * @tc.desc     Function test
18472d43be4eSopenharmony_ci */
18482d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, QueryMvnoApnsByType_001, TestSize.Level3)
18492d43be4eSopenharmony_ci{
18502d43be4eSopenharmony_ci    std::string mcc = "123";
18512d43be4eSopenharmony_ci    std::string mnc = "456";
18522d43be4eSopenharmony_ci    std::string mvnoType = "789";
18532d43be4eSopenharmony_ci    std::string mvnoDataFromSim = "";
18542d43be4eSopenharmony_ci    std::vector<PdpProfile> mvnoApnVec;
18552d43be4eSopenharmony_ci    int32_t slotId = 0;
18562d43be4eSopenharmony_ci    CellularDataRdbHelper cellularDataRdbHelper;
18572d43be4eSopenharmony_ci    bool result = cellularDataRdbHelper.QueryMvnoApnsByType(mcc, mnc, mvnoType, mvnoDataFromSim, mvnoApnVec, slotId);
18582d43be4eSopenharmony_ci    ASSERT_TRUE(result);
18592d43be4eSopenharmony_ci}
18602d43be4eSopenharmony_ci
18612d43be4eSopenharmony_ci/**
18622d43be4eSopenharmony_ci * @tc.number   QueryMvnoApnsByType_002
18632d43be4eSopenharmony_ci * @tc.name     Test the function
18642d43be4eSopenharmony_ci * @tc.desc     Function test
18652d43be4eSopenharmony_ci */
18662d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, QueryMvnoApnsByType_002, TestSize.Level3)
18672d43be4eSopenharmony_ci{
18682d43be4eSopenharmony_ci    std::string mcc = "123";
18692d43be4eSopenharmony_ci    std::string mnc = "456";
18702d43be4eSopenharmony_ci    std::string mvnoType = "789";
18712d43be4eSopenharmony_ci    std::string mvnoDataFromSim = "012";
18722d43be4eSopenharmony_ci    std::vector<PdpProfile> mvnoApnVec;
18732d43be4eSopenharmony_ci    int32_t slotId = 0;
18742d43be4eSopenharmony_ci    CellularDataRdbHelper cellularDataRdbHelper;
18752d43be4eSopenharmony_ci    bool result = cellularDataRdbHelper.QueryMvnoApnsByType(mcc, mnc, mvnoType, mvnoDataFromSim, mvnoApnVec, slotId);
18762d43be4eSopenharmony_ci    ASSERT_FALSE(result);
18772d43be4eSopenharmony_ci}
18782d43be4eSopenharmony_ci
18792d43be4eSopenharmony_ci/**
18802d43be4eSopenharmony_ci * @tc.number   ReadApnResult_001
18812d43be4eSopenharmony_ci * @tc.name     Test the function
18822d43be4eSopenharmony_ci * @tc.desc     Function test
18832d43be4eSopenharmony_ci */
18842d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, ReadApnResult_001, TestSize.Level3)
18852d43be4eSopenharmony_ci{
18862d43be4eSopenharmony_ci    std::shared_ptr<DataShare::DataShareResultSet> result = nullptr;
18872d43be4eSopenharmony_ci    std::vector<PdpProfile> apnVec;
18882d43be4eSopenharmony_ci    CellularDataRdbHelper cellularDataRdbHelper;
18892d43be4eSopenharmony_ci    cellularDataRdbHelper.ReadApnResult(nullptr, apnVec);
18902d43be4eSopenharmony_ci    ASSERT_TRUE(apnVec.empty());
18912d43be4eSopenharmony_ci}
18922d43be4eSopenharmony_ci
18932d43be4eSopenharmony_ci/**
18942d43be4eSopenharmony_ci * @tc.number   ReadApnResult_002
18952d43be4eSopenharmony_ci * @tc.name     Test the function
18962d43be4eSopenharmony_ci * @tc.desc     Function test
18972d43be4eSopenharmony_ci */
18982d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, ReadApnResult_002, TestSize.Level3)
18992d43be4eSopenharmony_ci{
19002d43be4eSopenharmony_ci    std::shared_ptr<DataShare::DataShareResultSet> result = std::make_shared<DataShare::DataShareResultSet>();
19012d43be4eSopenharmony_ci    std::vector<PdpProfile> apnVec;
19022d43be4eSopenharmony_ci    CellularDataRdbHelper cellularDataRdbHelper;
19032d43be4eSopenharmony_ci    cellularDataRdbHelper.ReadApnResult(nullptr, apnVec);
19042d43be4eSopenharmony_ci    ASSERT_TRUE(apnVec.empty());
19052d43be4eSopenharmony_ci}
19062d43be4eSopenharmony_ci
19072d43be4eSopenharmony_ci#else  // TEL_TEST_UNSUPPORT
19082d43be4eSopenharmony_ci/**
19092d43be4eSopenharmony_ci * @tc.number   DataMock_Test_01
19102d43be4eSopenharmony_ci * @tc.name     Test for unsupport platform
19112d43be4eSopenharmony_ci * @tc.desc     Function test
19122d43be4eSopenharmony_ci */
19132d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, DataMock_Test_01, TestSize.Level3)
19142d43be4eSopenharmony_ci{
19152d43be4eSopenharmony_ci    EXPECT_TRUE(true);
19162d43be4eSopenharmony_ci}
19172d43be4eSopenharmony_ci#endif // TEL_TEST_UNSUPPORT
19182d43be4eSopenharmony_ci/**
19192d43be4eSopenharmony_ci * @tc.number   CellularDataControllerAddUid_Test_01
19202d43be4eSopenharmony_ci * @tc.name     Test the CellularDataControllerAddUid function
19212d43be4eSopenharmony_ci * @tc.desc     Function test
19222d43be4eSopenharmony_ci */
19232d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, CellularDataControllerAddUid_Test_01, TestSize.Level3)
19242d43be4eSopenharmony_ci{
19252d43be4eSopenharmony_ci    auto controller = std::make_shared<CellularDataController>(DEFAULT_SIM_SLOT_ID);
19262d43be4eSopenharmony_ci    controller->cellularDataHandler_ = nullptr;
19272d43be4eSopenharmony_ci    NetRequest request;
19282d43be4eSopenharmony_ci    request.uid = 0;
19292d43be4eSopenharmony_ci    ASSERT_FALSE(controller->AddUid(request));
19302d43be4eSopenharmony_ci}
19312d43be4eSopenharmony_ci
19322d43be4eSopenharmony_ci/**
19332d43be4eSopenharmony_ci * @tc.number   CellularDataControllerRemoveUid_Test_01
19342d43be4eSopenharmony_ci * @tc.name     Test the CellularDataControllerRemoveUid function
19352d43be4eSopenharmony_ci * @tc.desc     Function test
19362d43be4eSopenharmony_ci */
19372d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, CellularDataControllerRemoveUid_Test_1, TestSize.Level3)
19382d43be4eSopenharmony_ci{
19392d43be4eSopenharmony_ci    auto controller = std::make_shared<CellularDataController>(DEFAULT_SIM_SLOT_ID);
19402d43be4eSopenharmony_ci    controller->cellularDataHandler_ = nullptr;
19412d43be4eSopenharmony_ci    NetRequest request;
19422d43be4eSopenharmony_ci    request.uid = 0;
19432d43be4eSopenharmony_ci    ASSERT_FALSE(controller->RemoveUid(request));
19442d43be4eSopenharmony_ci}
19452d43be4eSopenharmony_ci
19462d43be4eSopenharmony_ci/**
19472d43be4eSopenharmony_ci * @tc.number   ControllerReleaseCellularDataConnection_Test_01
19482d43be4eSopenharmony_ci * @tc.name     Test the Controlle ReleaseCellularDataConnection function
19492d43be4eSopenharmony_ci * @tc.desc     Function test
19502d43be4eSopenharmony_ci */
19512d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, ControllerReleaseCellularDataConnection_Test_1, TestSize.Level3)
19522d43be4eSopenharmony_ci{
19532d43be4eSopenharmony_ci    auto controller = std::make_shared<CellularDataController>(DEFAULT_SIM_SLOT_ID);
19542d43be4eSopenharmony_ci    controller->cellularDataHandler_ = nullptr;
19552d43be4eSopenharmony_ci    ASSERT_FALSE(controller->ReleaseCellularDataConnection());
19562d43be4eSopenharmony_ci}
19572d43be4eSopenharmony_ci/**
19582d43be4eSopenharmony_ci * @tc.number  ControllerReleaseCellularDataConnection_Test_02
19592d43be4eSopenharmony_ci * @tc.name     Test the Controller ReleaseCellularDataConnection function
19602d43be4eSopenharmony_ci * @tc.desc     Function test
19612d43be4eSopenharmony_ci */
19622d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, ControllerReleaseCellularDataConnection_Test_2, TestSize.Level3)
19632d43be4eSopenharmony_ci{
19642d43be4eSopenharmony_ci    auto controller = std::make_shared<CellularDataController>(DEFAULT_SIM_SLOT_ID);
19652d43be4eSopenharmony_ci    controller->Init();
19662d43be4eSopenharmony_ci    ASSERT_TRUE(controller->cellularDataHandler_ != nullptr);
19672d43be4eSopenharmony_ci    NetRequest request;
19682d43be4eSopenharmony_ci    ASSERT_TRUE(controller->ReleaseCellularDataConnection());
19692d43be4eSopenharmony_ci}
19702d43be4eSopenharmony_ci
19712d43be4eSopenharmony_ci/**
19722d43be4eSopenharmony_ci * @tc.number  ControllerUpdateNetworkInfo_Test_01
19732d43be4eSopenharmony_ci * @tc.name     Test the Controller UpdateNetworkInfo function
19742d43be4eSopenharmony_ci * @tc.desc     Function test
19752d43be4eSopenharmony_ci */
19762d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, ControllerUpdateNetworkInfo_Test_01, TestSize.Level3)
19772d43be4eSopenharmony_ci{
19782d43be4eSopenharmony_ci    auto controller = std::make_shared<CellularDataController>(DEFAULT_SIM_SLOT_ID);
19792d43be4eSopenharmony_ci    ASSERT_TRUE(controller->cellularDataHandler_ == nullptr);
19802d43be4eSopenharmony_ci    ASSERT_FALSE(controller->UpdateNetworkInfo());
19812d43be4eSopenharmony_ci}
19822d43be4eSopenharmony_ci
19832d43be4eSopenharmony_ci/**
19842d43be4eSopenharmony_ci * @tc.number  ControllerUpdateNetworkInfo_Test_02
19852d43be4eSopenharmony_ci * @tc.name     Test the Controller UpdateNetworkInfo function
19862d43be4eSopenharmony_ci * @tc.desc     Function test
19872d43be4eSopenharmony_ci */
19882d43be4eSopenharmony_ciHWTEST_F(CellularDataTest, ControllerUpdateNetworkInfo_Test_02, TestSize.Level3)
19892d43be4eSopenharmony_ci{
19902d43be4eSopenharmony_ci    auto controller = std::make_shared<CellularDataController>(DEFAULT_SIM_SLOT_ID);
19912d43be4eSopenharmony_ci    EventFwk::MatchingSkills matchingSkills;
19922d43be4eSopenharmony_ci    matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_CALL_STATE_CHANGED);
19932d43be4eSopenharmony_ci    EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
19942d43be4eSopenharmony_ci    auto cellularDataHandler = std::make_shared<CellularDataHandler>(subscriberInfo, 0);
19952d43be4eSopenharmony_ci    cellularDataHandler->Init();
19962d43be4eSopenharmony_ci    controller->cellularDataHandler_ = cellularDataHandler;
19972d43be4eSopenharmony_ci    ASSERT_TRUE(controller->cellularDataHandler_ != nullptr);
19982d43be4eSopenharmony_ci    ASSERT_TRUE(controller->UpdateNetworkInfo());
19992d43be4eSopenharmony_ci}
20002d43be4eSopenharmony_ci
20012d43be4eSopenharmony_ci} // namespace Telephony
20022d43be4eSopenharmony_ci} // namespace OHOS
2003