1/* 2 * Copyright (C) 2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16#define private public 17#define protected public 18 19#include <gtest/gtest.h> 20 21#include "cellular_data_dump_helper.h" 22#include "core_service_client.h" 23#include "mock/mock_core_service.h" 24#include "telephony_types.h" 25 26namespace OHOS { 27namespace Telephony { 28using namespace testing::ext; 29using ::testing::_; 30using ::testing::DoAll; 31using ::testing::Return; 32using ::testing::AtLeast; 33using ::testing::SetArgReferee; 34 35class CellularDataDumpHelperTest : public testing::Test { 36public: 37 CellularDataDumpHelperTest() 38 { 39 mockCoreService = new MockCoreService(); 40 sptr<ICoreService> mockCoreServicePtr(mockCoreService); 41 DelayedRefSingleton<CoreServiceClient>::GetInstance().proxy_ = mockCoreServicePtr; 42 } 43 ~CellularDataDumpHelperTest() = default; 44 static void TearDownTestCase() 45 { 46 if (DelayedRefSingleton<CoreServiceClient>::GetInstance().proxy_ != nullptr) { 47 DelayedRefSingleton<CoreServiceClient>::GetInstance().proxy_ = nullptr; 48 std::cout << "CellularDataDumpHelperTest set proxy_ nullptr" << std::endl; 49 } 50 } 51 MockCoreService *mockCoreService; 52}; 53 54HWTEST_F(CellularDataDumpHelperTest, CellularDataDumpHelper_01, Function | MediumTest | Level1) 55{ 56 CellularDataDumpHelper help; 57 std::vector<std::string> args = {"cellular_data", "--help"}; 58 std::string result = ""; 59 help.Dump(args, result); 60 std::cout << "CellularDataDumpHelper_01 result: " << result << std::endl; 61 ASSERT_FALSE(result.find("CellularData") == std::string::npos); 62 ASSERT_FALSE(result.find("Usage:dump <command> [options]") == std::string::npos); 63} 64 65HWTEST_F(CellularDataDumpHelperTest, CellularDataDumpHelper_02, Function | MediumTest | Level1) 66{ 67 CellularDataDumpHelper help; 68 std::vector<std::string> args = {"cellular_data", "help"}; 69 std::string result = ""; 70 EXPECT_CALL(*mockCoreService, HasSimCard(_, _)) 71 .Times(AtLeast(0)) 72 .WillRepeatedly(DoAll(SetArgReferee<1>(false), Return(0))); 73 help.Dump(args, result); 74 std::cout << "CellularDataDumpHelper_02 result: " << result << std::endl; 75 ASSERT_FALSE(result.find("Ohos cellular data service") == std::string::npos); 76 ASSERT_TRUE(result.find("CellularDataRoamingEnabled") == std::string::npos); 77} 78 79HWTEST_F(CellularDataDumpHelperTest, CellularDataDumpHelper_03, Function | MediumTest | Level1) 80{ 81 CellularDataDumpHelper help; 82 std::vector<std::string> args = {"cellular_data_1", "--help"}; 83 std::string result = ""; 84 EXPECT_CALL(*mockCoreService, HasSimCard(_, _)) 85 .Times(AtLeast(0)) 86 .WillRepeatedly(DoAll(SetArgReferee<1>(false), Return(0))); 87 help.Dump(args, result); 88 std::cout << "CellularDataDumpHelper_03 result: " << result << std::endl; 89 ASSERT_FALSE(result.find("Ohos cellular data service") == std::string::npos); 90 ASSERT_TRUE(result.find("CellularDataRoamingEnabled") == std::string::npos); 91} 92 93HWTEST_F(CellularDataDumpHelperTest, CellularDataDumpHelper_04, Function | MediumTest | Level1) 94{ 95 maxSlotCount_ = 2; 96 EXPECT_CALL(*mockCoreService, HasSimCard(0, _)).WillOnce(DoAll(SetArgReferee<1>(true), Return(0))); 97 EXPECT_CALL(*mockCoreService, HasSimCard(1, _)).WillOnce(DoAll(SetArgReferee<1>(false), Return(0))); 98 CellularDataDumpHelper help; 99 std::vector<std::string> args = {"cellular_data_1", "help"}; 100 std::string result = ""; 101 help.Dump(args, result); 102 std::cout << "CellularDataDumpHelper_04 result: " << result << std::endl; 103 ASSERT_FALSE(result.find("Ohos cellular data service") == std::string::npos); 104 ASSERT_FALSE(result.find("CellularDataRoamingEnabled") == std::string::npos); 105 maxSlotCount_ = 0; 106} 107 108} // namespace Telephony 109} // namespace OHOS