12d43be4eSopenharmony_ci/* 22d43be4eSopenharmony_ci * Copyright (C) 2024 Huawei Device Co., Ltd. 32d43be4eSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 42d43be4eSopenharmony_ci * you may not use this file except in compliance with the License. 52d43be4eSopenharmony_ci * You may obtain a copy of the License at 62d43be4eSopenharmony_ci * 72d43be4eSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 82d43be4eSopenharmony_ci * 92d43be4eSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 102d43be4eSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 112d43be4eSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 122d43be4eSopenharmony_ci * See the License for the specific language governing permissions and 132d43be4eSopenharmony_ci * limitations under the License. 142d43be4eSopenharmony_ci */ 152d43be4eSopenharmony_ci 162d43be4eSopenharmony_ci#define private public 172d43be4eSopenharmony_ci#define protected public 182d43be4eSopenharmony_ci 192d43be4eSopenharmony_ci#include <gtest/gtest.h> 202d43be4eSopenharmony_ci 212d43be4eSopenharmony_ci#include "cellular_data_dump_helper.h" 222d43be4eSopenharmony_ci#include "core_service_client.h" 232d43be4eSopenharmony_ci#include "mock/mock_core_service.h" 242d43be4eSopenharmony_ci#include "telephony_types.h" 252d43be4eSopenharmony_ci 262d43be4eSopenharmony_cinamespace OHOS { 272d43be4eSopenharmony_cinamespace Telephony { 282d43be4eSopenharmony_ciusing namespace testing::ext; 292d43be4eSopenharmony_ciusing ::testing::_; 302d43be4eSopenharmony_ciusing ::testing::DoAll; 312d43be4eSopenharmony_ciusing ::testing::Return; 322d43be4eSopenharmony_ciusing ::testing::AtLeast; 332d43be4eSopenharmony_ciusing ::testing::SetArgReferee; 342d43be4eSopenharmony_ci 352d43be4eSopenharmony_ciclass CellularDataDumpHelperTest : public testing::Test { 362d43be4eSopenharmony_cipublic: 372d43be4eSopenharmony_ci CellularDataDumpHelperTest() 382d43be4eSopenharmony_ci { 392d43be4eSopenharmony_ci mockCoreService = new MockCoreService(); 402d43be4eSopenharmony_ci sptr<ICoreService> mockCoreServicePtr(mockCoreService); 412d43be4eSopenharmony_ci DelayedRefSingleton<CoreServiceClient>::GetInstance().proxy_ = mockCoreServicePtr; 422d43be4eSopenharmony_ci } 432d43be4eSopenharmony_ci ~CellularDataDumpHelperTest() = default; 442d43be4eSopenharmony_ci static void TearDownTestCase() 452d43be4eSopenharmony_ci { 462d43be4eSopenharmony_ci if (DelayedRefSingleton<CoreServiceClient>::GetInstance().proxy_ != nullptr) { 472d43be4eSopenharmony_ci DelayedRefSingleton<CoreServiceClient>::GetInstance().proxy_ = nullptr; 482d43be4eSopenharmony_ci std::cout << "CellularDataDumpHelperTest set proxy_ nullptr" << std::endl; 492d43be4eSopenharmony_ci } 502d43be4eSopenharmony_ci } 512d43be4eSopenharmony_ci MockCoreService *mockCoreService; 522d43be4eSopenharmony_ci}; 532d43be4eSopenharmony_ci 542d43be4eSopenharmony_ciHWTEST_F(CellularDataDumpHelperTest, CellularDataDumpHelper_01, Function | MediumTest | Level1) 552d43be4eSopenharmony_ci{ 562d43be4eSopenharmony_ci CellularDataDumpHelper help; 572d43be4eSopenharmony_ci std::vector<std::string> args = {"cellular_data", "--help"}; 582d43be4eSopenharmony_ci std::string result = ""; 592d43be4eSopenharmony_ci help.Dump(args, result); 602d43be4eSopenharmony_ci std::cout << "CellularDataDumpHelper_01 result: " << result << std::endl; 612d43be4eSopenharmony_ci ASSERT_FALSE(result.find("CellularData") == std::string::npos); 622d43be4eSopenharmony_ci ASSERT_FALSE(result.find("Usage:dump <command> [options]") == std::string::npos); 632d43be4eSopenharmony_ci} 642d43be4eSopenharmony_ci 652d43be4eSopenharmony_ciHWTEST_F(CellularDataDumpHelperTest, CellularDataDumpHelper_02, Function | MediumTest | Level1) 662d43be4eSopenharmony_ci{ 672d43be4eSopenharmony_ci CellularDataDumpHelper help; 682d43be4eSopenharmony_ci std::vector<std::string> args = {"cellular_data", "help"}; 692d43be4eSopenharmony_ci std::string result = ""; 702d43be4eSopenharmony_ci EXPECT_CALL(*mockCoreService, HasSimCard(_, _)) 712d43be4eSopenharmony_ci .Times(AtLeast(0)) 722d43be4eSopenharmony_ci .WillRepeatedly(DoAll(SetArgReferee<1>(false), Return(0))); 732d43be4eSopenharmony_ci help.Dump(args, result); 742d43be4eSopenharmony_ci std::cout << "CellularDataDumpHelper_02 result: " << result << std::endl; 752d43be4eSopenharmony_ci ASSERT_FALSE(result.find("Ohos cellular data service") == std::string::npos); 762d43be4eSopenharmony_ci ASSERT_TRUE(result.find("CellularDataRoamingEnabled") == std::string::npos); 772d43be4eSopenharmony_ci} 782d43be4eSopenharmony_ci 792d43be4eSopenharmony_ciHWTEST_F(CellularDataDumpHelperTest, CellularDataDumpHelper_03, Function | MediumTest | Level1) 802d43be4eSopenharmony_ci{ 812d43be4eSopenharmony_ci CellularDataDumpHelper help; 822d43be4eSopenharmony_ci std::vector<std::string> args = {"cellular_data_1", "--help"}; 832d43be4eSopenharmony_ci std::string result = ""; 842d43be4eSopenharmony_ci EXPECT_CALL(*mockCoreService, HasSimCard(_, _)) 852d43be4eSopenharmony_ci .Times(AtLeast(0)) 862d43be4eSopenharmony_ci .WillRepeatedly(DoAll(SetArgReferee<1>(false), Return(0))); 872d43be4eSopenharmony_ci help.Dump(args, result); 882d43be4eSopenharmony_ci std::cout << "CellularDataDumpHelper_03 result: " << result << std::endl; 892d43be4eSopenharmony_ci ASSERT_FALSE(result.find("Ohos cellular data service") == std::string::npos); 902d43be4eSopenharmony_ci ASSERT_TRUE(result.find("CellularDataRoamingEnabled") == std::string::npos); 912d43be4eSopenharmony_ci} 922d43be4eSopenharmony_ci 932d43be4eSopenharmony_ciHWTEST_F(CellularDataDumpHelperTest, CellularDataDumpHelper_04, Function | MediumTest | Level1) 942d43be4eSopenharmony_ci{ 952d43be4eSopenharmony_ci maxSlotCount_ = 2; 962d43be4eSopenharmony_ci EXPECT_CALL(*mockCoreService, HasSimCard(0, _)).WillOnce(DoAll(SetArgReferee<1>(true), Return(0))); 972d43be4eSopenharmony_ci EXPECT_CALL(*mockCoreService, HasSimCard(1, _)).WillOnce(DoAll(SetArgReferee<1>(false), Return(0))); 982d43be4eSopenharmony_ci CellularDataDumpHelper help; 992d43be4eSopenharmony_ci std::vector<std::string> args = {"cellular_data_1", "help"}; 1002d43be4eSopenharmony_ci std::string result = ""; 1012d43be4eSopenharmony_ci help.Dump(args, result); 1022d43be4eSopenharmony_ci std::cout << "CellularDataDumpHelper_04 result: " << result << std::endl; 1032d43be4eSopenharmony_ci ASSERT_FALSE(result.find("Ohos cellular data service") == std::string::npos); 1042d43be4eSopenharmony_ci ASSERT_FALSE(result.find("CellularDataRoamingEnabled") == std::string::npos); 1052d43be4eSopenharmony_ci maxSlotCount_ = 0; 1062d43be4eSopenharmony_ci} 1072d43be4eSopenharmony_ci 1082d43be4eSopenharmony_ci} // namespace Telephony 1092d43be4eSopenharmony_ci} // namespace OHOS