• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2021-2023 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 #include "cs_test.h"
17 
18 #define private public
19 #define protected public
20 #include "cellular_call_callback.h"
21 #include "cellular_call_handler.h"
22 #include "cellular_call_proxy.h"
23 #include "cellular_call_register.h"
24 #include "cellular_call_service.h"
25 #include "cellular_call_supplement.h"
26 #include "config_request.h"
27 #include "core_service_client.h"
28 #include "cs_control.h"
29 #include "hril_call_parcel.h"
30 #include "operator_config_types.h"
31 #include "radio_event.h"
32 #include "securec.h"
33 #include "sim_state_type.h"
34 
35 namespace OHOS {
36 namespace Telephony {
37 using namespace testing::ext;
38 const int32_t SIM1_SLOTID = 0;
39 const int32_t SIM2_SLOTID = 1;
40 const int32_t INVALID_SLOTID = 0xFF;
41 const int32_t INVALID_HANG_UP_TYPE = -1;
42 const int32_t SUCCESS_RESULT = 0;
43 const int32_t ERROR_RESULT = 1;
44 const std::string PHONE_NUMBER = "0000000";
45 const std::string PHONE_NUMBER_SECOND = "1111111";
46 const std::string PHONE_NUMBER_THIRD = "2222222";
47 const int32_t CELLULAR_CALL_SUCCESS = 0;
48 const int32_t CELLULAR_CALL_ERROR = -1;
49 const int32_t USSD_MODE_NOTIFY = 0;
50 
HasSimCard(int32_t slotId)51 bool CsTest::HasSimCard(int32_t slotId)
52 {
53     bool hasSimCard = false;
54     DelayedRefSingleton<CoreServiceClient>::GetInstance().HasSimCard(slotId, hasSimCard);
55     return hasSimCard;
56 }
57 
SetUpTestCase(void)58 void CsTest::SetUpTestCase(void)
59 {
60     // step 3: Set Up Test Case
61 }
62 
TearDownTestCase(void)63 void CsTest::TearDownTestCase(void)
64 {
65     // step 3: Tear Down Test Case
66 }
67 
SetUp(void)68 void CsTest::SetUp(void)
69 {
70     // step 3: input testcase setup step
71     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::DIAL)] = &CsTest::Dial;
72     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::HANG_UP)] = &CsTest::HangUp;
73     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::REJECT)] = &CsTest::Reject;
74     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::ANSWER)] = &CsTest::Answer;
75     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::HOLD_CALL)] = &CsTest::HoldCall;
76     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::UN_HOLD_CALL)] = &CsTest::UnHoldCall;
77     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::SWITCH_CALL)] = &CsTest::SwitchCall;
78     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::EMERGENCY_CALL)] = &CsTest::IsEmergencyPhoneNumber;
79     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::COMBINE_CONFERENCE)] = &CsTest::CombineConference;
80     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::SEPARATE_CONFERENCE)] = &CsTest::SeparateConference;
81     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::INVITE_TO_CONFERENCE)] =
82         &CsTest::InviteToConference;
83     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::KICK_OUT_CONFERENCE)] =
84         &CsTest::KickOutFromConference;
85     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::HANG_UP_ALL_CONNECTION)] =
86         &CsTest::HangUpAllConnection;
87     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::REGISTER_CALLBACK)] =
88         &CsTest::RegisterCallBack;
89     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::UNREGISTER_CALLBACK)] =
90         &CsTest::UnRegisterCallBack;
91     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::START_DTMF)] = &CsTest::StartDtmf;
92     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::STOP_DTMF)] = &CsTest::StopDtmf;
93     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::SEND_DTMF)] = &CsTest::SendDtmf;
94     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::START_RTT)] = &CsTest::StartRtt;
95     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::STOP_RTT)] = &CsTest::StopRtt;
96     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::SET_CALL_TRANSFER)] =
97         &CsTest::SetCallTransferInfo;
98     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::GET_CALL_TRANSFER)] =
99         &CsTest::GetCallTransferInfo;
100     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::SET_CALL_WAITING)] =
101         &CsTest::SetCallWaiting;
102     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::GET_CALL_WAITING)] =
103         &CsTest::GetCallWaiting;
104     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::SET_CALL_RESTRICTION)] =
105         &CsTest::SetCallRestriction;
106     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::GET_CALL_RESTRICTION)] =
107         &CsTest::GetCallRestriction;
108     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::SET_CALL_RESTRICTION_PWD)] =
109         &CsTest::SetCallRestrictionPassword;
110     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::SET_MUTE)] = &CsTest::SetMute;
111     requestFuncMap_[static_cast<int32_t>(CellularCallInterfaceCode::GET_MUTE)] = &CsTest::GetMute;
112 }
113 
TearDown(void)114 void CsTest::TearDown(void)
115 {
116     // step 3: input testcase teardown step
117 }
118 
Dial(const sptr<CellularCallInterface> & telephonyService) const119 int32_t CsTest::Dial(const sptr<CellularCallInterface> &telephonyService) const
120 {
121     std::cout << "test Dial entry.\n";
122     CellularCallInfo callInfo;
123     if (memset_s(&callInfo, sizeof(callInfo), 0, sizeof(callInfo)) != EOK) {
124         std::cout << "CellularCallService return, memset_s failed. \n";
125         return TELEPHONY_ERR_ARGUMENT_INVALID;
126     }
127     std::cout << "please enter the phone number:";
128     std::cin >> callInfo.phoneNum;
129     callInfo.videoState = 1;
130     int32_t slotId = 0;
131     std::cout << "please enter the slotId:(0   1)";
132     std::cin >> slotId;
133     callInfo.slotId = slotId;
134     return telephonyService->Dial(callInfo);
135 }
136 
HangUp(const sptr<CellularCallInterface> & telephonyService) const137 int32_t CsTest::HangUp(const sptr<CellularCallInterface> &telephonyService) const
138 {
139     std::cout << "test HangUp entry.\n";
140     CellularCallInfo callInfo;
141     if (InitCallInfo(callInfo) != CELLULAR_CALL_SUCCESS) {
142         return TELEPHONY_ERR_ARGUMENT_INVALID;
143     }
144     std::cout << "please enter the connect index:";
145     std::cin >> callInfo.index;
146     std::cout << "please enter the type:";
147     int32_t type;
148     std::cin >> type;
149     return telephonyService->HangUp(callInfo, static_cast<CallSupplementType>(type));
150 }
151 
Answer(const sptr<CellularCallInterface> & telephonyService) const152 int32_t CsTest::Answer(const sptr<CellularCallInterface> &telephonyService) const
153 {
154     std::cout << "test Answer entry.\n";
155     CellularCallInfo callInfo;
156     if (InitCallInfo(callInfo) != CELLULAR_CALL_SUCCESS) {
157         return TELEPHONY_ERR_ARGUMENT_INVALID;
158     }
159     return telephonyService->Answer(callInfo);
160 }
161 
Reject(const sptr<CellularCallInterface> & telephonyService) const162 int32_t CsTest::Reject(const sptr<CellularCallInterface> &telephonyService) const
163 {
164     std::cout << "test Reject entry.\n";
165     CellularCallInfo callInfo;
166     if (InitCallInfo(callInfo) != CELLULAR_CALL_SUCCESS) {
167         return TELEPHONY_ERR_ARGUMENT_INVALID;
168     }
169     std::cout << "please enter the connect index:";
170     std::cin >> callInfo.index;
171     return telephonyService->Reject(callInfo);
172 }
173 
HoldCall(const sptr<CellularCallInterface> & telephonyService) const174 int32_t CsTest::HoldCall(const sptr<CellularCallInterface> &telephonyService) const
175 {
176     std::cout << "test HoldCall entry.\n";
177     CellularCallInfo callInfo;
178     if (InitCallInfo(callInfo) != CELLULAR_CALL_SUCCESS) {
179         return TELEPHONY_ERR_ARGUMENT_INVALID;
180     }
181     return telephonyService->HoldCall(callInfo);
182 }
183 
UnHoldCall(const sptr<CellularCallInterface> & telephonyService) const184 int32_t CsTest::UnHoldCall(const sptr<CellularCallInterface> &telephonyService) const
185 {
186     std::cout << "test UnHoldCall entry.\n";
187     CellularCallInfo callInfo;
188     if (InitCallInfo(callInfo) != CELLULAR_CALL_SUCCESS) {
189         return TELEPHONY_ERR_ARGUMENT_INVALID;
190     }
191     return telephonyService->UnHoldCall(callInfo);
192 }
193 
SwitchCall(const sptr<CellularCallInterface> & telephonyService) const194 int32_t CsTest::SwitchCall(const sptr<CellularCallInterface> &telephonyService) const
195 {
196     std::cout << "test SwitchCall entry.\n";
197     CellularCallInfo callInfo;
198     if (InitCallInfo(callInfo) != CELLULAR_CALL_SUCCESS) {
199         return TELEPHONY_ERR_ARGUMENT_INVALID;
200     }
201     return telephonyService->SwitchCall(callInfo);
202 }
203 
IsEmergencyPhoneNumber(const sptr<CellularCallInterface> & telephonyService) const204 int32_t CsTest::IsEmergencyPhoneNumber(const sptr<CellularCallInterface> &telephonyService) const
205 {
206     std::cout << "test IsEmergencyPhoneNumber entry.\n";
207     std::string phoneNum;
208     std::cout << "input phoneNum: ";
209     std::cin >> phoneNum;
210     std::cout << "input slotId: ";
211     int32_t slotId = 0;
212     std::cin >> slotId;
213     bool enabled = false;
214     telephonyService->IsEmergencyPhoneNumber(slotId, phoneNum, enabled);
215     return enabled;
216 }
217 
CombineConference(const sptr<CellularCallInterface> & telephonyService) const218 int32_t CsTest::CombineConference(const sptr<CellularCallInterface> &telephonyService) const
219 {
220     std::cout << "test CombineConference entry." << std::endl;
221     CellularCallInfo callInfo;
222     if (InitCallInfo(callInfo) != CELLULAR_CALL_SUCCESS) {
223         return TELEPHONY_ERR_ARGUMENT_INVALID;
224     }
225     return telephonyService->CombineConference(callInfo);
226 }
227 
SeparateConference(const sptr<CellularCallInterface> & telephonyService) const228 int32_t CsTest::SeparateConference(const sptr<CellularCallInterface> &telephonyService) const
229 {
230     std::cout << "test SeparateConference entry." << std::endl;
231     CellularCallInfo callInfo;
232     if (InitCallInfo(callInfo) != CELLULAR_CALL_SUCCESS) {
233         return TELEPHONY_ERR_ARGUMENT_INVALID;
234     }
235     std::cout << "please enter the need split index:";
236     std::cin >> callInfo.index;
237     return telephonyService->SeparateConference(callInfo);
238 }
239 
InviteToConference(const sptr<CellularCallInterface> & telephonyService) const240 int32_t CsTest::InviteToConference(const sptr<CellularCallInterface> &telephonyService) const
241 {
242     std::cout << "test InviteToConference entry." << std::endl;
243     std::vector<std::string> numberList;
244     std::cout << "please enter the invite phone number:";
245     std::string phoneNum;
246     std::cin >> phoneNum;
247     numberList.push_back(phoneNum);
248     std::cout << "please enter the slotId:";
249     int32_t slotId = 0;
250     return telephonyService->InviteToConference(slotId, numberList);
251 }
252 
KickOutFromConference(const sptr<CellularCallInterface> & telephonyService) const253 int32_t CsTest::KickOutFromConference(const sptr<CellularCallInterface> &telephonyService) const
254 {
255     std::cout << "test KickOutFromConference entry." << std::endl;
256     CellularCallInfo callInfo;
257     if (InitCallInfo(callInfo) != CELLULAR_CALL_SUCCESS) {
258         return TELEPHONY_ERR_ARGUMENT_INVALID;
259     }
260     std::cout << "please enter the need kick out index:";
261     std::cin >> callInfo.index;
262     return telephonyService->KickOutFromConference(callInfo);
263 }
264 
HangUpAllConnection(const sptr<CellularCallInterface> & telephonyService) const265 int32_t CsTest::HangUpAllConnection(const sptr<CellularCallInterface> &telephonyService) const
266 {
267     std::cout << "test HangUpAllConnection entry." << std::endl;
268     return telephonyService->HangUpAllConnection();
269 }
270 
RegisterCallBack(const sptr<CellularCallInterface> & telephonyService) const271 int32_t CsTest::RegisterCallBack(const sptr<CellularCallInterface> &telephonyService) const
272 {
273     std::cout << "test RegisterCallBack entry.\n";
274     return CELLULAR_CALL_SUCCESS;
275 }
276 
UnRegisterCallBack(const sptr<CellularCallInterface> & telephonyService) const277 int32_t CsTest::UnRegisterCallBack(const sptr<CellularCallInterface> &telephonyService) const
278 {
279     std::cout << "test UnRegisterCallBack entry.\n";
280     return telephonyService->UnRegisterCallManagerCallBack();
281 }
282 
StartDtmf(const sptr<CellularCallInterface> & telephonyService) const283 int32_t CsTest::StartDtmf(const sptr<CellularCallInterface> &telephonyService) const
284 {
285     std::cout << "test StartDtmf entry." << std::endl;
286     CellularCallInfo callInfo;
287     if (InitCallInfo(callInfo) != CELLULAR_CALL_SUCCESS) {
288         return TELEPHONY_ERR_ARGUMENT_INVALID;
289     }
290     std::cout << "please enter the index:";
291     std::cin >> callInfo.index;
292     char cDtmfCode;
293     std::cout << "please enter the Dtmf code:";
294     std::cin >> cDtmfCode;
295     return telephonyService->StartDtmf(cDtmfCode, callInfo);
296 }
297 
StopDtmf(const sptr<CellularCallInterface> & telephonyService) const298 int32_t CsTest::StopDtmf(const sptr<CellularCallInterface> &telephonyService) const
299 {
300     std::cout << "test StopDtmf entry." << std::endl;
301     CellularCallInfo callInfo;
302     if (InitCallInfo(callInfo) != CELLULAR_CALL_SUCCESS) {
303         return TELEPHONY_ERR_ARGUMENT_INVALID;
304     }
305     std::cout << "please enter the index:";
306     std::cin >> callInfo.index;
307     return telephonyService->StopDtmf(callInfo);
308 }
309 
SendDtmf(const sptr<CellularCallInterface> & telephonyService) const310 int32_t CsTest::SendDtmf(const sptr<CellularCallInterface> &telephonyService) const
311 {
312     std::cout << "test SendDtmf entry." << std::endl;
313     CellularCallInfo callInfo;
314     if (InitCallInfo(callInfo) != CELLULAR_CALL_SUCCESS) {
315         return TELEPHONY_ERR_ARGUMENT_INVALID;
316     }
317     std::cout << "please enter the index:";
318     std::cin >> callInfo.index;
319     char cDtmfCode;
320     std::cout << "please enter the Dtmf code:";
321     std::cin >> cDtmfCode;
322     return telephonyService->SendDtmf(cDtmfCode, callInfo);
323 }
324 
StartRtt(const sptr<CellularCallInterface> & telephonyService) const325 int32_t CsTest::StartRtt(const sptr<CellularCallInterface> &telephonyService) const
326 {
327     std::cout << "test StartRtt entry." << std::endl;
328     std::string msg;
329     std::cout << "please enter the send msg:";
330     std::cin >> msg;
331     int32_t slotId;
332     std::cout << "please enter the slotId:";
333     std::cin >> slotId;
334     return telephonyService->StartRtt(slotId, msg);
335 }
336 
StopRtt(const sptr<CellularCallInterface> & telephonyService) const337 int32_t CsTest::StopRtt(const sptr<CellularCallInterface> &telephonyService) const
338 {
339     std::cout << "test StopRtt entry." << std::endl;
340     int32_t slotId;
341     std::cout << "please enter the slotId:";
342     std::cin >> slotId;
343     return telephonyService->StopRtt(slotId);
344 }
345 
SetCallTransferInfo(const sptr<CellularCallInterface> & telephonyService) const346 int32_t CsTest::SetCallTransferInfo(const sptr<CellularCallInterface> &telephonyService) const
347 {
348     std::cout << "test SetCallTransferInfoInfo entry.\n";
349     int32_t slotId = 0;
350     std::cout << "please enter the slotId:(0   1)";
351     std::cin >> slotId;
352     CallTransferInfo callTransferInfo;
353     std::cout << "please enter the transfer type(0 - 5):";
354     int32_t type = 0;
355     std::cin >> type;
356     callTransferInfo.type = static_cast<CallTransferType>(type);
357     std::cout << "please enter the transfer setting type(0 - 4):";
358     int32_t settingType = 0;
359     std::cin >> settingType;
360     callTransferInfo.settingType = static_cast<CallTransferSettingType>(settingType);
361     std::cout << "please enter the phone number:";
362     std::cin >> callTransferInfo.transferNum;
363     return telephonyService->SetCallTransferInfo(slotId, callTransferInfo);
364 }
365 
GetCallTransferInfo(const sptr<CellularCallInterface> & telephonyService) const366 int32_t CsTest::GetCallTransferInfo(const sptr<CellularCallInterface> &telephonyService) const
367 {
368     std::cout << "test GetCallTransferInfo entry.\n";
369     int32_t slotId = 0;
370     std::cout << "please enter the slotId:(0   1)";
371     std::cin >> slotId;
372     std::cout << "please enter the transfer type(0 - 5):";
373     int32_t type = 0;
374     std::cin >> type;
375     return telephonyService->GetCallTransferInfo(slotId, static_cast<CallTransferType>(type));
376 }
377 
SetCallWaiting(const sptr<CellularCallInterface> & telephonyService) const378 int32_t CsTest::SetCallWaiting(const sptr<CellularCallInterface> &telephonyService) const
379 {
380     std::cout << "test SetCallWaiting entry.\n";
381     bool activate = true;
382     int32_t slotId = 0;
383     std::cout << "please enter the slotId:(0   1)";
384     std::cin >> slotId;
385     return telephonyService->SetCallWaiting(slotId, activate);
386 }
387 
GetCallWaiting(const sptr<CellularCallInterface> & telephonyService) const388 int32_t CsTest::GetCallWaiting(const sptr<CellularCallInterface> &telephonyService) const
389 {
390     std::cout << "test GetCallWaiting entry.\n";
391     int32_t slotId = 0;
392     std::cout << "please enter the slotId:(0   1)";
393     std::cin >> slotId;
394     return telephonyService->GetCallWaiting(slotId);
395 }
396 
SetCallRestriction(const sptr<CellularCallInterface> & telephonyService) const397 int32_t CsTest::SetCallRestriction(const sptr<CellularCallInterface> &telephonyService) const
398 {
399     std::cout << "test SetCallRestriction entry.\n";
400     int32_t slotId = 0;
401     std::cout << "please enter the slotId:(0   1)";
402     std::cin >> slotId;
403     CallRestrictionInfo info;
404     std::cout << "please enter the fac(0 - 4):";
405     int32_t fac = 0;
406     std::cin >> fac;
407     info.fac = static_cast<CallRestrictionType>(fac);
408     std::cout << "please enter the phone password:";
409     std::cin >> info.password;
410     std::cout << "please enter the mode:";
411     int32_t mode = 0;
412     std::cin >> mode;
413     info.mode = static_cast<CallRestrictionMode>(mode);
414     return telephonyService->SetCallRestriction(slotId, info);
415 }
416 
GetCallRestriction(const sptr<CellularCallInterface> & telephonyService) const417 int32_t CsTest::GetCallRestriction(const sptr<CellularCallInterface> &telephonyService) const
418 {
419     std::cout << "test GetCallRestriction entry.\n";
420     int32_t slotId = 0;
421     std::cout << "please enter the slotId:(0   1)";
422     std::cin >> slotId;
423     std::cout << "please enter the fac(0 - 4):";
424     int32_t facType = 0;
425     std::cin >> facType;
426     return telephonyService->GetCallRestriction(slotId, static_cast<CallRestrictionType>(facType));
427 }
428 
SetCallRestrictionPassword(const sptr<CellularCallInterface> & telephonyService) const429 int32_t CsTest::SetCallRestrictionPassword(const sptr<CellularCallInterface> &telephonyService) const
430 {
431     std::cout << "test SetCallRestrictionPassword entry.\n";
432     int32_t slotId = 0;
433     std::cout << "please enter the slotId:(0   1)";
434     std::cin >> slotId;
435     std::cout << "please enter the fac(0 - 4):";
436     int32_t fac = 0;
437     std::cin >> fac;
438     CallRestrictionType facType = static_cast<CallRestrictionType>(fac);
439     std::cout << "please enter the old password:";
440     char oldPassword[kMaxNumberLen + 1] = { 0 };
441     std::cin >> oldPassword;
442     std::cout << "please enter the new password:";
443     char newPassword[kMaxNumberLen + 1] = { 0 };
444     std::cin >> newPassword;
445     int32_t ret = telephonyService->SetCallRestrictionPassword(slotId, facType, oldPassword, newPassword);
446     (void)memset_s(oldPassword, sizeof(oldPassword), 0, sizeof(oldPassword));
447     (void)memset_s(newPassword, sizeof(newPassword), 0, sizeof(newPassword));
448     return ret;
449 }
450 
SetMute(const sptr<CellularCallInterface> & telephonyService) const451 int32_t CsTest::SetMute(const sptr<CellularCallInterface> &telephonyService) const
452 {
453     std::cout << "test SetMute entry.\n";
454     int32_t slotId = 0;
455     std::cout << "please enter the slotId:(0   1)";
456     std::cin >> slotId;
457     std::cout << "please enter the mute(0 - 1):";
458     int32_t mute = -1;
459     std::cin >> mute;
460     return telephonyService->SetMute(slotId, mute);
461 }
462 
GetMute(const sptr<CellularCallInterface> & telephonyService) const463 int32_t CsTest::GetMute(const sptr<CellularCallInterface> &telephonyService) const
464 {
465     std::cout << "test GetMute entry.\n";
466     int32_t slotId = 0;
467     std::cout << "please enter the slotId:(0   1)";
468     std::cin >> slotId;
469     return telephonyService->GetMute(slotId);
470 }
471 
JudgeIsEmergencyPhoneNumber()472 void CsTest::JudgeIsEmergencyPhoneNumber()
473 {
474     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
475     ASSERT_TRUE(systemAbilityMgr != nullptr);
476     auto remote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
477     ASSERT_TRUE(remote != nullptr);
478     auto telephonyService = iface_cast<CellularCallInterface>(remote);
479     ASSERT_TRUE(telephonyService != nullptr);
480 
481     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
482         return;
483     }
484     bool enabled = false;
485     int32_t successCode = 1;
486     if (HasSimCard(SIM1_SLOTID)) {
487         telephonyService->IsEmergencyPhoneNumber(SIM1_SLOTID, "499", enabled);
488         EXPECT_NE(enabled, successCode);
489         telephonyService->IsEmergencyPhoneNumber(SIM1_SLOTID, "443", enabled);
490         EXPECT_NE(enabled, successCode);
491         telephonyService->IsEmergencyPhoneNumber(SIM1_SLOTID, "356", enabled);
492         EXPECT_NE(enabled, successCode);
493         telephonyService->IsEmergencyPhoneNumber(SIM1_SLOTID, "975", enabled);
494         EXPECT_NE(enabled, successCode);
495         telephonyService->IsEmergencyPhoneNumber(SIM1_SLOTID, "783", enabled);
496         EXPECT_NE(enabled, successCode);
497         telephonyService->IsEmergencyPhoneNumber(SIM1_SLOTID, "350", enabled);
498         EXPECT_NE(enabled, successCode);
499     }
500     if (HasSimCard(SIM2_SLOTID)) {
501         telephonyService->IsEmergencyPhoneNumber(SIM2_SLOTID, "499", enabled);
502         EXPECT_NE(enabled, successCode);
503         telephonyService->IsEmergencyPhoneNumber(SIM2_SLOTID, "443", enabled);
504         EXPECT_NE(enabled, successCode);
505         telephonyService->IsEmergencyPhoneNumber(SIM2_SLOTID, "356", enabled);
506         EXPECT_NE(enabled, successCode);
507         telephonyService->IsEmergencyPhoneNumber(SIM2_SLOTID, "975", enabled);
508         EXPECT_NE(enabled, successCode);
509         telephonyService->IsEmergencyPhoneNumber(SIM2_SLOTID, "783", enabled);
510         EXPECT_NE(enabled, successCode);
511         telephonyService->IsEmergencyPhoneNumber(SIM2_SLOTID, "350", enabled);
512         EXPECT_NE(enabled, successCode);
513     }
514 }
515 
InputNumForInterface(const sptr<CellularCallInterface> & telephonyService) const516 int32_t CsTest::InputNumForInterface(const sptr<CellularCallInterface> &telephonyService) const
517 {
518     int32_t ret = -1;
519     bool loopFlag = true;
520     int32_t InputNumber = 0;
521     int32_t returnNum = 1000; // end loop variable value
522     while (loopFlag) {
523         std::cout << "\n**********Unit Test Start**********\n"
524                      "Usage: please input a cmd num:\n"
525                      "1:Dial\n2:HangUp\n3:Reject\n4:Answer\n5:HoldCall\n6:UnHoldCall\n7:SwitchCall\n"
526                      "8:IsEmergencyPhoneNumber\n10:CombineConference\n11:SeparateConference\n12:InviteToConference\n"
527                      "13:KickOutFromConference\n14:HangUpAllConnection\n"
528                      "17:RegisterCallBack\n18:UnRegisterCallBack\n100:StartDtmf\n101:StopDtmf\n102:SendDtmf\n"
529                      "104:StartRtt\n105:StopRtt\n200:SetCallTransferInfo\n201:GetCallTransferInfo\n"
530                      "203:SetCallWaiting\n204:GetCallWaiting\n205:SetCallRestriction\n"
531                      "206:GetCallRestriction\n208:SetCallRestrictionPassword\n309:SetMute\n310:GetMute\n"
532                      "1000:Exit\n"
533                      "***********************************\n"
534                      "Your choice: ";
535         std::cin >> InputNumber;
536         if (InputNumber == returnNum) {
537             std::cout << "exiting...\n";
538             break;
539         }
540         auto itFunc = requestFuncMap_.find(InputNumber);
541         if (itFunc != requestFuncMap_.end()) {
542             auto requestFunc = itFunc->second;
543             if (requestFunc != nullptr) {
544                 ret = (this->*requestFunc)(telephonyService);
545             }
546         }
547         if (ret != CELLULAR_CALL_SUCCESS) {
548             std::cout << "this execution did not return a successful value, please check.\n";
549             return ret;
550         }
551     }
552     return CELLULAR_CALL_SUCCESS;
553 }
554 
InitCallInfo(CellularCallInfo & callInfo) const555 int32_t CsTest::InitCallInfo(CellularCallInfo &callInfo) const
556 {
557     if (memset_s(&callInfo, sizeof(callInfo), 0, sizeof(callInfo)) != EOK) {
558         std::cout << "CellularCallService return, memset_s failed. \n";
559         return CELLULAR_CALL_ERROR;
560     }
561 
562     std::cout << "please enter the phone number:";
563     std::cin >> callInfo.phoneNum;
564     callInfo.videoState = 1;
565     std::cout << "please enter the call type(0:CS  1:IMS):";
566     int32_t callType = 0;
567     std::cin >> callType;
568     callInfo.callType = static_cast<CallType>(callType);
569     int32_t slotId = 0;
570     std::cout << "please enter the slotId:(0   1)";
571     std::cin >> slotId;
572     callInfo.slotId = slotId;
573     return CELLULAR_CALL_SUCCESS;
574 }
575 
576 /**
577  * @tc.number   cellular_call_cs_test_001
578  * @tc.name     Test the corresponding functions by entering commands, such as 1 -- Dial, 2 -- Hangup, 3 -- Reject, etc
579  * @tc.desc     Function test
580  */
581 HWTEST_F(CsTest, cellular_call_cs_test_001, Function | MediumTest | Level0)
582 {
583     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
584     ASSERT_TRUE(systemAbilityMgr != nullptr);
585     auto remote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
586     ASSERT_TRUE(remote != nullptr);
587     auto telephonyService = iface_cast<CellularCallInterface>(remote);
588     ASSERT_TRUE(telephonyService != nullptr);
589     std::cout << "HWTEST_F cellular_call_cs_test_001";
590 }
591 
592 /**
593  * @tc.number   cellular_call_cs_test_002
594  * @tc.name     Test the corresponding functions by entering commands, such as 1 -- Dial, 2 -- Hangup, 3 -- Reject, etc
595  * @tc.desc     Function test
596  */
597 HWTEST_F(CsTest, cellular_call_cs_test_002, Function | MediumTest | Level1)
598 {
599     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
600     ASSERT_TRUE(systemAbilityMgr != nullptr);
601     auto remote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
602     ASSERT_TRUE(remote != nullptr);
603     auto telephonyService = iface_cast<CellularCallInterface>(remote);
604     ASSERT_TRUE(telephonyService != nullptr);
605     std::cout << "HWTEST_F cellular_call_cs_test_002";
606 }
607 
608 /**
609  * @tc.number   Telephony_CallManager_SetEmergencyCallList_0101
610  * @tc.name     SetEmergencyCallList "443,356,789",test SetEmergencyCallList(),return success
611  * @tc.desc     Function test
612  */
613 HWTEST_F(CsTest, cellular_call_SetEmergencyCallList_0101, Function | MediumTest | Level3)
614 {
615     AccessToken token;
616     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
617     ASSERT_TRUE(systemAbilityMgr != nullptr);
618     auto emergencyRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
619     ASSERT_TRUE(emergencyRemote != nullptr);
620     auto telephonyService = iface_cast<CellularCallInterface>(emergencyRemote);
621     ASSERT_TRUE(telephonyService != nullptr);
622 
623     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
624         return;
625     }
626 
627     std::vector<EmergencyCall> eccVec;
628     EmergencyCall temp0 = { "499", "460", EccType::TYPE_CATEGORY, SimpresentType::TYPE_NO_CARD,
629         AbnormalServiceType::TYPE_ALL };
630     EmergencyCall temp1 = { "443", "460", EccType::TYPE_POLICE, SimpresentType::TYPE_NO_CARD,
631         AbnormalServiceType::TYPE_ALL };
632     EmergencyCall temp2 = { "356", "460", EccType::TYPE_AMBULANCE, SimpresentType::TYPE_NO_CARD,
633         AbnormalServiceType::TYPE_ALL };
634     EmergencyCall temp3 = { "783", "460", EccType::TYPE_FIRE, SimpresentType::TYPE_NO_CARD,
635         AbnormalServiceType::TYPE_ALL };
636     EmergencyCall temp4 = { "975", "460", EccType::TYPE_SEA, SimpresentType::TYPE_HAS_CARD,
637         AbnormalServiceType::TYPE_ONLY_CS };
638     EmergencyCall temp5 = { "350", "460", EccType::TYPE_MOUNTAIN, SimpresentType::TYPE_HAS_CARD,
639         AbnormalServiceType::TYPE_ALL };
640     eccVec.push_back(temp0);
641     eccVec.push_back(temp1);
642     eccVec.push_back(temp2);
643     eccVec.push_back(temp3);
644     eccVec.push_back(temp4);
645     eccVec.push_back(temp5);
646     if (HasSimCard(SIM1_SLOTID)) {
647         EXPECT_EQ(telephonyService->SetEmergencyCallList(SIM1_SLOTID, eccVec), 0);
648     }
649     if (HasSimCard(SIM2_SLOTID)) {
650         EXPECT_EQ(telephonyService->SetEmergencyCallList(SIM2_SLOTID, eccVec), 0);
651     }
652     JudgeIsEmergencyPhoneNumber();
653 }
654 
655 HWTEST_F(CsTest, cellular_call_IsOperatorConfigEmergencyCallList_0001, Function | MediumTest | Level3)
656 {
657     AccessToken token;
658     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
659     ASSERT_TRUE(systemAbilityMgr != nullptr);
660     auto operatorRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
661     ASSERT_TRUE(operatorRemote != nullptr);
662     auto telephonyService = iface_cast<CellularCallInterface>(operatorRemote);
663     ASSERT_TRUE(telephonyService != nullptr);
664 
665     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
666         return;
667     }
668     OperatorConfig opc;
669     if (HasSimCard(SIM1_SLOTID)) {
670         DelayedRefSingleton<CoreServiceClient>::GetInstance().GetOperatorConfigs(SIM1_SLOTID, opc);
671         if (opc.stringArrayValue.find(KEY_EMERGENCY_CALL_STRING_ARRAY) != opc.stringArrayValue.end()) {
672             for (auto number : opc.stringArrayValue[KEY_EMERGENCY_CALL_STRING_ARRAY]) {
673                 bool enabled = false;
674                 int32_t errorCode = telephonyService->IsEmergencyPhoneNumber(SIM1_SLOTID, number, enabled);
675                 EXPECT_EQ(TELEPHONY_SUCCESS, errorCode);
676             }
677         }
678     }
679     if (HasSimCard(SIM2_SLOTID)) {
680         DelayedRefSingleton<CoreServiceClient>::GetInstance().GetOperatorConfigs(SIM2_SLOTID, opc);
681         if (opc.stringArrayValue.find(KEY_EMERGENCY_CALL_STRING_ARRAY) != opc.stringArrayValue.end()) {
682             for (auto number : opc.stringArrayValue[KEY_EMERGENCY_CALL_STRING_ARRAY]) {
683                 bool enabled = false;
684                 int32_t errorCode = telephonyService->IsEmergencyPhoneNumber(SIM2_SLOTID, number, enabled);
685                 EXPECT_EQ(TELEPHONY_SUCCESS, errorCode);
686             }
687         }
688     }
689 }
690 
691 /**
692  * @tc.number   cellular_call_DialCall_0001
693  * @tc.name     Test for SetClip function by cs
694  * @tc.desc     Function test
695  */
696 HWTEST_F(CsTest, cellular_call_DialCall_0001, Function | MediumTest | Level2)
697 {
698     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
699         return;
700     }
701     if (HasSimCard(SIM1_SLOTID)) {
702         int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*30#");
703         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
704     }
705     if (HasSimCard(SIM2_SLOTID)) {
706         int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*30#");
707         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
708     }
709 }
710 
711 /**
712  * @tc.number   cellular_call_DialCall_0002
713  * @tc.name     Test for SetClip function by cs
714  * @tc.desc     Function test
715  */
716 HWTEST_F(CsTest, cellular_call_DialCall_0002, Function | MediumTest | Level2)
717 {
718     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
719         return;
720     }
721     if (HasSimCard(SIM1_SLOTID)) {
722         int32_t ret = TestDialCallByCs(SIM1_SLOTID, "#30#");
723         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
724     }
725     if (HasSimCard(SIM2_SLOTID)) {
726         int32_t ret = TestDialCallByCs(SIM2_SLOTID, "#30#");
727         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
728     }
729 }
730 
731 /**
732  * @tc.number   cellular_call_DialCall_0003
733  * @tc.name     Test for getClip function by cs
734  * @tc.desc     Function test
735  */
736 HWTEST_F(CsTest, cellular_call_DialCall_0003, Function | MediumTest | Level2)
737 {
738     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
739         return;
740     }
741     if (HasSimCard(SIM1_SLOTID)) {
742         int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*#30#");
743         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
744     }
745     if (HasSimCard(SIM2_SLOTID)) {
746         int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*#30#");
747         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
748     }
749 }
750 
751 /**
752  * @tc.number   cellular_call_DialCall_0004
753  * @tc.name     Test for SetClir function by cs
754  * @tc.desc     Function test
755  */
756 HWTEST_F(CsTest, cellular_call_DialCall_0004, Function | MediumTest | Level2)
757 {
758     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
759         return;
760     }
761     if (HasSimCard(SIM1_SLOTID)) {
762         int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*31#");
763         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
764     }
765     if (HasSimCard(SIM2_SLOTID)) {
766         int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*31#");
767         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
768     }
769 }
770 
771 /**
772  * @tc.number   cellular_call_DialCall_0005
773  * @tc.name     Test for SetClir function by cs
774  * @tc.desc     Function test
775  */
776 HWTEST_F(CsTest, cellular_call_DialCall_0005, Function | MediumTest | Level2)
777 {
778     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
779         return;
780     }
781     if (HasSimCard(SIM1_SLOTID)) {
782         int32_t ret = TestDialCallByCs(SIM1_SLOTID, "#31#");
783         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
784     }
785     if (HasSimCard(SIM2_SLOTID)) {
786         int32_t ret = TestDialCallByCs(SIM2_SLOTID, "#31#");
787         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
788     }
789 }
790 
791 /**
792  * @tc.number   cellular_call_DialCall_0006
793  * @tc.name     Test for GetClir function by cs
794  * @tc.desc     Function test
795  */
796 HWTEST_F(CsTest, cellular_call_DialCall_0006, Function | MediumTest | Level2)
797 {
798     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
799         return;
800     }
801     if (HasSimCard(SIM1_SLOTID)) {
802         int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*#31#");
803         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
804     }
805     if (HasSimCard(SIM2_SLOTID)) {
806         int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*#31#");
807         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
808     }
809 }
810 
811 /**
812  * @tc.number   cellular_call_DialCall_0007
813  * @tc.name     Test for SetCallTransfer function by cs
814  * @tc.desc     Function test
815  */
816 HWTEST_F(CsTest, cellular_call_DialCall_0007, Function | MediumTest | Level2)
817 {
818     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
819         return;
820     }
821     if (HasSimCard(SIM1_SLOTID)) {
822         int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*21#");
823         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
824     }
825     if (HasSimCard(SIM2_SLOTID)) {
826         int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*21#");
827         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
828     }
829 }
830 
831 /**
832  * @tc.number   cellular_call_DialCall_0008
833  * @tc.name     Test for SetCallTransfer function by cs
834  * @tc.desc     Function test
835  */
836 HWTEST_F(CsTest, cellular_call_DialCall_0008, Function | MediumTest | Level2)
837 {
838     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
839         return;
840     }
841     if (HasSimCard(SIM1_SLOTID)) {
842         int32_t ret = TestDialCallByCs(SIM1_SLOTID, "#21#");
843         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
844     }
845     if (HasSimCard(SIM2_SLOTID)) {
846         int32_t ret = TestDialCallByCs(SIM2_SLOTID, "#21#");
847         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
848     }
849 }
850 
851 /**
852  * @tc.number   cellular_call_DialCall_0009
853  * @tc.name     Test for GetCallTransfer function by cs
854  * @tc.desc     Function test
855  */
856 HWTEST_F(CsTest, cellular_call_DialCall_0009, Function | MediumTest | Level2)
857 {
858     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
859         return;
860     }
861     if (HasSimCard(SIM1_SLOTID)) {
862         int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*#21#");
863         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
864     }
865     if (HasSimCard(SIM2_SLOTID)) {
866         int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*#21#");
867         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
868     }
869 }
870 
871 /**
872  * @tc.number   cellular_call_DialCall_0010
873  * @tc.name     Test for SetCallRestriction function by cs
874  * @tc.desc     Function test
875  */
876 HWTEST_F(CsTest, cellular_call_DialCall_0010, Function | MediumTest | Level2)
877 {
878     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
879         return;
880     }
881     if (HasSimCard(SIM1_SLOTID)) {
882         int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*33#");
883         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
884     }
885     if (HasSimCard(SIM2_SLOTID)) {
886         int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*33#");
887         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
888     }
889 }
890 
891 /**
892  * @tc.number   cellular_call_DialCall_0011
893  * @tc.name     Test for SetCallRestriction function by cs
894  * @tc.desc     Function test
895  */
896 HWTEST_F(CsTest, cellular_call_DialCall_0011, Function | MediumTest | Level2)
897 {
898     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
899         return;
900     }
901     if (HasSimCard(SIM1_SLOTID)) {
902         int32_t ret = TestDialCallByCs(SIM1_SLOTID, "#33#");
903         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
904     }
905     if (HasSimCard(SIM2_SLOTID)) {
906         int32_t ret = TestDialCallByCs(SIM2_SLOTID, "#33#");
907         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
908     }
909 }
910 
911 /**
912  * @tc.number   cellular_call_DialCall_0012
913  * @tc.name     Test for GetCallRestriction function by cs
914  * @tc.desc     Function test
915  */
916 HWTEST_F(CsTest, cellular_call_DialCall_0012, Function | MediumTest | Level2)
917 {
918     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
919         return;
920     }
921     if (HasSimCard(SIM1_SLOTID)) {
922         int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*#33#");
923         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
924     }
925     if (HasSimCard(SIM2_SLOTID)) {
926         int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*#33#");
927         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
928     }
929 }
930 
931 /**
932  * @tc.number   cellular_call_DialCall_0013
933  * @tc.name     Test for SetCallWaiting function by cs
934  * @tc.desc     Function test
935  */
936 HWTEST_F(CsTest, cellular_call_DialCall_0013, Function | MediumTest | Level2)
937 {
938     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
939         return;
940     }
941     if (HasSimCard(SIM1_SLOTID)) {
942         int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*43#");
943         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
944     }
945     if (HasSimCard(SIM2_SLOTID)) {
946         int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*43#");
947         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
948     }
949 }
950 
951 /**
952  * @tc.number   cellular_call_DialCall_0014
953  * @tc.name     Test for SetCallWaiting function by cs
954  * @tc.desc     Function test
955  */
956 HWTEST_F(CsTest, cellular_call_DialCall_0014, Function | MediumTest | Level2)
957 {
958     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
959         return;
960     }
961     if (HasSimCard(SIM1_SLOTID)) {
962         int32_t ret = TestDialCallByCs(SIM1_SLOTID, "#43#");
963         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
964     }
965     if (HasSimCard(SIM2_SLOTID)) {
966         int32_t ret = TestDialCallByCs(SIM2_SLOTID, "#43#");
967         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
968     }
969 }
970 
971 /**
972  * @tc.number   cellular_call_DialCall_0015
973  * @tc.name     Test for GetCallWaiting function by cs
974  * @tc.desc     Function test
975  */
976 HWTEST_F(CsTest, cellular_call_DialCall_0015, Function | MediumTest | Level2)
977 {
978     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
979         return;
980     }
981     if (HasSimCard(SIM1_SLOTID)) {
982         int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*#43#");
983         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
984     }
985     if (HasSimCard(SIM2_SLOTID)) {
986         int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*#43#");
987         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
988     }
989 }
990 
991 /**
992  * @tc.number   cellular_call_DialCall_0016
993  * @tc.name     Test for AlterPinPassword function by cs
994  * @tc.desc     Function test
995  */
996 HWTEST_F(CsTest, cellular_call_DialCall_0016, Function | MediumTest | Level2)
997 {
998     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
999         return;
1000     }
1001     if (HasSimCard(SIM1_SLOTID)) {
1002         int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*04#");
1003         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1004     }
1005     if (HasSimCard(SIM2_SLOTID)) {
1006         int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*04#");
1007         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1008     }
1009 }
1010 
1011 /**
1012  * @tc.number   cellular_call_DialCall_0017
1013  * @tc.name     Test for UnlockPuk function by cs
1014  * @tc.desc     Function test
1015  */
1016 HWTEST_F(CsTest, cellular_call_DialCall_0017, Function | MediumTest | Level2)
1017 {
1018     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1019         return;
1020     }
1021     if (HasSimCard(SIM1_SLOTID)) {
1022         int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*05#");
1023         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1024     }
1025     if (HasSimCard(SIM2_SLOTID)) {
1026         int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*05#");
1027         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1028     }
1029 }
1030 
1031 /**
1032  * @tc.number   cellular_call_DialCall_0018
1033  * @tc.name     Test for AlterPin2Password function by cs
1034  * @tc.desc     Function test
1035  */
1036 HWTEST_F(CsTest, cellular_call_DialCall_0018, Function | MediumTest | Level2)
1037 {
1038     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1039         return;
1040     }
1041     if (HasSimCard(SIM1_SLOTID)) {
1042         int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*042#");
1043         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1044     }
1045     if (HasSimCard(SIM2_SLOTID)) {
1046         int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*042#");
1047         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1048     }
1049 }
1050 
1051 /**
1052  * @tc.number   cellular_call_DialCall_0019
1053  * @tc.name     Test for UnlockPuk2 function by cs
1054  * @tc.desc     Function test
1055  */
1056 HWTEST_F(CsTest, cellular_call_DialCall_0019, Function | MediumTest | Level2)
1057 {
1058     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1059         return;
1060     }
1061     if (HasSimCard(SIM1_SLOTID)) {
1062         int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*052#");
1063         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1064     }
1065     if (HasSimCard(SIM2_SLOTID)) {
1066         int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*052#");
1067         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1068     }
1069 }
1070 
1071 /**
1072  * @tc.number   cellular_call_DialCall_0020
1073  * @tc.name     Test for SendUssd function by cs
1074  * @tc.desc     Function test
1075  */
1076 HWTEST_F(CsTest, cellular_call_DialCall_0020, Function | MediumTest | Level2)
1077 {
1078     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1079         return;
1080     }
1081     if (HasSimCard(SIM1_SLOTID)) {
1082         int32_t ret = TestDialCallByCs(SIM1_SLOTID, "*4444#");
1083         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1084     }
1085     if (HasSimCard(SIM2_SLOTID)) {
1086         int32_t ret = TestDialCallByCs(SIM2_SLOTID, "*4444#");
1087         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1088     }
1089 }
1090 
1091 /**
1092  * @tc.number   cellular_call_DialCall_0021
1093  * @tc.name     Test for dial function with invalid slot by cs
1094  * @tc.desc     Function test
1095  */
1096 HWTEST_F(CsTest, cellular_call_DialCall_0021, Function | MediumTest | Level2)
1097 {
1098     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1099         return;
1100     }
1101     if (HasSimCard(SIM1_SLOTID)) {
1102         int32_t ret = TestDialCallByCs(INVALID_SLOTID, PHONE_NUMBER);
1103         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1104     }
1105     if (HasSimCard(SIM2_SLOTID)) {
1106         int32_t ret = TestDialCallByCs(INVALID_SLOTID, PHONE_NUMBER);
1107         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1108     }
1109 }
1110 
1111 /**
1112  * @tc.number   cellular_call_HangUpCall_0001
1113  * @tc.name     Test for HangUp function by cs
1114  * @tc.desc     Function test
1115  */
1116 HWTEST_F(CsTest, cellular_call_HangUpCall_0001, Function | MediumTest | Level2)
1117 {
1118     AccessToken token;
1119     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1120     ASSERT_TRUE(systemAbilityMgr != nullptr);
1121     auto hangUpCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1122     ASSERT_TRUE(hangUpCallRemote != nullptr);
1123     auto telephonyService = iface_cast<CellularCallInterface>(hangUpCallRemote);
1124     ASSERT_TRUE(telephonyService != nullptr);
1125     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1126         return;
1127     }
1128     CellularCallInfo hangUpCallInfo;
1129     if (HasSimCard(SIM1_SLOTID)) {
1130         int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, hangUpCallInfo);
1131         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1132         ret = telephonyService->HangUp(hangUpCallInfo, CallSupplementType::TYPE_DEFAULT);
1133         EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1134         ret = telephonyService->HangUp(hangUpCallInfo, CallSupplementType::TYPE_HANG_UP_ACTIVE);
1135         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1136     }
1137     if (HasSimCard(SIM2_SLOTID)) {
1138         int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, hangUpCallInfo);
1139         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1140         ret = telephonyService->HangUp(hangUpCallInfo, CallSupplementType::TYPE_DEFAULT);
1141         EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1142         ret = telephonyService->HangUp(hangUpCallInfo, CallSupplementType::TYPE_HANG_UP_ACTIVE);
1143         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1144     }
1145 }
1146 
1147 /**
1148  * @tc.number   cellular_call_HangUpCall_0002
1149  * @tc.name     Test for HangUp function with invalid slot by cs
1150  * @tc.desc     Function test
1151  */
1152 HWTEST_F(CsTest, cellular_call_HangUpCall_0002, Function | MediumTest | Level2)
1153 {
1154     AccessToken token;
1155     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1156         return;
1157     }
1158     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1159     ASSERT_TRUE(systemAbilityMgr != nullptr);
1160     auto hangUpCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1161     ASSERT_TRUE(hangUpCallRemote != nullptr);
1162     auto telephonyService = iface_cast<CellularCallInterface>(hangUpCallRemote);
1163     ASSERT_TRUE(telephonyService != nullptr);
1164     if (HasSimCard(SIM1_SLOTID)) {
1165         CellularCallInfo hangUpCallInfo;
1166         int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, hangUpCallInfo);
1167         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1168         ret = telephonyService->HangUp(hangUpCallInfo, CallSupplementType::TYPE_DEFAULT);
1169         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1170     }
1171     if (HasSimCard(SIM2_SLOTID)) {
1172         CellularCallInfo hangUpCallInfo;
1173         int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, hangUpCallInfo);
1174         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1175         ret = telephonyService->HangUp(hangUpCallInfo, CallSupplementType::TYPE_DEFAULT);
1176         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1177     }
1178 }
1179 
1180 /**
1181  * @tc.number   cellular_call_AnswerCall_0001
1182  * @tc.name     Test for answer function by cs
1183  * @tc.desc     Function test
1184  */
1185 HWTEST_F(CsTest, cellular_call_AnswerCall_0001, Function | MediumTest | Level2)
1186 {
1187     AccessToken token;
1188     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1189     ASSERT_TRUE(systemAbilityMgr != nullptr);
1190     auto answerCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1191     ASSERT_TRUE(answerCallRemote != nullptr);
1192     auto telephonyService = iface_cast<CellularCallInterface>(answerCallRemote);
1193     ASSERT_TRUE(telephonyService != nullptr);
1194     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1195         return;
1196     }
1197     if (HasSimCard(SIM1_SLOTID)) {
1198         CellularCallInfo answerCallInfo;
1199         int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, answerCallInfo);
1200         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1201         ret = telephonyService->Answer(answerCallInfo);
1202         EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1203     }
1204     if (HasSimCard(SIM2_SLOTID)) {
1205         CellularCallInfo answerCallInfo;
1206         int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, answerCallInfo);
1207         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1208         ret = telephonyService->Answer(answerCallInfo);
1209         EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1210     }
1211 }
1212 
1213 /**
1214  * @tc.number   cellular_call_AnswerCall_0002
1215  * @tc.name     Test for answer function with invalid slot by cs
1216  * @tc.desc     Function test
1217  */
1218 HWTEST_F(CsTest, cellular_call_AnswerCall_0002, Function | MediumTest | Level2)
1219 {
1220     AccessToken token;
1221     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1222         return;
1223     }
1224     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1225     ASSERT_TRUE(systemAbilityMgr != nullptr);
1226     auto answerCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1227     ASSERT_TRUE(answerCallRemote != nullptr);
1228     auto telephonyService = iface_cast<CellularCallInterface>(answerCallRemote);
1229     ASSERT_TRUE(telephonyService != nullptr);
1230     if (HasSimCard(SIM1_SLOTID)) {
1231         CellularCallInfo answerCallInfo;
1232         int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, answerCallInfo);
1233         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1234         ret = telephonyService->Answer(answerCallInfo);
1235         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1236     }
1237     if (HasSimCard(SIM2_SLOTID)) {
1238         CellularCallInfo answerCallInfo;
1239         int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, answerCallInfo);
1240         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1241         ret = telephonyService->Answer(answerCallInfo);
1242         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1243     }
1244 }
1245 
1246 /**
1247  * @tc.number   cellular_call_RejectCall_0001
1248  * @tc.name     Test for reject function by cs
1249  * @tc.desc     Function test
1250  */
1251 HWTEST_F(CsTest, cellular_call_RejectCall_0001, Function | MediumTest | Level2)
1252 {
1253     AccessToken token;
1254     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1255     ASSERT_TRUE(systemAbilityMgr != nullptr);
1256     auto rejectCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1257     ASSERT_TRUE(rejectCallRemote != nullptr);
1258     auto telephonyService = iface_cast<CellularCallInterface>(rejectCallRemote);
1259     ASSERT_TRUE(telephonyService != nullptr);
1260     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1261         return;
1262     }
1263     if (HasSimCard(SIM1_SLOTID)) {
1264         CellularCallInfo rejectCallInfo;
1265         int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, rejectCallInfo);
1266         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1267         ret = telephonyService->Reject(rejectCallInfo);
1268         EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1269     }
1270     if (HasSimCard(SIM2_SLOTID)) {
1271         CellularCallInfo rejectCallInfo;
1272         int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, rejectCallInfo);
1273         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1274         ret = telephonyService->Reject(rejectCallInfo);
1275         EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1276     }
1277 }
1278 
1279 /**
1280  * @tc.number   cellular_call_RejectCall_0002
1281  * @tc.name     Test for reject function with invalid slot by cs
1282  * @tc.desc     Function test
1283  */
1284 HWTEST_F(CsTest, cellular_call_RejectCall_0002, Function | MediumTest | Level2)
1285 {
1286     AccessToken token;
1287     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1288         return;
1289     }
1290     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1291     ASSERT_TRUE(systemAbilityMgr != nullptr);
1292     auto rejectCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1293     ASSERT_TRUE(rejectCallRemote != nullptr);
1294     auto telephonyService = iface_cast<CellularCallInterface>(rejectCallRemote);
1295     ASSERT_TRUE(telephonyService != nullptr);
1296     if (HasSimCard(SIM1_SLOTID)) {
1297         CellularCallInfo rejectCallInfo;
1298         int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, rejectCallInfo);
1299         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1300         ret = telephonyService->Reject(rejectCallInfo);
1301         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1302     }
1303     if (HasSimCard(SIM2_SLOTID)) {
1304         CellularCallInfo rejectCallInfo;
1305         int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, rejectCallInfo);
1306         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1307         ret = telephonyService->Reject(rejectCallInfo);
1308         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1309     }
1310 }
1311 
1312 /**
1313  * @tc.number   cellular_call_HoldCall_0001
1314  * @tc.name     Test for hold call function by cs
1315  * @tc.desc     Function test
1316  */
1317 HWTEST_F(CsTest, cellular_call_HoldCall_0001, Function | MediumTest | Level2)
1318 {
1319     AccessToken token;
1320     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1321     ASSERT_TRUE(systemAbilityMgr != nullptr);
1322     auto holdCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1323     ASSERT_TRUE(holdCallRemote != nullptr);
1324     auto telephonyService = iface_cast<CellularCallInterface>(holdCallRemote);
1325     ASSERT_TRUE(telephonyService != nullptr);
1326     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1327         return;
1328     }
1329     if (HasSimCard(SIM1_SLOTID)) {
1330         CellularCallInfo holdCallInfo;
1331         int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, holdCallInfo);
1332         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1333         ret = telephonyService->HoldCall(holdCallInfo);
1334         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1335     }
1336     if (HasSimCard(SIM2_SLOTID)) {
1337         CellularCallInfo holdCallInfo;
1338         int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, holdCallInfo);
1339         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1340         ret = telephonyService->HoldCall(holdCallInfo);
1341         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1342     }
1343 }
1344 
1345 /**
1346  * @tc.number   cellular_call_HoldCall_0002
1347  * @tc.name     Test for hold function with invalid slot by cs
1348  * @tc.desc     Function test
1349  */
1350 HWTEST_F(CsTest, cellular_call_HoldCall_0002, Function | MediumTest | Level2)
1351 {
1352     AccessToken token;
1353     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1354         return;
1355     }
1356     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1357     ASSERT_TRUE(systemAbilityMgr != nullptr);
1358     auto holdCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1359     ASSERT_TRUE(holdCallRemote != nullptr);
1360     auto telephonyService = iface_cast<CellularCallInterface>(holdCallRemote);
1361     ASSERT_TRUE(telephonyService != nullptr);
1362     if (HasSimCard(SIM1_SLOTID)) {
1363         CellularCallInfo holdCallInfo;
1364         int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, holdCallInfo);
1365         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1366         ret = telephonyService->HoldCall(holdCallInfo);
1367         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1368     }
1369     if (HasSimCard(SIM2_SLOTID)) {
1370         CellularCallInfo holdCallInfo;
1371         int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, holdCallInfo);
1372         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1373         ret = telephonyService->HoldCall(holdCallInfo);
1374         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1375     }
1376 }
1377 
1378 /**
1379  * @tc.number   cellular_call_UnHoldCall_0001
1380  * @tc.name     Test for unhold call function by cs
1381  * @tc.desc     Function test
1382  */
1383 HWTEST_F(CsTest, cellular_call_UnHoldCall_0001, Function | MediumTest | Level2)
1384 {
1385     AccessToken token;
1386     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1387     ASSERT_TRUE(systemAbilityMgr != nullptr);
1388     auto unHoldCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1389     ASSERT_TRUE(unHoldCallRemote != nullptr);
1390     auto telephonyService = iface_cast<CellularCallInterface>(unHoldCallRemote);
1391     ASSERT_TRUE(telephonyService != nullptr);
1392     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1393         return;
1394     }
1395     if (HasSimCard(SIM1_SLOTID)) {
1396         CellularCallInfo unHoldCallInfo;
1397         int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, unHoldCallInfo);
1398         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1399         ret = telephonyService->UnHoldCall(unHoldCallInfo);
1400         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1401     }
1402     if (HasSimCard(SIM2_SLOTID)) {
1403         CellularCallInfo unHoldCallInfo;
1404         int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, unHoldCallInfo);
1405         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1406         ret = telephonyService->UnHoldCall(unHoldCallInfo);
1407         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1408     }
1409 }
1410 
1411 /**
1412  * @tc.number   cellular_call_UnHoldCall_0002
1413  * @tc.name     Test for unhold function with invalid slot by cs
1414  * @tc.desc     Function test
1415  */
1416 HWTEST_F(CsTest, cellular_call_UnHoldCall_0002, Function | MediumTest | Level2)
1417 {
1418     AccessToken token;
1419     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1420         return;
1421     }
1422     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1423     ASSERT_TRUE(systemAbilityMgr != nullptr);
1424     auto unHoldCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1425     ASSERT_TRUE(unHoldCallRemote != nullptr);
1426     auto telephonyService = iface_cast<CellularCallInterface>(unHoldCallRemote);
1427     ASSERT_TRUE(telephonyService != nullptr);
1428     if (HasSimCard(SIM1_SLOTID)) {
1429         CellularCallInfo unHoldCallInfo;
1430         int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, unHoldCallInfo);
1431         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1432         ret = telephonyService->UnHoldCall(unHoldCallInfo);
1433         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1434     }
1435     if (HasSimCard(SIM2_SLOTID)) {
1436         CellularCallInfo unHoldCallInfo;
1437         int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, unHoldCallInfo);
1438         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1439         ret = telephonyService->UnHoldCall(unHoldCallInfo);
1440         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1441     }
1442 }
1443 
1444 /**
1445  * @tc.number   cellular_call_SwitchCall_0001
1446  * @tc.name     Test for switch call function by cs
1447  * @tc.desc     Function test
1448  */
1449 HWTEST_F(CsTest, cellular_call_SwitchCall_0001, Function | MediumTest | Level2)
1450 {
1451     AccessToken token;
1452     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1453     ASSERT_TRUE(systemAbilityMgr != nullptr);
1454     auto switchCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1455     ASSERT_TRUE(switchCallRemote != nullptr);
1456     auto telephonyService = iface_cast<CellularCallInterface>(switchCallRemote);
1457     ASSERT_TRUE(telephonyService != nullptr);
1458     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1459         return;
1460     }
1461     if (HasSimCard(SIM1_SLOTID)) {
1462         CellularCallInfo switchCallInfo;
1463         int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, switchCallInfo);
1464         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1465         ret = telephonyService->SwitchCall(switchCallInfo);
1466         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1467     }
1468     if (HasSimCard(SIM2_SLOTID)) {
1469         CellularCallInfo switchCallInfo;
1470         int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, switchCallInfo);
1471         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1472         ret = telephonyService->SwitchCall(switchCallInfo);
1473         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1474     }
1475 }
1476 
1477 /**
1478  * @tc.number   cellular_call_SwitchCall_0002
1479  * @tc.name     Test for switch function with invalid slot by cs
1480  * @tc.desc     Function test
1481  */
1482 HWTEST_F(CsTest, cellular_call_SwitchCall_0002, Function | MediumTest | Level2)
1483 {
1484     AccessToken token;
1485     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1486         return;
1487     }
1488     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1489     ASSERT_TRUE(systemAbilityMgr != nullptr);
1490     auto switchCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1491     ASSERT_TRUE(switchCallRemote != nullptr);
1492     auto telephonyService = iface_cast<CellularCallInterface>(switchCallRemote);
1493     ASSERT_TRUE(telephonyService != nullptr);
1494     if (HasSimCard(SIM1_SLOTID)) {
1495         CellularCallInfo switchCallInfo;
1496         int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, switchCallInfo);
1497         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1498         ret = telephonyService->SwitchCall(switchCallInfo);
1499         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1500     }
1501     if (HasSimCard(SIM2_SLOTID)) {
1502         CellularCallInfo switchCallInfo;
1503         int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, switchCallInfo);
1504         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1505         ret = telephonyService->SwitchCall(switchCallInfo);
1506         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1507     }
1508 }
1509 
1510 /**
1511  * @tc.number   cellular_call_CombineConference_0001
1512  * @tc.name     Test for combineConference function by cs
1513  * @tc.desc     Function test
1514  */
1515 HWTEST_F(CsTest, cellular_call_CombineConference_0001, Function | MediumTest | Level2)
1516 {
1517     AccessToken token;
1518     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1519     ASSERT_TRUE(systemAbilityMgr != nullptr);
1520     auto combineRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1521     ASSERT_TRUE(combineRemote != nullptr);
1522     auto telephonyService = iface_cast<CellularCallInterface>(combineRemote);
1523     ASSERT_TRUE(telephonyService != nullptr);
1524     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1525         return;
1526     }
1527     if (HasSimCard(SIM1_SLOTID)) {
1528         CellularCallInfo conferenceCallInfo;
1529         int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, conferenceCallInfo);
1530         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1531         ret = telephonyService->CombineConference(conferenceCallInfo);
1532         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1533     }
1534     if (HasSimCard(SIM2_SLOTID)) {
1535         CellularCallInfo conferenceCallInfo;
1536         int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, conferenceCallInfo);
1537         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1538         ret = telephonyService->CombineConference(conferenceCallInfo);
1539         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1540     }
1541 }
1542 
1543 /**
1544  * @tc.number   cellular_call_CombineConference_0002
1545  * @tc.name     Test for combineConference function with invalid slot by cs
1546  * @tc.desc     Function test
1547  */
1548 HWTEST_F(CsTest, cellular_call_CombineConference_0002, Function | MediumTest | Level2)
1549 {
1550     AccessToken token;
1551     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1552         return;
1553     }
1554     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1555     ASSERT_TRUE(systemAbilityMgr != nullptr);
1556     auto combineRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1557     ASSERT_TRUE(combineRemote != nullptr);
1558     auto telephonyService = iface_cast<CellularCallInterface>(combineRemote);
1559     ASSERT_TRUE(telephonyService != nullptr);
1560     if (HasSimCard(SIM1_SLOTID)) {
1561         CellularCallInfo conferenceCallInfo;
1562         int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, conferenceCallInfo);
1563         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1564         ret = telephonyService->CombineConference(conferenceCallInfo);
1565         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1566     }
1567     if (HasSimCard(SIM2_SLOTID)) {
1568         CellularCallInfo conferenceCallInfo;
1569         int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, conferenceCallInfo);
1570         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1571         ret = telephonyService->CombineConference(conferenceCallInfo);
1572         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1573     }
1574 }
1575 
1576 /**
1577  * @tc.number   cellular_call_SeparateConference_0001
1578  * @tc.name     Test for separateConference function by cs
1579  * @tc.desc     Function test
1580  */
1581 HWTEST_F(CsTest, cellular_call_SeparateConference_0001, Function | MediumTest | Level2)
1582 {
1583     AccessToken token;
1584     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1585     ASSERT_TRUE(systemAbilityMgr != nullptr);
1586     auto separateRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1587     ASSERT_TRUE(separateRemote != nullptr);
1588     auto telephonyService = iface_cast<CellularCallInterface>(separateRemote);
1589     ASSERT_TRUE(telephonyService != nullptr);
1590     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1591         return;
1592     }
1593     if (HasSimCard(SIM1_SLOTID)) {
1594         CellularCallInfo callInfo;
1595         int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, callInfo);
1596         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1597         ret = telephonyService->SeparateConference(callInfo);
1598         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1599     }
1600     if (HasSimCard(SIM2_SLOTID)) {
1601         CellularCallInfo callInfo;
1602         int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, callInfo);
1603         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1604         ret = telephonyService->SeparateConference(callInfo);
1605         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1606     }
1607 }
1608 
1609 /**
1610  * @tc.number   cellular_call_SeparateConference_0002
1611  * @tc.name     Test for separateConference function with invalid slot by cs
1612  * @tc.desc     Function test
1613  */
1614 HWTEST_F(CsTest, cellular_call_SeparateConference_0002, Function | MediumTest | Level2)
1615 {
1616     AccessToken token;
1617     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1618         return;
1619     }
1620     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1621     ASSERT_TRUE(systemAbilityMgr != nullptr);
1622     auto separateRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1623     ASSERT_TRUE(separateRemote != nullptr);
1624     auto telephonyService = iface_cast<CellularCallInterface>(separateRemote);
1625     ASSERT_TRUE(telephonyService != nullptr);
1626     if (HasSimCard(SIM1_SLOTID)) {
1627         CellularCallInfo separateCallInfo;
1628         int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, separateCallInfo);
1629         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1630         ret = telephonyService->SeparateConference(separateCallInfo);
1631         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1632     }
1633     if (HasSimCard(SIM2_SLOTID)) {
1634         CellularCallInfo separateCallInfo;
1635         int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, separateCallInfo);
1636         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1637         ret = telephonyService->SeparateConference(separateCallInfo);
1638         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1639     }
1640 }
1641 
1642 /**
1643  * @tc.number   cellular_call_KickOutFromConference_0001
1644  * @tc.name     Test for separateConference function by cs
1645  * @tc.desc     Function test
1646  */
1647 HWTEST_F(CsTest, cellular_call_KickOutFromConference_0001, Function | MediumTest | Level2)
1648 {
1649     AccessToken token;
1650     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1651     ASSERT_TRUE(systemAbilityMgr != nullptr);
1652     auto kickOutRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1653     ASSERT_TRUE(kickOutRemote != nullptr);
1654     auto telephonyService = iface_cast<CellularCallInterface>(kickOutRemote);
1655     ASSERT_TRUE(telephonyService != nullptr);
1656     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1657         return;
1658     }
1659     if (HasSimCard(SIM1_SLOTID)) {
1660         CellularCallInfo kickOutCallInfo;
1661         int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, kickOutCallInfo);
1662         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1663         ret = telephonyService->KickOutFromConference(kickOutCallInfo);
1664         EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1665     }
1666     if (HasSimCard(SIM2_SLOTID)) {
1667         CellularCallInfo kickOutCallInfo;
1668         int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, kickOutCallInfo);
1669         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1670         ret = telephonyService->KickOutFromConference(kickOutCallInfo);
1671         EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1672     }
1673 }
1674 
1675 /**
1676  * @tc.number   cellular_call_KickOutFromConference_0002
1677  * @tc.name     Test for KickOutFromConference function with invalid slot by cs
1678  * @tc.desc     Function test
1679  */
1680 HWTEST_F(CsTest, cellular_call_KickOutFromConference_0002, Function | MediumTest | Level2)
1681 {
1682     AccessToken token;
1683     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1684         return;
1685     }
1686     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1687     ASSERT_TRUE(systemAbilityMgr != nullptr);
1688     auto kickOutRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1689     ASSERT_TRUE(kickOutRemote != nullptr);
1690     auto telephonyService = iface_cast<CellularCallInterface>(kickOutRemote);
1691     ASSERT_TRUE(telephonyService != nullptr);
1692     if (HasSimCard(SIM1_SLOTID)) {
1693         CellularCallInfo kickOutCallInfo;
1694         int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, kickOutCallInfo);
1695         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1696         ret = telephonyService->KickOutFromConference(kickOutCallInfo);
1697         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1698     }
1699     if (HasSimCard(SIM2_SLOTID)) {
1700         CellularCallInfo kickOutCallInfo;
1701         int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, kickOutCallInfo);
1702         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1703         ret = telephonyService->KickOutFromConference(kickOutCallInfo);
1704         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1705     }
1706 }
1707 
1708 /**
1709  * @tc.number   cellular_call_HangUpAllConnection_0001
1710  * @tc.name     Test for hangup all connection function by cs
1711  * @tc.desc     Function test
1712  */
1713 HWTEST_F(CsTest, cellular_call_HangUpAllConnection_0001, Function | MediumTest | Level2)
1714 {
1715     AccessToken token;
1716     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1717     ASSERT_TRUE(systemAbilityMgr != nullptr);
1718     auto hangUpAllConRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1719     ASSERT_TRUE(hangUpAllConRemote != nullptr);
1720     auto telephonyService = iface_cast<CellularCallInterface>(hangUpAllConRemote);
1721     ASSERT_TRUE(telephonyService != nullptr);
1722     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1723         return;
1724     }
1725     if (HasSimCard(SIM1_SLOTID)) {
1726         int32_t ret = telephonyService->HangUpAllConnection();
1727         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1728     }
1729     if (HasSimCard(SIM2_SLOTID)) {
1730         int32_t ret = telephonyService->HangUpAllConnection();
1731         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1732     }
1733 }
1734 
1735 /**
1736  * @tc.number   cellular_call_StartDtmf_0001
1737  * @tc.name     Test for startDtmf function by cs
1738  * @tc.desc     Function test
1739  */
1740 HWTEST_F(CsTest, cellular_call_StartDtmf_0001, Function | MediumTest | Level2)
1741 {
1742     AccessToken token;
1743     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1744     ASSERT_TRUE(systemAbilityMgr != nullptr);
1745     auto startDtmfRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1746     ASSERT_TRUE(startDtmfRemote != nullptr);
1747     auto telephonyService = iface_cast<CellularCallInterface>(startDtmfRemote);
1748     ASSERT_TRUE(telephonyService != nullptr);
1749     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1750         return;
1751     }
1752     if (HasSimCard(SIM1_SLOTID)) {
1753         CellularCallInfo callInfo;
1754         int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, callInfo);
1755         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1756         char code = '1';
1757         ret = telephonyService->StartDtmf(code, callInfo);
1758         EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1759     }
1760     if (HasSimCard(SIM2_SLOTID)) {
1761         CellularCallInfo callInfo;
1762         int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, callInfo);
1763         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1764         char code = '1';
1765         ret = telephonyService->StartDtmf(code, callInfo);
1766         EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1767     }
1768 }
1769 
1770 /**
1771  * @tc.number   cellular_call_StartDtmf_0002
1772  * @tc.name     Test for startDtmf function with invalid slot by cs
1773  * @tc.desc     Function test
1774  */
1775 HWTEST_F(CsTest, cellular_call_StartDtmf_0002, Function | MediumTest | Level2)
1776 {
1777     AccessToken token;
1778     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1779         return;
1780     }
1781     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1782     ASSERT_TRUE(systemAbilityMgr != nullptr);
1783     auto startDtmfRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1784     ASSERT_TRUE(startDtmfRemote != nullptr);
1785     auto telephonyService = iface_cast<CellularCallInterface>(startDtmfRemote);
1786     ASSERT_TRUE(telephonyService != nullptr);
1787     CellularCallInfo callInfo;
1788     if (HasSimCard(SIM1_SLOTID)) {
1789         int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, callInfo);
1790         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1791         char code = '1';
1792         ret = telephonyService->StartDtmf(code, callInfo);
1793         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1794     }
1795     if (HasSimCard(SIM2_SLOTID)) {
1796         int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, callInfo);
1797         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1798         char code = '1';
1799         ret = telephonyService->StartDtmf(code, callInfo);
1800         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1801     }
1802 }
1803 
1804 /**
1805  * @tc.number   cellular_call_StopDtmf_0001
1806  * @tc.name     Test for stopDtmf function by cs
1807  * @tc.desc     Function test
1808  */
1809 HWTEST_F(CsTest, cellular_call_StopDtmf_0001, Function | MediumTest | Level2)
1810 {
1811     AccessToken token;
1812     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1813     ASSERT_TRUE(systemAbilityMgr != nullptr);
1814     auto stopDtmfRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1815     ASSERT_TRUE(stopDtmfRemote != nullptr);
1816     auto telephonyService = iface_cast<CellularCallInterface>(stopDtmfRemote);
1817     ASSERT_TRUE(telephonyService != nullptr);
1818     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1819         return;
1820     }
1821     if (HasSimCard(SIM1_SLOTID)) {
1822         CellularCallInfo callInfo;
1823         int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, callInfo);
1824         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1825         ret = telephonyService->StopDtmf(callInfo);
1826         EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1827     }
1828     if (HasSimCard(SIM2_SLOTID)) {
1829         CellularCallInfo callInfo;
1830         int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, callInfo);
1831         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1832         ret = telephonyService->StopDtmf(callInfo);
1833         EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1834     }
1835 }
1836 
1837 /**
1838  * @tc.number   cellular_call_StopDtmf_0002
1839  * @tc.name     Test for stopDtmf function with invalid slot by cs
1840  * @tc.desc     Function test
1841  */
1842 HWTEST_F(CsTest, cellular_call_StopDtmf_0002, Function | MediumTest | Level2)
1843 {
1844     AccessToken token;
1845     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1846         return;
1847     }
1848     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1849     ASSERT_TRUE(systemAbilityMgr != nullptr);
1850     auto stopDtmfRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1851     ASSERT_TRUE(stopDtmfRemote != nullptr);
1852     auto telephonyService = iface_cast<CellularCallInterface>(stopDtmfRemote);
1853     ASSERT_TRUE(telephonyService != nullptr);
1854     if (HasSimCard(SIM1_SLOTID)) {
1855         CellularCallInfo stopDtmfCallInfo;
1856         int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, stopDtmfCallInfo);
1857         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1858         ret = telephonyService->StopDtmf(stopDtmfCallInfo);
1859         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1860     }
1861     if (HasSimCard(SIM2_SLOTID)) {
1862         CellularCallInfo stopDtmfCallInfo;
1863         int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, stopDtmfCallInfo);
1864         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1865         ret = telephonyService->StopDtmf(stopDtmfCallInfo);
1866         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1867     }
1868 }
1869 
1870 /**
1871  * @tc.number   cellular_call_SendDtmf_0001
1872  * @tc.name     Test for sendDtmf function by cs
1873  * @tc.desc     Function test
1874  */
1875 HWTEST_F(CsTest, cellular_call_SendDtmf_0001, Function | MediumTest | Level2)
1876 {
1877     AccessToken token;
1878     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1879     ASSERT_TRUE(systemAbilityMgr != nullptr);
1880     auto sendDtmfRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1881     ASSERT_TRUE(sendDtmfRemote != nullptr);
1882     auto telephonyService = iface_cast<CellularCallInterface>(sendDtmfRemote);
1883     ASSERT_TRUE(telephonyService != nullptr);
1884     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1885         return;
1886     }
1887     if (HasSimCard(SIM1_SLOTID)) {
1888         CellularCallInfo sendDtmfCallInfo;
1889         int32_t ret = InitCellularCallInfo(SIM1_SLOTID, PHONE_NUMBER, sendDtmfCallInfo);
1890         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1891         char code = '1';
1892         ret = telephonyService->SendDtmf(code, sendDtmfCallInfo);
1893         EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1894     }
1895     if (HasSimCard(SIM2_SLOTID)) {
1896         CellularCallInfo sendDtmfCallInfo;
1897         int32_t ret = InitCellularCallInfo(SIM2_SLOTID, PHONE_NUMBER, sendDtmfCallInfo);
1898         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1899         char code = '1';
1900         ret = telephonyService->SendDtmf(code, sendDtmfCallInfo);
1901         EXPECT_EQ(ret, CALL_ERR_CALL_CONNECTION_NOT_EXIST);
1902     }
1903 }
1904 
1905 /**
1906  * @tc.number   cellular_call_SendDtmf_0002
1907  * @tc.name     Test for sendDtmf function with invalid slot by cs
1908  * @tc.desc     Function test
1909  */
1910 HWTEST_F(CsTest, cellular_call_SendDtmf_0002, Function | MediumTest | Level2)
1911 {
1912     AccessToken token;
1913     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1914         return;
1915     }
1916     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1917     ASSERT_TRUE(systemAbilityMgr != nullptr);
1918     auto sendDtmfRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1919     ASSERT_TRUE(sendDtmfRemote != nullptr);
1920     auto telephonyService = iface_cast<CellularCallInterface>(sendDtmfRemote);
1921     ASSERT_TRUE(telephonyService != nullptr);
1922     if (HasSimCard(SIM1_SLOTID)) {
1923         CellularCallInfo sendDtmfCallInfo;
1924         int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, sendDtmfCallInfo);
1925         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1926         char code = '1';
1927         ret = telephonyService->SendDtmf(code, sendDtmfCallInfo);
1928         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1929     }
1930     if (HasSimCard(SIM2_SLOTID)) {
1931         CellularCallInfo sendDtmfCallInfo;
1932         int32_t ret = InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, sendDtmfCallInfo);
1933         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1934         char code = '1';
1935         ret = telephonyService->SendDtmf(code, sendDtmfCallInfo);
1936         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1937     }
1938 }
1939 
1940 /**
1941  * @tc.number   cellular_call_GetDomainPreferenceMode_0001
1942  * @tc.name     Test for GetDomainPreferenceMode function by invalid slotId
1943  * @tc.desc     Function test
1944  */
1945 HWTEST_F(CsTest, cellular_call_GetDomainPreferenceMode_0001, Function | MediumTest | Level3)
1946 {
1947     AccessToken token;
1948     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1949     ASSERT_TRUE(systemAbilityMgr != nullptr);
1950     auto domainPrefModeRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1951     ASSERT_TRUE(domainPrefModeRemote != nullptr);
1952     auto telephonyService = iface_cast<CellularCallInterface>(domainPrefModeRemote);
1953     ASSERT_TRUE(telephonyService != nullptr);
1954     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1955         return;
1956     }
1957     if (HasSimCard(SIM1_SLOTID)) {
1958         int32_t ret = telephonyService->GetDomainPreferenceMode(INVALID_SLOTID);
1959         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1960     }
1961     if (HasSimCard(SIM2_SLOTID)) {
1962         int32_t ret = telephonyService->GetDomainPreferenceMode(INVALID_SLOTID);
1963         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
1964     }
1965 }
1966 
1967 /**
1968  * @tc.number   cellular_call_GetDomainPreferenceMode_0002
1969  * @tc.name     Test for GetDomainPreferenceMode function by valid slotId
1970  * @tc.desc     Function test
1971  */
1972 HWTEST_F(CsTest, cellular_call_GetDomainPreferenceMode_0002, Function | MediumTest | Level3)
1973 {
1974     AccessToken token;
1975     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1976         return;
1977     }
1978     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
1979     ASSERT_TRUE(systemAbilityMgr != nullptr);
1980     auto domainPrefModeRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
1981     ASSERT_TRUE(domainPrefModeRemote != nullptr);
1982     auto telephonyService = iface_cast<CellularCallInterface>(domainPrefModeRemote);
1983     ASSERT_TRUE(telephonyService != nullptr);
1984     if (HasSimCard(SIM1_SLOTID)) {
1985         int32_t ret = telephonyService->GetDomainPreferenceMode(SIM1_SLOTID);
1986         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1987     }
1988     if (HasSimCard(SIM2_SLOTID)) {
1989         int32_t ret = telephonyService->GetDomainPreferenceMode(SIM2_SLOTID);
1990         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
1991     }
1992 }
1993 
1994 /**
1995  * @tc.number   cellular_call_GetMute_0001
1996  * @tc.name     Test for GetMute function by invalid slotId
1997  * @tc.desc     Function test
1998  */
1999 HWTEST_F(CsTest, cellular_call_GetMute_0001, Function | MediumTest | Level3)
2000 {
2001     AccessToken token;
2002     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
2003     ASSERT_TRUE(systemAbilityMgr != nullptr);
2004     auto getMuteRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
2005     ASSERT_TRUE(getMuteRemote != nullptr);
2006     auto telephonyService = iface_cast<CellularCallInterface>(getMuteRemote);
2007     ASSERT_TRUE(telephonyService != nullptr);
2008     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2009         return;
2010     }
2011     if (HasSimCard(SIM1_SLOTID)) {
2012         int32_t ret = telephonyService->GetMute(INVALID_SLOTID);
2013         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
2014     }
2015     if (HasSimCard(SIM2_SLOTID)) {
2016         int32_t ret = telephonyService->GetMute(INVALID_SLOTID);
2017         EXPECT_EQ(ret, CALL_ERR_INVALID_SLOT_ID);
2018     }
2019 }
2020 
2021 /**
2022  * @tc.number   cellular_call_GetMute_0002
2023  * @tc.name     Test for GetMute function by valid slotId
2024  * @tc.desc     Function test
2025  */
2026 HWTEST_F(CsTest, cellular_call_GetMute_0002, Function | MediumTest | Level3)
2027 {
2028     AccessToken token;
2029     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2030         return;
2031     }
2032     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
2033     ASSERT_TRUE(systemAbilityMgr != nullptr);
2034     auto getMuteRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
2035     ASSERT_TRUE(getMuteRemote != nullptr);
2036     auto telephonyService = iface_cast<CellularCallInterface>(getMuteRemote);
2037     ASSERT_TRUE(telephonyService != nullptr);
2038     if (HasSimCard(SIM1_SLOTID)) {
2039         int32_t ret = telephonyService->GetMute(SIM1_SLOTID);
2040         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
2041     }
2042     if (HasSimCard(SIM2_SLOTID)) {
2043         int32_t ret = telephonyService->GetMute(SIM2_SLOTID);
2044         EXPECT_EQ(ret, TELEPHONY_SUCCESS);
2045     }
2046 }
2047 
2048 /**
2049  * @tc.number   cellular_call_CsControl_0001
2050  * @tc.name     Test for CsControl
2051  * @tc.desc     Function test
2052  */
2053 HWTEST_F(CsTest, cellular_call_CsControl_0001, Function | MediumTest | Level3)
2054 {
2055     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
2056     ASSERT_TRUE(systemAbilityMgr != nullptr);
2057     auto csControlRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
2058     ASSERT_TRUE(csControlRemote != nullptr);
2059     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2060         return;
2061     }
2062     auto csControl = std::make_shared<CSControl>();
2063     CellularCallInfo cellularCallInfo;
2064     bool enabled = false;
2065     EXPECT_EQ(InitCellularCallInfo(INVALID_SLOTID, PHONE_NUMBER, cellularCallInfo), TELEPHONY_SUCCESS);
2066     EXPECT_EQ(csControl->Dial(cellularCallInfo, enabled), CALL_ERR_GET_RADIO_STATE_FAILED);
2067     EXPECT_EQ(InitCellularCallInfo(INVALID_SLOTID, "", cellularCallInfo), TELEPHONY_SUCCESS);
2068     EXPECT_EQ(csControl->Dial(cellularCallInfo, enabled), CALL_ERR_PHONE_NUMBER_EMPTY);
2069     for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
2070         if (!HasSimCard(slotId)) {
2071             continue;
2072         }
2073         EXPECT_EQ(InitCellularCallInfo(slotId, "*30#", cellularCallInfo), TELEPHONY_SUCCESS);
2074         EXPECT_EQ(csControl->DialCdma(cellularCallInfo), CALL_ERR_RESOURCE_UNAVAILABLE);
2075         EXPECT_EQ(csControl->DialGsm(cellularCallInfo), CALL_ERR_RESOURCE_UNAVAILABLE);
2076         EXPECT_EQ(InitCellularCallInfo(slotId, "#30#", cellularCallInfo), TELEPHONY_SUCCESS);
2077         EXPECT_EQ(csControl->DialGsm(cellularCallInfo), CALL_ERR_RESOURCE_UNAVAILABLE);
2078         EXPECT_EQ(InitCellularCallInfo(slotId, PHONE_NUMBER, cellularCallInfo), TELEPHONY_SUCCESS);
2079         EXPECT_EQ(csControl->DialCdma(cellularCallInfo), CALL_ERR_RESOURCE_UNAVAILABLE);
2080         EXPECT_EQ(csControl->Dial(cellularCallInfo, enabled), CALL_ERR_GET_RADIO_STATE_FAILED);
2081         ASSERT_FALSE(csControl->CalculateInternationalRoaming(slotId));
2082         EXPECT_NE(csControl->DialCdma(cellularCallInfo), TELEPHONY_SUCCESS);
2083         EXPECT_EQ(csControl->DialGsm(cellularCallInfo), CALL_ERR_RESOURCE_UNAVAILABLE);
2084         EXPECT_NE(csControl->Answer(cellularCallInfo), CALL_ERR_RESOURCE_UNAVAILABLE);
2085         EXPECT_EQ(InitCellularCallInfo(slotId, PHONE_NUMBER_SECOND, cellularCallInfo), TELEPHONY_SUCCESS);
2086         EXPECT_NE(csControl->Answer(cellularCallInfo), CALL_ERR_CALL_STATE);
2087         EXPECT_EQ(InitCellularCallInfo(slotId, PHONE_NUMBER_THIRD, cellularCallInfo), TELEPHONY_SUCCESS);
2088         EXPECT_NE(csControl->Answer(cellularCallInfo), CALL_ERR_CALL_STATE);
2089         EXPECT_NE(csControl->Reject(cellularCallInfo), CALL_ERR_CALL_STATE);
2090         EXPECT_EQ(InitCellularCallInfo(slotId, PHONE_NUMBER, cellularCallInfo), TELEPHONY_SUCCESS);
2091         EXPECT_EQ(csControl->SeparateConference(slotId, PHONE_NUMBER, 1), CALL_ERR_RESOURCE_UNAVAILABLE);
2092         EXPECT_EQ(csControl->SeparateConference(slotId, "", 1), CALL_ERR_RESOURCE_UNAVAILABLE);
2093         EXPECT_NE(csControl->HangUp(cellularCallInfo, CallSupplementType::TYPE_DEFAULT), CALL_ERR_RESOURCE_UNAVAILABLE);
2094         EXPECT_EQ(csControl->HangUp(cellularCallInfo, CallSupplementType::TYPE_HANG_UP_ACTIVE),
2095             CALL_ERR_RESOURCE_UNAVAILABLE);
2096         EXPECT_EQ(
2097             csControl->HangUp(cellularCallInfo, CallSupplementType::TYPE_HANG_UP_ALL), CALL_ERR_RESOURCE_UNAVAILABLE);
2098         EXPECT_EQ(csControl->HangUp(cellularCallInfo, static_cast<CallSupplementType>(INVALID_HANG_UP_TYPE)),
2099             TELEPHONY_ERR_ARGUMENT_INVALID);
2100     }
2101 }
2102 
2103 /**
2104  * @tc.number   cellular_call_CsControl_0002
2105  * @tc.name     Test for CsControl
2106  * @tc.desc     Function test
2107  */
2108 HWTEST_F(CsTest, cellular_call_CsControl_0002, Function | MediumTest | Level3)
2109 {
2110     auto csControl = std::make_shared<CSControl>();
2111     CellularCallInfo cellularCallInfo;
2112     for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
2113         if (!HasSimCard(slotId)) {
2114             continue;
2115         }
2116         CallInfoList callList;
2117         callList.callSize = 0;
2118         EXPECT_EQ(csControl->ReportCallsData(slotId, callList), TELEPHONY_ERROR);
2119         EXPECT_NE(csControl->ReportUpdateInfo(slotId, callList), TELEPHONY_SUCCESS);
2120         CallInfo callInfo;
2121         callList.callSize = 1;
2122         callInfo.number = PHONE_NUMBER;
2123         callInfo.index = 1;
2124         callInfo.state = static_cast<int32_t>(TelCallState::CALL_STATUS_INCOMING);
2125         callList.calls.push_back(callInfo);
2126         EXPECT_EQ(csControl->ReportCallsData(slotId, callList), TELEPHONY_SUCCESS);
2127         callList.callSize = 2;
2128         callInfo.state = static_cast<int32_t>(TelCallState::CALL_STATUS_ACTIVE);
2129         callInfo.number = PHONE_NUMBER_SECOND;
2130         callInfo.index = 2;
2131         callList.calls.push_back(callInfo);
2132         callList.callSize = 3;
2133         callInfo.state = static_cast<int32_t>(TelCallState::CALL_STATUS_DISCONNECTED);
2134         callInfo.number = PHONE_NUMBER_THIRD;
2135         callInfo.index = 3;
2136         callList.calls.push_back(callInfo);
2137         callList.callSize = 0;
2138         EXPECT_EQ(csControl->ReportCallsData(slotId, callList), TELEPHONY_SUCCESS);
2139         EXPECT_NE(csControl->ReportCallsData(slotId, callList), TELEPHONY_SUCCESS);
2140         EXPECT_NE(csControl->Reject(cellularCallInfo), CALL_ERR_RESOURCE_UNAVAILABLE);
2141         EXPECT_NE(csControl->HoldCall(slotId), CALL_ERR_CALL_STATE);
2142         EXPECT_NE(csControl->UnHoldCall(slotId), CALL_ERR_CALL_STATE);
2143         EXPECT_NE(csControl->SwitchCall(slotId), CALL_ERR_CALL_STATE);
2144     }
2145 }
2146 
2147 /**
2148  * @tc.number   cellular_call_CellularCallConnectionCS_0001
2149  * @tc.name     Test for CellularCallConnectionCS
2150  * @tc.desc     Function test
2151  */
2152 HWTEST_F(CsTest, cellular_call_CellularCallConnectionCS_0001, Function | MediumTest | Level3)
2153 {
2154     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
2155     ASSERT_TRUE(systemAbilityMgr != nullptr);
2156     auto remote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
2157     ASSERT_TRUE(remote != nullptr);
2158     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2159         return;
2160     }
2161 
2162     for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
2163         if (!HasSimCard(slotId)) {
2164             continue;
2165         }
2166         CellularCallConnectionCS csConnection;
2167         EXPECT_EQ(csConnection.SendDtmfRequest(slotId, '1', 1), CALL_ERR_RESOURCE_UNAVAILABLE);
2168         EXPECT_EQ(csConnection.StartDtmfRequest(slotId, '1', 1), CALL_ERR_RESOURCE_UNAVAILABLE);
2169         EXPECT_EQ(csConnection.StopDtmfRequest(slotId, 1), CALL_ERR_RESOURCE_UNAVAILABLE);
2170         EXPECT_EQ(csConnection.GetCsCallsDataRequest(slotId, 1), CALL_ERR_RESOURCE_UNAVAILABLE);
2171         EXPECT_EQ(csConnection.GetCallFailReasonRequest(slotId), CALL_ERR_RESOURCE_UNAVAILABLE);
2172         MMICodeUtils utils;
2173         ASSERT_FALSE(utils.IsNeedExecuteMmi("", false));
2174         ASSERT_FALSE(utils.ExecuteMmiCode(slotId));
2175     }
2176 }
2177 
2178 /**
2179  * @tc.number   cellular_call_CellularCallRegister_0001
2180  * @tc.name     Test for CellularCallRegister
2181  * @tc.desc     Function test
2182  */
2183 HWTEST_F(CsTest, cellular_call_CellularCallRegister_0001, Function | MediumTest | Level3)
2184 {
2185     auto systemAbilityMgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
2186     ASSERT_TRUE(systemAbilityMgr != nullptr);
2187     auto cellularCallRemote = systemAbilityMgr->CheckSystemAbility(TELEPHONY_CELLULAR_CALL_SYS_ABILITY_ID);
2188     ASSERT_TRUE(cellularCallRemote != nullptr);
2189     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2190         return;
2191     }
2192     auto callRegister = DelayedSingleton<CellularCallRegister>::GetInstance();
2193     ASSERT_TRUE(callRegister != nullptr);
2194     CellularCallEventInfo callEvent;
2195     callRegister->ReportEventResultInfo(callEvent);
2196     CallWaitResponse waitResponse;
2197     callRegister->ReportGetWaitingResult(waitResponse);
2198     callRegister->ReportSetWaitingResult(ERROR_RESULT);
2199     CallRestrictionResponse restrictionResponse;
2200     callRegister->ReportGetRestrictionResult(restrictionResponse);
2201     callRegister->ReportSetRestrictionResult(ERROR_RESULT);
2202     callRegister->ReportSetBarringPasswordResult(ERROR_RESULT);
2203     CallTransferResponse transferResponse;
2204     callRegister->ReportGetTransferResult(transferResponse);
2205     callRegister->ReportSetTransferResult(ERROR_RESULT);
2206     ClipResponse clipResponse;
2207     callRegister->ReportGetClipResult(clipResponse);
2208     ClirResponse clirResponse;
2209     callRegister->ReportGetClirResult(clirResponse);
2210     callRegister->ReportSetClirResult(ERROR_RESULT);
2211     callRegister->ReportCallRingBackResult(ERROR_RESULT);
2212     DisconnectedDetails details;
2213     callRegister->ReportCallFailReason(details);
2214     MuteControlResponse muteResponse;
2215     callRegister->ReportSetMuteResult(muteResponse);
2216     callRegister->ReportGetMuteResult(muteResponse);
2217     callRegister->ReportInviteToConferenceResult(ERROR_RESULT);
2218     callRegister->ReportGetCallDataResult(ERROR_RESULT);
2219     callRegister->ReportStartDtmfResult(ERROR_RESULT);
2220     callRegister->ReportStopDtmfResult(ERROR_RESULT);
2221     callRegister->ReportStartRttResult(ERROR_RESULT);
2222     callRegister->ReportStopRttResult(ERROR_RESULT);
2223     callRegister->ReportSendUssdResult(ERROR_RESULT);
2224     SetEccListResponse eccListResponse;
2225     callRegister->ReportSetEmergencyCallListResponse(eccListResponse);
2226     MmiCodeInfo mmiInfo;
2227     callRegister->ReportMmiCodeResult(mmiInfo);
2228     ASSERT_FALSE(callRegister->IsCallManagerCallBackRegistered());
2229 }
2230 
2231 /**
2232  * @tc.number   cellular_call_CellularCallRegister_0002
2233  * @tc.name     Test for CellularCallRegister
2234  * @tc.desc     Function test
2235  */
2236 HWTEST_F(CsTest, cellular_call_CellularCallRegister_0002, Function | MediumTest | Level3)
2237 {
2238     auto callRegister = DelayedSingleton<CellularCallRegister>::GetInstance();
2239     CallReportInfo callRepotInfo;
2240     callRepotInfo.callType = CallType::TYPE_CS;
2241     callRepotInfo.accountId = INVALID_SLOTID;
2242     callRepotInfo.state = TelCallState::CALL_STATUS_INCOMING;
2243     callRepotInfo.callMode = VideoStateType::TYPE_VOICE;
2244     CallsReportInfo calls;
2245     calls.slotId = INVALID_SLOTID;
2246     calls.callVec.push_back(callRepotInfo);
2247     callRegister->ReportCallsInfo(calls);
2248     callRegister->ReportSingleCallInfo(callRepotInfo, TelCallState::CALL_STATUS_INCOMING);
2249     EXPECT_EQ(callRegister->RegisterCallManagerCallBack(nullptr), TELEPHONY_SUCCESS);
2250     EXPECT_EQ(callRegister->UnRegisterCallManagerCallBack(), TELEPHONY_SUCCESS);
2251 }
2252 
2253 /**
2254  * @tc.number   cellular_call_SupplementRequestCs_0001
2255  * @tc.name     Test for SupplementRequestCs
2256  * @tc.desc     Function test
2257  */
2258 HWTEST_F(CsTest, cellular_call_SupplementRequestCs_0001, Function | MediumTest | Level3)
2259 {
2260     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2261         return;
2262     }
2263 
2264     for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
2265         if (!HasSimCard(slotId)) {
2266             continue;
2267         }
2268         SupplementRequestCs request;
2269         std::string fac = "fac";
2270         std::string pw = "test";
2271         int32_t index = 1;
2272         int32_t mode = 1;
2273         int32_t classType = 1;
2274         const char *oldPassword = "oldpwd";
2275         const char *newPassword = "newpwd";
2276         bool active = true;
2277         CallTransferParam param;
2278         EXPECT_NE(request.GetCallRestrictionRequest(slotId, fac, index), TELEPHONY_SUCCESS);
2279         EXPECT_NE(request.SetCallRestrictionRequest(slotId, fac, mode, pw, index), TELEPHONY_SUCCESS);
2280         EXPECT_NE(request.SetBarringPasswordRequest(slotId, fac, index, oldPassword, newPassword), TELEPHONY_SUCCESS);
2281         EXPECT_NE(request.GetCallWaitingRequest(slotId, index), TELEPHONY_SUCCESS);
2282         EXPECT_NE(request.SetCallWaitingRequest(slotId, active, classType, index), TELEPHONY_SUCCESS);
2283         EXPECT_NE(request.GetClipRequest(slotId, index), TELEPHONY_SUCCESS);
2284         EXPECT_NE(request.GetClirRequest(slotId, index), TELEPHONY_SUCCESS);
2285         EXPECT_NE(request.SetClirRequest(slotId, mode, index), TELEPHONY_SUCCESS);
2286         EXPECT_NE(request.GetCallTransferRequest(slotId, mode, index), TELEPHONY_SUCCESS);
2287         EXPECT_NE(request.SetCallTransferRequest(slotId, param, index), TELEPHONY_SUCCESS);
2288     }
2289 }
2290 
2291 /**
2292  * @tc.number   cellular_call_ConfigRequest_0001
2293  * @tc.name     Test for ConfigRequest
2294  * @tc.desc     Function test
2295  */
2296 HWTEST_F(CsTest, cellular_call_ConfigRequest_0001, Function | MediumTest | Level3)
2297 {
2298     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2299         return;
2300     }
2301 
2302     for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
2303         if (!HasSimCard(slotId)) {
2304             continue;
2305         }
2306         ConfigRequest config;
2307         int32_t mode = 1;
2308         EXPECT_NE(config.SetDomainPreferenceModeRequest(slotId, mode), TELEPHONY_SUCCESS);
2309         EXPECT_NE(config.GetDomainPreferenceModeRequest(slotId), TELEPHONY_SUCCESS);
2310         EXPECT_NE(config.SetMuteRequest(slotId, mode), TELEPHONY_SUCCESS);
2311         EXPECT_NE(config.GetMuteRequest(slotId), TELEPHONY_SUCCESS);
2312     }
2313 }
2314 
2315 /**
2316  * @tc.number   cellular_call_CellularCallSupplement_0001
2317  * @tc.name     Test for CellularCallSupplement
2318  * @tc.desc     Function test
2319  */
2320 HWTEST_F(CsTest, cellular_call_CellularCallSupplement_0001, Function | MediumTest | Level3)
2321 {
2322     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2323         return;
2324     }
2325 
2326     for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
2327         if (!HasSimCard(slotId)) {
2328             continue;
2329         }
2330         MMIData mmiData;
2331         CellularCallSupplement supplement;
2332         mmiData.actionString = "";
2333         supplement.AlterPinPassword(slotId, mmiData);
2334         supplement.AlterPin2Password(slotId, mmiData);
2335         supplement.UnlockPuk(slotId, mmiData);
2336         supplement.UnlockPuk2(slotId, mmiData);
2337         mmiData.actionString = "test";
2338         mmiData.serviceInfoA = "infoA";
2339         mmiData.serviceInfoB = "infoB";
2340         mmiData.serviceInfoC = "infoC";
2341         supplement.AlterPinPassword(slotId, mmiData);
2342         supplement.AlterPin2Password(slotId, mmiData);
2343         supplement.UnlockPuk(slotId, mmiData);
2344         supplement.UnlockPuk2(slotId, mmiData);
2345         mmiData.serviceInfoC = "infoB";
2346         supplement.AlterPinPassword(slotId, mmiData);
2347         supplement.AlterPin2Password(slotId, mmiData);
2348         supplement.UnlockPuk(slotId, mmiData);
2349         supplement.UnlockPuk2(slotId, mmiData);
2350         ASSERT_FALSE(supplement.IsVaildPinOrPuk("B", "B"));
2351         EXPECT_NE(supplement.SendUssd(slotId, "test"), TELEPHONY_SUCCESS);
2352     }
2353 }
2354 
2355 /**
2356  * @tc.number   cellular_call_CellularCallSupplement_0002
2357  * @tc.name     Test for CellularCallSupplement
2358  * @tc.desc     Function test
2359  */
2360 HWTEST_F(CsTest, cellular_call_CellularCallSupplement_0002, Function | MediumTest | Level3)
2361 {
2362     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2363         return;
2364     }
2365 
2366     for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
2367         if (!HasSimCard(slotId)) {
2368             continue;
2369         }
2370         CellularCallSupplement supplement;
2371         supplement.ObtainBarringInstallation("33");
2372         supplement.ObtainBarringInstallation("331");
2373         supplement.ObtainBarringInstallation("332");
2374         supplement.ObtainBarringInstallation("351");
2375         supplement.ObtainBarringInstallation("35");
2376         supplement.ObtainBarringInstallation("330");
2377         supplement.ObtainBarringInstallation("333");
2378         supplement.ObtainBarringInstallation("353");
2379         supplement.ObtainBarringInstallation("1000");
2380 
2381         EXPECT_NE(supplement.ObtainServiceCode("10"), TELEPHONY_SUCCESS);
2382         EXPECT_NE(supplement.ObtainServiceCode("11"), TELEPHONY_SUCCESS);
2383         EXPECT_NE(supplement.ObtainServiceCode("12"), TELEPHONY_SUCCESS);
2384         EXPECT_NE(supplement.ObtainServiceCode("13"), TELEPHONY_SUCCESS);
2385         EXPECT_NE(supplement.ObtainServiceCode("16"), TELEPHONY_SUCCESS);
2386         EXPECT_NE(supplement.ObtainServiceCode("19"), TELEPHONY_SUCCESS);
2387         EXPECT_NE(supplement.ObtainServiceCode("20"), TELEPHONY_SUCCESS);
2388         EXPECT_NE(supplement.ObtainServiceCode("21"), TELEPHONY_SUCCESS);
2389         EXPECT_NE(supplement.ObtainServiceCode("22"), TELEPHONY_SUCCESS);
2390         EXPECT_NE(supplement.ObtainServiceCode("24"), TELEPHONY_SUCCESS);
2391         EXPECT_NE(supplement.ObtainServiceCode("25"), TELEPHONY_SUCCESS);
2392         EXPECT_NE(supplement.ObtainServiceCode("99"), TELEPHONY_SUCCESS);
2393         EXPECT_EQ(supplement.ObtainServiceCode("100"), TELEPHONY_SUCCESS);
2394 
2395         EXPECT_EQ(supplement.ObtainCause("21"), TELEPHONY_SUCCESS);
2396         EXPECT_NE(supplement.ObtainCause("61"), TELEPHONY_SUCCESS);
2397         EXPECT_NE(supplement.ObtainCause("62"), TELEPHONY_SUCCESS);
2398         EXPECT_NE(supplement.ObtainCause("67"), TELEPHONY_SUCCESS);
2399         EXPECT_EQ(supplement.ObtainCause("99"), TELEPHONY_ERROR);
2400     }
2401 }
2402 
2403 /**
2404  * @tc.number   cellular_call_CellularCallSupplement_0003
2405  * @tc.name     Test for CellularCallSupplement
2406  * @tc.desc     Function test
2407  */
2408 HWTEST_F(CsTest, cellular_call_CellularCallSupplement_0003, Function | MediumTest | Level3)
2409 {
2410     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2411         return;
2412     }
2413 
2414     for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
2415         if (!HasSimCard(slotId)) {
2416             continue;
2417         }
2418         CellularCallSupplement supplement;
2419         std::string action = "*";
2420         std::string number = "";
2421         CallTransferSettingType type;
2422         EXPECT_EQ(supplement.ObtainCallTrasferAction(action.c_str(), number, type), TELEPHONY_SUCCESS);
2423         EXPECT_EQ(supplement.ObtainCallTrasferAction(action.c_str(), PHONE_NUMBER, type), TELEPHONY_SUCCESS);
2424         action = "#";
2425         EXPECT_EQ(supplement.ObtainCallTrasferAction(action.c_str(), number, type), TELEPHONY_SUCCESS);
2426         action = "**";
2427         EXPECT_EQ(supplement.ObtainCallTrasferAction(action.c_str(), number, type), TELEPHONY_SUCCESS);
2428         action = "##";
2429         EXPECT_EQ(supplement.ObtainCallTrasferAction(action.c_str(), number, type), TELEPHONY_SUCCESS);
2430         action = "*#";
2431         EXPECT_NE(supplement.ObtainCallTrasferAction(action.c_str(), number, type), TELEPHONY_SUCCESS);
2432     }
2433 }
2434 
2435 /**
2436  * @tc.number   cellular_call_CellularCallHandler_0001
2437  * @tc.name     Test for CellularCallHandler
2438  * @tc.desc     Function test
2439  */
2440 HWTEST_F(CsTest, cellular_call_CellularCallHandler_0001, Function | MediumTest | Level3)
2441 {
2442     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2443         return;
2444     }
2445 
2446     EventFwk::MatchingSkills matchingSkills;
2447     matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_OPERATOR_CONFIG_CHANGED);
2448     EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
2449     CellularCallHandler firstHandler { subscriberInfo };
2450     for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
2451         if (!HasSimCard(slotId)) {
2452             continue;
2453         }
2454         firstHandler.SetSlotId(slotId);
2455         auto event = AppExecFwk::InnerEvent::Get(0);
2456         auto rilRadioResponse = std::make_shared<HRilRadioResponseInfo>();
2457         rilRadioResponse->error = HRilErrType::HRIL_ERR_GENERIC_FAILURE;
2458         firstHandler.CellularCallIncomingStartTrace(static_cast<int32_t>(TelCallState::CALL_STATUS_INCOMING));
2459         firstHandler.CellularCallIncomingFinishTrace(static_cast<int32_t>(TelCallState::CALL_STATUS_INCOMING));
2460         firstHandler.GetCsCallsDataResponse(event);
2461         firstHandler.GetCsCallsDataRequest(event);
2462         firstHandler.GetMMIResponse(event);
2463         auto ringbackResponse = std::make_shared<RingbackVoice>();
2464         ringbackResponse->status = ERROR_RESULT;
2465         auto ringbackEvent = AppExecFwk::InnerEvent::Get(0, ringbackResponse);
2466         firstHandler.CallRingBackVoiceResponse(event);
2467         firstHandler.CallRingBackVoiceResponse(ringbackEvent);
2468         auto srvccStatus = std::make_shared<SrvccStatus>();
2469         srvccStatus->status = SrvccState::SRVCC_NONE;
2470         auto srvccEvent1 = AppExecFwk::InnerEvent::Get(0, srvccStatus);
2471         firstHandler.UpdateSrvccStateReport(event);
2472         firstHandler.UpdateSrvccStateReport(srvccEvent1);
2473         srvccStatus->status = SrvccState::COMPLETED;
2474         auto srvccEvent2 = AppExecFwk::InnerEvent::Get(0, srvccStatus);
2475         firstHandler.UpdateSrvccStateReport(srvccEvent2);
2476         firstHandler.UpdateRsrvccStateReport(event);
2477         firstHandler.GetCallFailReasonResponse(event);
2478         firstHandler.GetEmergencyCallListResponse(event);
2479         firstHandler.ReportEccChanged(event);
2480         firstHandler.SetEmergencyCallListResponse(event);
2481         firstHandler.SendUssdResponse(event);
2482         ASSERT_EQ(firstHandler.GetSlotId(), slotId);
2483     }
2484 }
2485 
2486 /**
2487  * @tc.number   cellular_call_CellularCallHandler_0002
2488  * @tc.name     Test for CellularCallHandler
2489  * @tc.desc     Function test
2490  */
2491 HWTEST_F(CsTest, cellular_call_CellularCallHandler_0002, Function | MediumTest | Level3)
2492 {
2493     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2494         return;
2495     }
2496 
2497     EventFwk::MatchingSkills matchingSkills;
2498     matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_OPERATOR_CONFIG_CHANGED);
2499     EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
2500     CellularCallHandler secondHandler { subscriberInfo };
2501     for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
2502         if (!HasSimCard(slotId)) {
2503             continue;
2504         }
2505         secondHandler.SetSlotId(slotId);
2506         auto event = AppExecFwk::InnerEvent::Get(0);
2507         auto rilRadioResponse = std::make_shared<HRilRadioResponseInfo>();
2508         rilRadioResponse->error = HRilErrType::HRIL_ERR_GENERIC_FAILURE;
2509         secondHandler.CommonResultResponse(event);
2510         auto rejectEvent = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_REJECT_CALL, rilRadioResponse);
2511         secondHandler.CommonResultResponse(rejectEvent);
2512         auto supplementEvent = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_CALL_SUPPLEMENT, rilRadioResponse);
2513         secondHandler.CommonResultResponse(supplementEvent);
2514 
2515         rilRadioResponse->error = HRilErrType::NONE;
2516         auto hangupConnectEvent = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_HANGUP_CONNECT, rilRadioResponse);
2517         secondHandler.CommonResultResponse(hangupConnectEvent);
2518         auto acceptEvent = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_ACCEPT_CALL, rilRadioResponse);
2519         secondHandler.CommonResultResponse(acceptEvent);
2520         auto splitNoErrorEvent = AppExecFwk::InnerEvent::Get(RadioEvent::RADIO_SPLIT_CALL, rilRadioResponse);
2521         secondHandler.CommonResultResponse(splitNoErrorEvent);
2522 
2523         auto ssResult = std::make_shared<SsBaseResult>();
2524         ssResult->index = INVALID_INDEX;
2525         ssResult->result = SUCCESS_RESULT;
2526         auto errorEvent = AppExecFwk::InnerEvent::Get(0, ssResult);
2527         secondHandler.SetCallRestrictionResponse(event);
2528         secondHandler.SetCallRestrictionResponse(errorEvent);
2529         secondHandler.SetBarringPasswordResponse(event);
2530         secondHandler.SetCallTransferInfoResponse(event);
2531         secondHandler.SetCallWaitingResponse(event);
2532         secondHandler.SetClipResponse(event);
2533         secondHandler.SetClirResponse(event);
2534         secondHandler.SetColpResponse(event);
2535         secondHandler.SetColrResponse(event);
2536 
2537         auto responseEvent = AppExecFwk::InnerEvent::Get(0, rilRadioResponse);
2538         secondHandler.SetMuteResponse(event);
2539         secondHandler.SetMuteResponse(responseEvent);
2540         secondHandler.GetMuteResponse(event);
2541         secondHandler.GetMuteResponse(responseEvent);
2542         ASSERT_EQ(secondHandler.GetSlotId(), slotId);
2543     }
2544 }
2545 
2546 /**
2547  * @tc.number   cellular_call_CellularCallHandler_0003
2548  * @tc.name     Test for CellularCallHandler
2549  * @tc.desc     Function test
2550  */
2551 HWTEST_F(CsTest, cellular_call_CellularCallHandler_0003, Function | MediumTest | Level3)
2552 {
2553     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
2554         return;
2555     }
2556     EventFwk::MatchingSkills matchingSkills;
2557     matchingSkills.AddEvent(EventFwk::CommonEventSupport::COMMON_EVENT_OPERATOR_CONFIG_CHANGED);
2558     EventFwk::CommonEventSubscribeInfo subscriberInfo(matchingSkills);
2559     CellularCallHandler thirdhandler { subscriberInfo };
2560     for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
2561         if (!HasSimCard(slotId)) {
2562             continue;
2563         }
2564         thirdhandler.SetSlotId(slotId);
2565         auto event = AppExecFwk::InnerEvent::Get(0);
2566         auto ussdNoticeResponse = std::make_shared<UssdNoticeInfo>();
2567         ussdNoticeResponse->m = USSD_MODE_NOTIFY;
2568         ussdNoticeResponse->str = "tdd test";
2569         auto successEvent = AppExecFwk::InnerEvent::Get(0, ussdNoticeResponse);
2570         thirdhandler.UssdNotifyResponse(event);
2571         thirdhandler.UssdNotifyResponse(successEvent);
2572         ussdNoticeResponse->str = "";
2573         auto errorEvent = AppExecFwk::InnerEvent::Get(0, ussdNoticeResponse);
2574         thirdhandler.UssdNotifyResponse(errorEvent);
2575 
2576         auto ssNoticeResponse = std::make_shared<SsNoticeInfo>();
2577         ssNoticeResponse->result = ERROR_RESULT;
2578         auto defaultEvent = AppExecFwk::InnerEvent::Get(0, ssNoticeResponse);
2579         thirdhandler.SsNotifyResponse(event);
2580         thirdhandler.SsNotifyResponse(defaultEvent);
2581         ssNoticeResponse->requestType = SUCCESS_RESULT;
2582         auto noticeErrorEvent = AppExecFwk::InnerEvent::Get(0, ssNoticeResponse);
2583         thirdhandler.SsNotifyResponse(noticeErrorEvent);
2584         ssNoticeResponse->result = SUCCESS_RESULT;
2585         auto noticeDefaultEvent = AppExecFwk::InnerEvent::Get(0, ssNoticeResponse);
2586         thirdhandler.SsNotifyResponse(noticeDefaultEvent);
2587         ssNoticeResponse->serviceType = static_cast<int32_t>(CallTransferType::TRANSFER_TYPE_UNCONDITIONAL);
2588         auto noticeUnconditinalEvent = AppExecFwk::InnerEvent::Get(0, ssNoticeResponse);
2589         thirdhandler.SsNotifyResponse(noticeUnconditinalEvent);
2590         ssNoticeResponse->serviceType = static_cast<int32_t>(CallTransferType::TRANSFER_TYPE_BUSY);
2591         auto noticeBusyEvent = AppExecFwk::InnerEvent::Get(0, ssNoticeResponse);
2592         thirdhandler.SsNotifyResponse(noticeBusyEvent);
2593         ssNoticeResponse->serviceType = static_cast<int32_t>(CallTransferType::TRANSFER_TYPE_NO_REPLY);
2594         auto noticeNoReplyEvent = AppExecFwk::InnerEvent::Get(0, ssNoticeResponse);
2595         thirdhandler.SsNotifyResponse(noticeNoReplyEvent);
2596         ssNoticeResponse->serviceType = static_cast<int32_t>(CallTransferType::TRANSFER_TYPE_NOT_REACHABLE);
2597         auto noticeNotReachableEvent = AppExecFwk::InnerEvent::Get(0, ssNoticeResponse);
2598         thirdhandler.SsNotifyResponse(noticeNotReachableEvent);
2599         ASSERT_EQ(thirdhandler.GetSlotId(), slotId);
2600     }
2601 }
2602 
2603 /**
2604  * @tc.number   cellular_call_TestDump_0001
2605  * @tc.name     TestDump
2606  * @tc.desc     Function test
2607  */
2608 HWTEST_F(CsTest, cellular_call_TestDump_0001, Function | MediumTest | Level3)
2609 {
2610     std::vector<std::u16string> emptyArgs = {};
2611     std::vector<std::u16string> args = { u"test", u"test1" };
2612     EXPECT_GE(DelayedSingleton<CellularCallService>::GetInstance()->Dump(-1, args), 0);
2613     EXPECT_GE(DelayedSingleton<CellularCallService>::GetInstance()->Dump(0, emptyArgs), 0);
2614     EXPECT_GE(DelayedSingleton<CellularCallService>::GetInstance()->Dump(0, args), 0);
2615 }
2616 
2617 /**
2618  * @tc.number   cellular_call_ModuleServiceUtils_0001
2619  * @tc.name     ModuleServiceUtils
2620  * @tc.desc     Function test
2621  */
2622 HWTEST_F(CsTest, cellular_call_ModuleServiceUtils_0001, Function | MediumTest | Level3)
2623 {
2624     ModuleServiceUtils moduleServiceUtils;
2625     bool airplaneModeOn = false;
2626     moduleServiceUtils.GetCsRegState(SIM1_SLOTID);
2627     moduleServiceUtils.GetPsRegState(SIM1_SLOTID);
2628     EXPECT_NE(moduleServiceUtils.GetAirplaneMode(airplaneModeOn), TELEPHONY_SUCCESS);
2629     EXPECT_NE(moduleServiceUtils.UpdateRadioOn(SIM1_SLOTID), TELEPHONY_SUCCESS);
2630 }
2631 
2632 /**
2633  * @tc.number   cellular_call_CellularCallConfig_0001
2634  * @tc.name     CellularCallConfig
2635  * @tc.desc     Function test
2636  */
2637 HWTEST_F(CsTest, cellular_call_CellularCallConfig_0001, Function | MediumTest | Level3)
2638 {
2639     CellularCallConfig CellularCallConfig;
2640     bool isReadyToCall = false;
2641     bool csType = 0;
2642     CellularCallConfig.SetReadyToCall(SIM1_SLOTID, isReadyToCall);
2643     CellularCallCallback cellularCallCallback;
2644     cellularCallCallback.SetReadyToCall(SIM1_SLOTID, csType, isReadyToCall);
2645     EXPECT_EQ(CellularCallConfig.IsReadyToCall(SIM1_SLOTID), TELEPHONY_SUCCESS);
2646 }
2647 } // namespace Telephony
2648 } // namespace OHOS
2649