1 /*
2  * Copyright (C) 2022 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 #define private public
16 #define protected public
17 
18 #include "gtest/gtest.h"
19 #include "config_request.h"
20 #include "call_manager_inner_type.h"
21 #include "ims_call_client.h"
22 #include "cellular_call_service.h"
23 #include "ims_feature.h"
24 
25 namespace OHOS {
26 namespace Telephony {
27 using namespace testing::ext;
28 class ConfigRequestTest : public testing::Test {
29 public:
30     static void SetUpTestCase();
31     static void TearDownTestCase();
32     void SetUp();
33     void TearDown();
34 };
SetUpTestCase()35 void ConfigRequestTest::SetUpTestCase() {}
36 
TearDownTestCase()37 void ConfigRequestTest::TearDownTestCase() {}
38 
SetUp()39 void ConfigRequestTest::SetUp() {}
40 
TearDown()41 void ConfigRequestTest::TearDown() {}
42 
43 /**
44  * @tc.number   Telephony_ConfigRequestTest_0001
45  * @tc.name     Test EmergencyUtilsTest SetImsSwitchStatusRequest
46  * @tc.desc     Function test
47  */
48 HWTEST_F(ConfigRequestTest, ConfigRequestTest_0001, Function | MediumTest | Level1)
49 {
50     ConfigRequest configRequest;
51     DelayedSingleton<ImsCallClient>::GetInstance()->UnInit();
52     int32_t slotId = 0;
53     bool active = true;
54     EXPECT_EQ(configRequest.SetImsSwitchStatusRequest(slotId, active), CALL_ERR_RESOURCE_UNAVAILABLE);
55 }
56 
57 /**
58  * @tc.number   Telephony_ConfigRequestTest_0002
59  * @tc.name     Test EmergencyUtilsTest SetVoNRSwitchStatusRequest
60  * @tc.desc     Function test
61  */
62 HWTEST_F(ConfigRequestTest, ConfigRequestTest_0002, Function | MediumTest | Level1)
63 {
64     ConfigRequest configRequest;
65     int32_t slotId = 0;
66     int32_t state = 0;
67     EXPECT_EQ(configRequest.SetVoNRSwitchStatusRequest(slotId, state), CALL_ERR_RESOURCE_UNAVAILABLE);
68 
69     DelayedSingleton<CellularCallService>::GetInstance()->Init();
70     EXPECT_NE(configRequest.SetVoNRSwitchStatusRequest(slotId, state), TELEPHONY_SUCCESS);
71 }
72 
73 /**
74  * @tc.number   Telephony_ConfigRequestTest_0003
75  * @tc.name     Test EmergencyUtilsTest SetVoNRSwitchStatusRequest
76  * @tc.desc     Function test
77  */
78 HWTEST_F(ConfigRequestTest, ConfigRequestTest_0003, Function | MediumTest | Level1)
79 {
80     ConfigRequest configRequest;
81     int32_t slotId = 0;
82     configRequest.GetImsSwitchStatusRequest(slotId);
83 
84     DelayedSingleton<ImsCallClient>::GetInstance()->UnInit();
85     EXPECT_EQ(configRequest.GetImsSwitchStatusRequest(slotId), CALL_ERR_RESOURCE_UNAVAILABLE);
86 }
87 
88 /**
89  * @tc.number   Telephony_ConfigRequestTest_0004
90  * @tc.name     Test EmergencyUtilsTest SetVoNRSwitchStatusRequest
91  * @tc.desc     Function test
92  */
93 HWTEST_F(ConfigRequestTest, ConfigRequestTest_0004, Function | MediumTest | Level1)
94 {
95     ConfigRequest configRequest;
96     std::string value;
97     int32_t intValue = 1;
98     configRequest.SetImsConfigRequest(ImsConfigItem::ITEM_VIDEO_QUALITY, value);
99     configRequest.SetImsConfigRequest(ImsConfigItem::ITEM_VIDEO_QUALITY, intValue);
100     configRequest.SetImsFeatureValueRequest(FeatureType::TYPE_VOICE_OVER_LTE, intValue);
101 
102     DelayedSingleton<ImsCallClient>::GetInstance()->UnInit();
103     EXPECT_EQ(configRequest.SetImsConfigRequest(ImsConfigItem::ITEM_VIDEO_QUALITY, value),
104         CALL_ERR_RESOURCE_UNAVAILABLE);
105     EXPECT_EQ(configRequest.SetImsConfigRequest(ImsConfigItem::ITEM_VIDEO_QUALITY, intValue),
106         CALL_ERR_RESOURCE_UNAVAILABLE);
107     EXPECT_EQ(configRequest.GetImsFeatureValueRequest(FeatureType::TYPE_VOICE_OVER_LTE, intValue),
108         CALL_ERR_RESOURCE_UNAVAILABLE);
109 }
110 
111 /**
112  * @tc.number   Telephony_ConfigRequestTest_0005
113  * @tc.name     Test EmergencyUtilsTest SetVoNRSwitchStatusRequest
114  * @tc.desc     Function test
115  */
116 HWTEST_F(ConfigRequestTest, ConfigRequestTest_0005, Function | MediumTest | Level1)
117 {
118     ConfigRequest configRequest;
119     ImsConfigItem item = ITEM_VIDEO_QUALITY;
120     configRequest.GetImsConfigRequest(item);
121 
122     DelayedSingleton<ImsCallClient>::GetInstance()->UnInit();
123     EXPECT_EQ(configRequest.GetImsConfigRequest(item), CALL_ERR_RESOURCE_UNAVAILABLE);
124 
125     int32_t slotId = 0;
126     ImsCapabilityList imsCapList;
127     EXPECT_EQ(configRequest.UpdateImsCapabilities(slotId, imsCapList), CALL_ERR_RESOURCE_UNAVAILABLE);
128 }
129 
130 /**
131  * @tc.number   Telephony_ConfigRequestTest_0006
132  * @tc.name     Test EmergencyUtilsTest SetVoNRSwitchStatusRequest
133  * @tc.desc     Function test
134  */
135 HWTEST_F(ConfigRequestTest, ConfigRequestTest_0006, Function | MediumTest | Level1)
136 {
137     ConfigRequest configRequest;
138     int32_t slotId = 0;
139     int32_t mute = 1;
140     configRequest.SetMuteRequest(slotId, mute);
141     configRequest.GetMuteRequest(slotId);
142 
143     DelayedSingleton<ImsCallClient>::GetInstance()->UnInit();
144     DelayedSingleton<CellularCallService>::GetInstance()->Init();
145     EXPECT_NE(configRequest.SetMuteRequest(slotId, mute), TELEPHONY_SUCCESS);
146     EXPECT_NE(configRequest.GetMuteRequest(slotId), TELEPHONY_SUCCESS);
147 }
148 
149 /**
150  * @tc.number   Telephony_ConfigRequestTest_0007
151  * @tc.name     Test EmergencyUtilsTest SetVoNRSwitchStatusRequest
152  * @tc.desc     Function test
153  */
154 HWTEST_F(ConfigRequestTest, ConfigRequestTest_0007, Function | MediumTest | Level1)
155 {
156     ConfigRequest configRequest;
157     int32_t slotId = -1;
158     std::vector<EmergencyCall> eccVec;
159     DelayedSingleton<CellularCallService>::GetInstance()->Init();
160     EXPECT_EQ(configRequest.GetEmergencyCallListRequest(slotId), CALL_ERR_RESOURCE_UNAVAILABLE);
161     EXPECT_EQ(configRequest.SetEmergencyCallListRequest(slotId, eccVec), CALL_ERR_RESOURCE_UNAVAILABLE);
162 }
163 } // namespace Telephony
164 } // namespace OHOS