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
HWTEST_F(DataSwitchSettingTest, DataSwitchSetting_01, Function | MediumTest | Level1)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
HWTEST_F(DataSwitchSettingTest, DataSwitchSetting_02, Function | MediumTest | Level1)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
HWTEST_F(DataSwitchSettingTest, DataSwitchSetting_03, Function | MediumTest | Level1)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
HWTEST_F(DataSwitchSettingTest, DataSwitchSetting_04, Function | MediumTest | Level1)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
HWTEST_F(DataSwitchSettingTest, DataSwitchSetting_05, Function | MediumTest | Level1)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 } // namespace Telephony
119 } // namespace OHOS