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 #include "mock/mock_sim_manager.h" 21 #include "data_switch_settings.h" 22 #include "core_manager_inner.h" 23 #include "telephony_errors.h" 24 25 namespace OHOS { 26 namespace Telephony { 27 using namespace testing::ext; 28 using ::testing::_; 29 using ::testing::Return; 30 31 class DataSwitchSettingTest : public testing::Test { 32 public: DataSwitchSettingTest()33 DataSwitchSettingTest() 34 { 35 mockSimManager = new MockSimManager(); 36 std::shared_ptr<MockSimManager> mockSimManagerPtr(mockSimManager); 37 CoreManagerInner::GetInstance().simManager_ = mockSimManagerPtr; 38 } 39 ~DataSwitchSettingTest() = default; 40 TearDownTestCase()41 static void TearDownTestCase() 42 { 43 if (CoreManagerInner::GetInstance().simManager_ != nullptr) { 44 CoreManagerInner::GetInstance().simManager_ = nullptr; 45 std::cout << "DataSwitchSettingTest set simManager_ nullptr" << std::endl; 46 } 47 } 48 49 MockSimManager *mockSimManager; 50 }; 51 52 HWTEST_F(DataSwitchSettingTest, DataSwitchSetting_01, Function | MediumTest | Level1) 53 { 54 DataSwitchSettings sets(2); 55 std::cout << "DataSwitchSetting_01 slotId: " << sets.slotId_ << std::endl; 56 ASSERT_TRUE(sets.SetUserDataOn(true) == TELEPHONY_ERR_SUCCESS); 57 58 DataSwitchSettings sets1(0); 59 ASSERT_TRUE(sets.SetUserDataOn(true) == TELEPHONY_ERR_SUCCESS); 60 } 61 62 HWTEST_F(DataSwitchSettingTest, DataSwitchSetting_02, Function | MediumTest | Level1) 63 { 64 DataSwitchSettings sets(2); 65 std::cout << "DataSwitchSetting_02 slotId: " << sets.slotId_ << std::endl; 66 bool dataEnabled; 67 ASSERT_TRUE(sets.QueryUserDataStatus(dataEnabled) == TELEPHONY_ERR_SUCCESS); 68 ASSERT_TRUE(dataEnabled); 69 70 DataSwitchSettings sets1(0); 71 ASSERT_TRUE(sets1.QueryUserDataStatus(dataEnabled) == TELEPHONY_ERR_SUCCESS); 72 ASSERT_TRUE(dataEnabled); 73 } 74 75 HWTEST_F(DataSwitchSettingTest, DataSwitchSetting_03, Function | MediumTest | Level1) 76 { 77 DataSwitchSettings sets(2); 78 std::cout << "DataSwitchSetting_03 slotId: " << sets.slotId_ << std::endl; 79 ASSERT_TRUE(sets.SetUserDataRoamingOn(true) == TELEPHONY_ERR_SUCCESS); 80 81 DataSwitchSettings sets1(0); 82 EXPECT_CALL(*mockSimManager, GetSimId(_)).WillOnce(Return(0)); 83 ASSERT_TRUE(sets1.SetUserDataRoamingOn(true) == TELEPHONY_ERR_SLOTID_INVALID); 84 85 EXPECT_CALL(*mockSimManager, GetSimId(_)).WillOnce(Return(1)); 86 ASSERT_TRUE(sets1.SetUserDataRoamingOn(true) == TELEPHONY_ERR_SUCCESS); 87 } 88 89 HWTEST_F(DataSwitchSettingTest, DataSwitchSetting_04, Function | MediumTest | Level1) 90 { 91 bool dataRoamingEnabled; 92 DataSwitchSettings sets(2); 93 std::cout << "DataSwitchSetting_04 slotId: " << sets.slotId_ << std::endl; 94 ASSERT_TRUE(sets.QueryUserDataRoamingStatus(dataRoamingEnabled) == TELEPHONY_ERR_SUCCESS); 95 ASSERT_TRUE(dataRoamingEnabled); 96 97 DataSwitchSettings sets1(0); 98 EXPECT_CALL(*mockSimManager, GetSimId(_)).WillOnce(Return(0)); 99 ASSERT_TRUE(sets1.QueryUserDataRoamingStatus(dataRoamingEnabled) == TELEPHONY_ERR_LOCAL_PTR_NULL); 100 101 EXPECT_CALL(*mockSimManager, GetSimId(_)).WillOnce(Return(1)); 102 ASSERT_FALSE(sets1.QueryUserDataRoamingStatus(dataRoamingEnabled) == TELEPHONY_ERR_SUCCESS); 103 } 104 105 HWTEST_F(DataSwitchSettingTest, DataSwitchSetting_05, Function | MediumTest | Level1) 106 { 107 DataSwitchSettings sets(0); 108 sets.userDataOn_ = false; 109 std::cout << "DataSwitchSetting_05 userDataOn_: " << sets.userDataOn_ << ", policyDataOn_:" << sets.policyDataOn_ 110 << ", internalDataOn_:" << sets.internalDataOn_ << std::endl; 111 ASSERT_FALSE(sets.IsAllowActiveData()); 112 sets.userDataOn_ = true; 113 sets.policyDataOn_ = true; 114 sets.internalDataOn_ = true; 115 ASSERT_TRUE(sets.IsAllowActiveData()); 116 } 117 118 HWTEST_F(DataSwitchSettingTest, DataSwitchSetting_06, Function | MediumTest | Level1) 119 { 120 DataSwitchSettings sets(2); 121 std::cout << "DataSwitchSetting_06 slotId: " << sets.slotId_ << std::endl; 122 int32_t simDetected = 1; 123 ASSERT_TRUE(sets.SetAnySimDetected(simDetected) == TELEPHONY_ERR_SUCCESS); 124 125 DataSwitchSettings sets1(0); 126 ASSERT_TRUE(sets1.SetAnySimDetected(simDetected) == TELEPHONY_ERR_SUCCESS); 127 } 128 129 HWTEST_F(DataSwitchSettingTest, DataSwitchSetting_07, Function | MediumTest | Level1) 130 { 131 DataSwitchSettings sets(2); 132 std::cout << "DataSwitchSetting_07 slotId: " << sets.slotId_ << std::endl; 133 int32_t simDetected = 0; 134 ASSERT_TRUE(sets.QueryAnySimDetectedStatus(simDetected) == TELEPHONY_ERR_SUCCESS); 135 136 DataSwitchSettings sets1(0); 137 ASSERT_TRUE(sets1.QueryAnySimDetectedStatus(simDetected) == TELEPHONY_ERR_SUCCESS); 138 } 139 140 } // namespace Telephony 141 } // namespace OHOS