1 /*
2  * Copyright (C) 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 #define private public
17 #define protected public
18 #include "cellular_call_config.h"
19 #include "cellular_call_handler.h"
20 #include "cellular_call_proxy.h"
21 #include "cellular_call_register.h"
22 #include "cellular_call_service.h"
23 #include "tel_ril_call_parcel.h"
24 #include "ims_call_callback_proxy.h"
25 #include "ims_call_callback_stub.h"
26 #include "ims_call_client.h"
27 #include "ims_control.h"
28 #include "ims_error.h"
29 #include "ims_test.h"
30 #include "securec.h"
31 
32 namespace OHOS {
33 namespace Telephony {
34 using namespace testing::ext;
35 const int32_t SIM1_SLOTID = 0;
36 const int32_t SIM2_SLOTID = 1;
37 const int32_t SLOT_COUNT = 2;
38 const std::string PHONE_NUMBER = "0000000";
39 const int32_t DEFAULT_INDEX = 1;
40 
41 /**
42  * @tc.number   cellular_call_ImsCallCallbackStub_0009
43  * @tc.name     Test for ImsCallCallbackStub
44  * @tc.desc     Function test
45  */
46 HWTEST_F(ImsTest, cellular_call_ImsCallCallbackStub_0009, Function | MediumTest | Level3)
47 {
48     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
49         return;
50     }
51     sptr<ImsCallCallbackStub> stubTestNight = (std::make_unique<ImsCallCallbackStub>()).release();
52     ASSERT_TRUE(stubTestNight != nullptr);
53     for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
54         if (!HasSimCard(slotId)) {
55             continue;
56         }
57         GetClirResult clirResult;
58         clirResult.result.index = INVALID_INDEX;
59         MessageParcel clirErrorData;
60         MessageParcel clirErrorReply;
61         ASSERT_TRUE(clirErrorData.WriteInt32(slotId));
62         ASSERT_EQ(
63             WriteSsResult(clirErrorData, clirResult.result, clirResult.action, clirResult.clirStat), TELEPHONY_SUCCESS);
64         ASSERT_EQ(stubTestNight->OnGetClirResponseInner(clirErrorData, clirErrorReply), TELEPHONY_SUCCESS);
65 
66         clirResult.result.index = DEFAULT_INDEX;
67         MessageParcel clirData;
68         MessageParcel clirReply;
69         ASSERT_TRUE(clirData.WriteInt32(slotId));
70         ASSERT_EQ(
71             WriteSsResult(clirData, clirResult.result, clirResult.action, clirResult.clirStat), TELEPHONY_SUCCESS);
72         ASSERT_EQ(stubTestNight->OnGetClirResponseInner(clirData, clirReply), TELEPHONY_SUCCESS);
73         clirResult.result.result = IMS_ERROR_UT_CS_FALLBACK;
74         ASSERT_NE(stubTestNight->GetClirResponse(slotId, clirResult), TELEPHONY_SUCCESS);
75 
76         GetColpResult colpResult;
77         colpResult.result.index = INVALID_INDEX;
78         MessageParcel colpErrorData;
79         MessageParcel colpErrorReply;
80         ASSERT_TRUE(colpErrorData.WriteInt32(slotId));
81         ASSERT_EQ(
82             WriteSsResult(colpErrorData, colpResult.result, colpResult.action, colpResult.colpStat), TELEPHONY_SUCCESS);
83         ASSERT_EQ(stubTestNight->OnGetColpResponseInner(colpErrorData, colpErrorReply), TELEPHONY_SUCCESS);
84 
85         colpResult.result.index = DEFAULT_INDEX;
86         MessageParcel colpData;
87         MessageParcel colpReply;
88         ASSERT_TRUE(colpData.WriteInt32(slotId));
89         ASSERT_EQ(
90             WriteSsResult(colpData, colpResult.result, colpResult.action, colpResult.colpStat), TELEPHONY_SUCCESS);
91         ASSERT_EQ(stubTestNight->OnGetColpResponseInner(colpData, colpReply), TELEPHONY_SUCCESS);
92     }
93 }
94 
95 /**
96  * @tc.number   cellular_call_ImsCallCallbackStub_0010
97  * @tc.name     Test for ImsCallCallbackStub
98  * @tc.desc     Function test
99  */
100 HWTEST_F(ImsTest, cellular_call_ImsCallCallbackStub_0010, Function | MediumTest | Level3)
101 {
102     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
103         return;
104     }
105 
106     sptr<ImsCallCallbackStub> stubTestTen = (std::make_unique<ImsCallCallbackStub>()).release();
107     ASSERT_TRUE(stubTestTen != nullptr);
108     for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
109         if (!HasSimCard(slotId)) {
110             continue;
111         }
112         GetColrResult colrResult;
113         colrResult.result.index = INVALID_INDEX;
114         MessageParcel colrErrorData;
115         MessageParcel colrErrorReply;
116         ASSERT_TRUE(colrErrorData.WriteInt32(slotId));
117         ASSERT_EQ(
118             WriteSsResult(colrErrorData, colrResult.result, colrResult.action, colrResult.colrStat), TELEPHONY_SUCCESS);
119         ASSERT_EQ(stubTestTen->OnGetColrResponseInner(colrErrorData, colrErrorReply), TELEPHONY_SUCCESS);
120 
121         colrResult.result.index = DEFAULT_INDEX;
122         MessageParcel colrData;
123         MessageParcel colrReply;
124         ASSERT_TRUE(colrData.WriteInt32(slotId));
125         ASSERT_EQ(
126             WriteSsResult(colrData, colrResult.result, colrResult.action, colrResult.colrStat), TELEPHONY_SUCCESS);
127         ASSERT_EQ(stubTestTen->OnGetColrResponseInner(colrData, colrReply), TELEPHONY_SUCCESS);
128 
129         SsBaseResult normalResult;
130         normalResult.index = DEFAULT_INDEX;
131         MessageParcel ctErrorData;
132         MessageParcel ctReply;
133         ASSERT_TRUE(ctErrorData.WriteInt32(slotId));
134         ASSERT_EQ(WriteSsBaseResult(ctErrorData, normalResult), TELEPHONY_SUCCESS);
135         ASSERT_TRUE(ctErrorData.WriteInt32(INVALID_INDEX));
136         ASSERT_TRUE(ctErrorData.WriteInt32(INVALID_INDEX));
137         ASSERT_TRUE(ctErrorData.WriteInt32(INVALID_INDEX));
138         ASSERT_NE(stubTestTen->OnGetCallTransferResponseInner(ctErrorData, ctReply), TELEPHONY_SUCCESS);
139 
140         MessageParcel icErrorData;
141         MessageParcel icReply;
142         ASSERT_TRUE(icErrorData.WriteInt32(slotId));
143         ASSERT_TRUE(icErrorData.WriteInt32(INVALID_INDEX));
144         ASSERT_TRUE(icErrorData.WriteInt32(INVALID_INDEX));
145         ASSERT_TRUE(icErrorData.WriteInt32(INVALID_INDEX));
146         ASSERT_TRUE(icErrorData.WriteInt32(INVALID_INDEX));
147         ASSERT_NE(stubTestTen->OnGetImsCallsDataResponseInner(icErrorData, icReply), TELEPHONY_SUCCESS);
148     }
149 }
150 
151 /**
152  * @tc.number   cellular_call_ImsCallCallbackStub_0011
153  * @tc.name     Test for ImsCallCallbackStub
154  * @tc.desc     Function test
155  */
156 HWTEST_F(ImsTest, cellular_call_ImsCallCallbackStub_0011, Function | MediumTest | Level3)
157 {
158     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
159         return;
160     }
161     sptr<ImsCallCallbackStub> stubTestEleven = (std::make_unique<ImsCallCallbackStub>()).release();
162     ASSERT_TRUE(stubTestEleven != nullptr);
163     for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
164         if (!HasSimCard(slotId)) {
165             continue;
166         }
167         MessageParcel callModeReceiveRequestData;
168         MessageParcel callModeReceiveRequestReply;
169         ImsCallModeReceiveInfo callModeReceiveRequesInfo;
170         callModeReceiveRequesInfo.callIndex = DEFAULT_INDEX;
171         ASSERT_TRUE(callModeReceiveRequestData.WriteInt32(slotId));
172         ASSERT_TRUE(callModeReceiveRequestData.WriteRawData(
173             (const void *)&callModeReceiveRequesInfo, sizeof(ImsCallModeReceiveInfo)));
174         ASSERT_EQ(stubTestEleven->OnReceiveUpdateCallMediaModeRequestInner(
175             callModeReceiveRequestData, callModeReceiveRequestReply), TELEPHONY_SUCCESS);
176         MessageParcel callModeReceiveResponseData;
177         MessageParcel callModeReceiveResponseReply;
178         ImsCallModeReceiveInfo callModeReceiveResponseInfo;
179         callModeReceiveResponseInfo.callIndex = DEFAULT_INDEX;
180         ASSERT_TRUE(callModeReceiveResponseData.WriteInt32(slotId));
181         ASSERT_TRUE(callModeReceiveResponseData.WriteRawData(
182             (const void *)&callModeReceiveResponseInfo, sizeof(ImsCallModeReceiveInfo)));
183         ASSERT_EQ(stubTestEleven->OnReceiveUpdateCallMediaModeResponseInner(
184             callModeReceiveResponseData, callModeReceiveResponseReply), TELEPHONY_SUCCESS);
185         MessageParcel callSessionEventInfoData;
186         MessageParcel callSessionEventInfoReply;
187         ImsCallSessionEventInfo callSessionEventInfo;
188         callSessionEventInfo.callIndex = DEFAULT_INDEX;
189         ASSERT_TRUE(callSessionEventInfoData.WriteInt32(slotId));
190         ASSERT_TRUE(callSessionEventInfoData.WriteRawData(
191             (const void *)&callSessionEventInfo, sizeof(ImsCallSessionEventInfo)));
192         ASSERT_EQ(stubTestEleven->OnCallSessionEventChangedInner(
193             callSessionEventInfoData, callSessionEventInfoReply), TELEPHONY_SUCCESS);
194     }
195 }
196 
197 /**
198  * @tc.number   cellular_call_ImsCallCallbackStub_0012
199  * @tc.name     Test for ImsCallCallbackStub
200  * @tc.desc     Function test
201  */
202 HWTEST_F(ImsTest, cellular_call_ImsCallCallbackStub_0012, Function | MediumTest | Level3)
203 {
204     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
205         return;
206     }
207     sptr<ImsCallCallbackStub> stubTestEleven = (std::make_unique<ImsCallCallbackStub>()).release();
208     ASSERT_TRUE(stubTestEleven != nullptr);
209     for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
210         if (!HasSimCard(slotId)) {
211             continue;
212         }
213         MessageParcel callPeerDimensionsInfoData;
214         MessageParcel callPeerDimensionsInfoReply;
215         ImsCallPeerDimensionsInfo callPeerDimensionsInfo;
216         callPeerDimensionsInfo.callIndex = DEFAULT_INDEX;
217         ASSERT_TRUE(callPeerDimensionsInfoData.WriteInt32(slotId));
218         ASSERT_TRUE(callPeerDimensionsInfoData.WriteRawData(
219             (const void *)&callPeerDimensionsInfo, sizeof(ImsCallPeerDimensionsInfo)));
220         ASSERT_EQ(stubTestEleven->OnPeerDimensionsChangedInner(
221             callPeerDimensionsInfoData, callPeerDimensionsInfoReply), TELEPHONY_SUCCESS);
222         MessageParcel callDataUsageInfoData;
223         MessageParcel callDataUsageInfoReply;
224         ImsCallDataUsageInfo callDataUsageInfo;
225         callDataUsageInfo.callIndex = DEFAULT_INDEX;
226         ASSERT_TRUE(callDataUsageInfoData.WriteInt32(slotId));
227         ASSERT_TRUE(callDataUsageInfoData.WriteRawData(
228             (const void *)&callDataUsageInfo, sizeof(ImsCallDataUsageInfo)));
229         ASSERT_EQ(stubTestEleven->OnCallDataUsageChangedInner(
230             callDataUsageInfoData, callDataUsageInfoReply), TELEPHONY_SUCCESS);
231         MessageParcel cameraCapabilitiesInfoData;
232         MessageParcel cameraCapabilitiesInfoReply;
233         CameraCapabilitiesInfo cameraCapabilitiesInfo;
234         cameraCapabilitiesInfo.callIndex = DEFAULT_INDEX;
235         ASSERT_TRUE(cameraCapabilitiesInfoData.WriteInt32(slotId));
236         ASSERT_TRUE(cameraCapabilitiesInfoData.WriteRawData(
237             (const void *)&cameraCapabilitiesInfo, sizeof(CameraCapabilitiesInfo)));
238         ASSERT_EQ(stubTestEleven->OnCameraCapabilitiesChangedInner(
239             cameraCapabilitiesInfoData, cameraCapabilitiesInfoReply), TELEPHONY_SUCCESS);
240     }
241 }
242 /**
243  * @tc.number   cellular_call_ImsCallCallbackStub_0013
244  * @tc.name     Test for ImsCallCallbackStub
245  * @tc.desc     Function test
246  */
247 HWTEST_F(ImsTest, cellular_call_ImsCallCallbackStub_0013, Function | MediumTest | Level3)
248 {
249     sptr<ImsCallCallbackStub> stub = (std::make_unique<ImsCallCallbackStub>()).release();
250     ASSERT_TRUE(stub != nullptr);
251     for (int32_t slotId = 0; slotId < SLOT_COUNT; slotId++) {
252         RadioResponseInfo rilRadioResponse;
253         rilRadioResponse.error = ErrType::ERR_GENERIC_FAILURE;
254         MessageParcel answerData;
255         MessageParcel answerReply;
256         ASSERT_TRUE(answerData.WriteInt32(slotId));
257         ASSERT_TRUE(answerData.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo)));
258         ASSERT_EQ(stub->OnAnswerResponseInner(answerData, answerReply), TELEPHONY_SUCCESS);
259 
260         MessageParcel dialData;
261         MessageParcel dialReply;
262         ASSERT_TRUE(dialData.WriteInt32(slotId));
263         ASSERT_TRUE(dialData.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo)));
264         ASSERT_EQ(stub->OnDialResponseInner(dialData, dialReply), TELEPHONY_SUCCESS);
265 
266         MessageParcel imsCallsData;
267         MessageParcel imsCallsReply;
268         ASSERT_TRUE(imsCallsData.WriteInt32(slotId));
269         ASSERT_TRUE(imsCallsData.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo)));
270         ASSERT_EQ(stub->OnGetImsCallsDataResponseInner(imsCallsData, imsCallsReply), TELEPHONY_SUCCESS);
271 
272         MessageParcel hangupData;
273         MessageParcel hangupReply;
274         ASSERT_TRUE(hangupData.WriteInt32(slotId));
275         ASSERT_TRUE(hangupData.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo)));
276         ASSERT_EQ(stub->OnHangUpResponseInner(hangupData, hangupReply), TELEPHONY_SUCCESS);
277 
278         MessageParcel holdCallData;
279         MessageParcel holdCallReply;
280         ASSERT_TRUE(holdCallData.WriteInt32(slotId));
281         ASSERT_TRUE(holdCallData.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo)));
282         ASSERT_EQ(stub->OnHoldCallResponseInner(holdCallData, holdCallReply), TELEPHONY_SUCCESS);
283 
284         MessageParcel rejectData;
285         MessageParcel rejectReply;
286         ASSERT_TRUE(rejectData.WriteInt32(slotId));
287         ASSERT_TRUE(rejectData.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo)));
288         ASSERT_EQ(stub->OnRejectResponseInner(rejectData, rejectReply), TELEPHONY_SUCCESS);
289     }
290 }
291 
292 /**
293  * @tc.number   cellular_call_ImsCallCallbackStub_0014
294  * @tc.name     Test for ImsCallCallbackStub
295  * @tc.desc     Function test
296  */
297 HWTEST_F(ImsTest, cellular_call_ImsCallCallbackStub_0014, Function | MediumTest | Level3)
298 {
299     sptr<ImsCallCallbackStub> stubTestTwo = (std::make_unique<ImsCallCallbackStub>()).release();
300     ASSERT_TRUE(stubTestTwo != nullptr);
301     for (int32_t slotId = 0; slotId < SLOT_COUNT; slotId++) {
302         RadioResponseInfo rilRadioResponse;
303         rilRadioResponse.error = ErrType::ERR_GENERIC_FAILURE;
304         MessageParcel sendDtmfData;
305         MessageParcel sendDtmfReply;
306         ASSERT_TRUE(sendDtmfData.WriteInt32(slotId));
307         ASSERT_TRUE(sendDtmfData.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo)));
308         ASSERT_GE(stubTestTwo->OnSendDtmfResponseInner(sendDtmfData, sendDtmfReply), TELEPHONY_SUCCESS);
309 
310         MessageParcel setImsSwitchData;
311         MessageParcel setImsSwitchReply;
312         ASSERT_TRUE(setImsSwitchData.WriteInt32(slotId));
313         ASSERT_TRUE(setImsSwitchData.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo)));
314         ASSERT_EQ(stubTestTwo->OnSetImsSwitchResponseInner(setImsSwitchData, setImsSwitchReply), TELEPHONY_SUCCESS);
315 
316         MessageParcel startDtmfData;
317         MessageParcel startDtmfReply;
318         ASSERT_TRUE(startDtmfData.WriteInt32(slotId));
319         ASSERT_TRUE(startDtmfData.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo)));
320         ASSERT_EQ(stubTestTwo->OnStartDtmfResponseInner(startDtmfData, startDtmfReply), TELEPHONY_SUCCESS);
321 
322         MessageParcel stopDtmfData;
323         MessageParcel stopDtmfReply;
324         ASSERT_TRUE(stopDtmfData.WriteInt32(slotId));
325         ASSERT_TRUE(stopDtmfData.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo)));
326         ASSERT_EQ(stubTestTwo->OnStopDtmfResponseInner(stopDtmfData, stopDtmfReply), TELEPHONY_SUCCESS);
327 
328         MessageParcel switchCallData;
329         MessageParcel switchCallReply;
330         ASSERT_TRUE(switchCallData.WriteInt32(slotId));
331         ASSERT_TRUE(switchCallData.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo)));
332         ASSERT_EQ(stubTestTwo->OnSwitchCallResponseInner(switchCallData, switchCallReply), TELEPHONY_SUCCESS);
333 
334         MessageParcel unholdData;
335         MessageParcel unholdReply;
336         ASSERT_TRUE(unholdData.WriteInt32(slotId));
337         ASSERT_TRUE(unholdData.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo)));
338         ASSERT_EQ(stubTestTwo->OnUnHoldCallResponseInner(unholdData, unholdReply), TELEPHONY_SUCCESS);
339 
340         MessageParcel getImsSwitchData;
341         MessageParcel getImsSwitchReply;
342         ASSERT_TRUE(getImsSwitchData.WriteInt32(slotId));
343         ASSERT_TRUE(getImsSwitchData.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo)));
344         ASSERT_EQ(stubTestTwo->OnGetImsSwitchResponseInner(getImsSwitchData, getImsSwitchReply), TELEPHONY_SUCCESS);
345     }
346 }
347 
348 /**
349  * @tc.number   cellular_call_ImsCallCallbackStub_0015
350  * @tc.name     Test for ImsCallCallbackStub
351  * @tc.desc     Function test
352  */
353 HWTEST_F(ImsTest, cellular_call_ImsCallCallbackStub_0015, Function | MediumTest | Level3)
354 {
355     sptr<ImsCallCallbackStub> stubTestThree = (std::make_unique<ImsCallCallbackStub>()).release();
356     ASSERT_TRUE(stubTestThree != nullptr);
357     for (int32_t slotId = 0; slotId < SLOT_COUNT; slotId++) {
358         MessageParcel data;
359         MessageParcel reply;
360         ASSERT_TRUE(data.WriteInt32(slotId));
361         ASSERT_NE(stubTestThree->OnAnswerResponseInner(data, reply), TELEPHONY_SUCCESS);
362         ASSERT_NE(stubTestThree->OnCallRingBackReportInner(data, reply), TELEPHONY_SUCCESS);
363         ASSERT_NE(stubTestThree->OnDialResponseInner(data, reply), TELEPHONY_SUCCESS);
364         ASSERT_NE(stubTestThree->OnHangUpResponseInner(data, reply), TELEPHONY_SUCCESS);
365         ASSERT_NE(stubTestThree->OnHoldCallResponseInner(data, reply), TELEPHONY_SUCCESS);
366         ASSERT_NE(stubTestThree->OnRejectResponseInner(data, reply), TELEPHONY_SUCCESS);
367         ASSERT_NE(stubTestThree->OnSendDtmfResponseInner(data, reply), TELEPHONY_SUCCESS);
368         ASSERT_NE(stubTestThree->OnSetImsSwitchResponseInner(data, reply), TELEPHONY_SUCCESS);
369         ASSERT_NE(stubTestThree->OnStartDtmfResponseInner(data, reply), TELEPHONY_SUCCESS);
370         ASSERT_NE(stubTestThree->OnStopDtmfResponseInner(data, reply), TELEPHONY_SUCCESS);
371         ASSERT_NE(stubTestThree->OnSwitchCallResponseInner(data, reply), TELEPHONY_SUCCESS);
372         ASSERT_NE(stubTestThree->OnUnHoldCallResponseInner(data, reply), TELEPHONY_SUCCESS);
373         ASSERT_NE(stubTestThree->OnSetMuteResponseInner(data, reply), TELEPHONY_SUCCESS);
374         ASSERT_NE(stubTestThree->OnCombineConferenceResponseInner(data, reply), TELEPHONY_SUCCESS);
375         ASSERT_NE(stubTestThree->OnInviteToConferenceResponseInner(data, reply), TELEPHONY_SUCCESS);
376         ASSERT_NE(stubTestThree->OnReceiveUpdateCallMediaModeRequestInner(data, reply), TELEPHONY_SUCCESS);
377         ASSERT_NE(stubTestThree->OnReceiveUpdateCallMediaModeResponseInner(data, reply), TELEPHONY_SUCCESS);
378         ASSERT_NE(stubTestThree->OnCallSessionEventChangedInner(data, reply), TELEPHONY_SUCCESS);
379         ASSERT_NE(stubTestThree->OnPeerDimensionsChangedInner(data, reply), TELEPHONY_SUCCESS);
380         ASSERT_NE(stubTestThree->OnCallDataUsageChangedInner(data, reply), TELEPHONY_SUCCESS);
381         ASSERT_NE(stubTestThree->OnCameraCapabilitiesChangedInner(data, reply), TELEPHONY_SUCCESS);
382     }
383 }
384 
385 /**
386  * @tc.number   cellular_call_ImsCallCallbackStub_0016
387  * @tc.name     Test for ImsCallCallbackStub
388  * @tc.desc     Function test
389  */
390 HWTEST_F(ImsTest, cellular_call_ImsCallCallbackStub_0016, Function | MediumTest | Level3)
391 {
392     sptr<ImsCallCallbackStub> stubTestFour = (std::make_unique<ImsCallCallbackStub>()).release();
393     ASSERT_TRUE(stubTestFour != nullptr);
394     for (int32_t slotId = 0; slotId < SLOT_COUNT; slotId++) {
395         SsBaseResult normalResult;
396         normalResult.index = DEFAULT_INDEX;
397         MessageParcel crData;
398         MessageParcel crReply;
399         ASSERT_TRUE(crData.WriteInt32(slotId));
400         ASSERT_EQ(WriteSsBaseResult(crData, normalResult), TELEPHONY_SUCCESS);
401         ASSERT_EQ(stubTestFour->OnSetCallRestrictionResponseInner(crData, crReply), TELEPHONY_SUCCESS);
402         MessageParcel ctData;
403         MessageParcel ctReply;
404         ASSERT_TRUE(ctData.WriteInt32(slotId));
405         ASSERT_EQ(WriteSsBaseResult(ctData, normalResult), TELEPHONY_SUCCESS);
406         ASSERT_EQ(stubTestFour->OnSetCallTransferResponseInner(ctData, ctReply), TELEPHONY_SUCCESS);
407         MessageParcel cwData;
408         MessageParcel cwReply;
409         ASSERT_TRUE(cwData.WriteInt32(slotId));
410         ASSERT_EQ(WriteSsBaseResult(cwData, normalResult), TELEPHONY_SUCCESS);
411         ASSERT_EQ(stubTestFour->OnSetCallWaitingResponseInner(cwData, cwReply), TELEPHONY_SUCCESS);
412         MessageParcel clipData;
413         MessageParcel clipReply;
414         ASSERT_TRUE(clipData.WriteInt32(slotId));
415         ASSERT_EQ(WriteSsBaseResult(clipData, normalResult), TELEPHONY_SUCCESS);
416         ASSERT_EQ(stubTestFour->OnSetClipResponseInner(clipData, clipReply), TELEPHONY_SUCCESS);
417         MessageParcel clirData;
418         MessageParcel clirReply;
419         ASSERT_TRUE(clirData.WriteInt32(slotId));
420         ASSERT_EQ(WriteSsBaseResult(clirData, normalResult), TELEPHONY_SUCCESS);
421         ASSERT_EQ(stubTestFour->OnSetClirResponseInner(clirData, clirReply), TELEPHONY_SUCCESS);
422         MessageParcel colpData;
423         MessageParcel colpReply;
424         ASSERT_TRUE(colpData.WriteInt32(slotId));
425         ASSERT_EQ(WriteSsBaseResult(colpData, normalResult), TELEPHONY_SUCCESS);
426         ASSERT_EQ(stubTestFour->OnSetColpResponseInner(colpData, colpReply), TELEPHONY_SUCCESS);
427         MessageParcel colrData;
428         MessageParcel colrReply;
429         ASSERT_TRUE(colrData.WriteInt32(slotId));
430         ASSERT_EQ(WriteSsBaseResult(colrData, normalResult), TELEPHONY_SUCCESS);
431         ASSERT_EQ(stubTestFour->OnSetColrResponseInner(colrData, colrReply), TELEPHONY_SUCCESS);
432     }
433 }
434 
435 /**
436  * @tc.number   cellular_call_ImsCallCallbackStub_0017
437  * @tc.name     Test for ImsCallCallbackStub
438  * @tc.desc     Function test
439  */
440 HWTEST_F(ImsTest, cellular_call_ImsCallCallbackStub_0017, Function | MediumTest | Level3)
441 {
442     sptr<ImsCallCallbackStub> stubTestFive = (std::make_unique<ImsCallCallbackStub>()).release();
443     ASSERT_TRUE(stubTestFive != nullptr);
444     for (int32_t slotId = 0; slotId < SLOT_COUNT; slotId++) {
445         SsBaseResult normalResult;
446         normalResult.index = INVALID_INDEX;
447         MessageParcel crData;
448         MessageParcel crReply;
449         ASSERT_TRUE(crData.WriteInt32(slotId));
450         ASSERT_EQ(WriteSsBaseResult(crData, normalResult), TELEPHONY_SUCCESS);
451         ASSERT_EQ(stubTestFive->OnSetCallRestrictionResponseInner(crData, crReply), TELEPHONY_SUCCESS);
452         MessageParcel ctData;
453         MessageParcel ctReply;
454         ASSERT_TRUE(ctData.WriteInt32(slotId));
455         ASSERT_EQ(WriteSsBaseResult(ctData, normalResult), TELEPHONY_SUCCESS);
456         ASSERT_EQ(stubTestFive->OnSetCallTransferResponseInner(ctData, ctReply), TELEPHONY_SUCCESS);
457         MessageParcel cwData;
458         MessageParcel cwReply;
459         ASSERT_TRUE(cwData.WriteInt32(slotId));
460         ASSERT_EQ(WriteSsBaseResult(cwData, normalResult), TELEPHONY_SUCCESS);
461         ASSERT_EQ(stubTestFive->OnSetCallWaitingResponseInner(cwData, cwReply), TELEPHONY_SUCCESS);
462         MessageParcel clipData;
463         MessageParcel clipReply;
464         ASSERT_TRUE(clipData.WriteInt32(slotId));
465         ASSERT_EQ(WriteSsBaseResult(clipData, normalResult), TELEPHONY_SUCCESS);
466         ASSERT_EQ(stubTestFive->OnSetClipResponseInner(clipData, clipReply), TELEPHONY_SUCCESS);
467         MessageParcel clirData;
468         MessageParcel clirReply;
469         ASSERT_TRUE(clirData.WriteInt32(slotId));
470         ASSERT_EQ(WriteSsBaseResult(clirData, normalResult), TELEPHONY_SUCCESS);
471         ASSERT_EQ(stubTestFive->OnSetClirResponseInner(clirData, clirReply), TELEPHONY_SUCCESS);
472         MessageParcel colpData;
473         MessageParcel colpReply;
474         ASSERT_TRUE(colpData.WriteInt32(slotId));
475         ASSERT_EQ(WriteSsBaseResult(colpData, normalResult), TELEPHONY_SUCCESS);
476         ASSERT_EQ(stubTestFive->OnSetColpResponseInner(colpData, colpReply), TELEPHONY_SUCCESS);
477         MessageParcel colrData;
478         MessageParcel colrReply;
479         ASSERT_TRUE(colrData.WriteInt32(slotId));
480         ASSERT_EQ(WriteSsBaseResult(colrData, normalResult), TELEPHONY_SUCCESS);
481         ASSERT_EQ(stubTestFive->OnSetColrResponseInner(colrData, colrReply), TELEPHONY_SUCCESS);
482     }
483 }
484 
485 /**
486  * @tc.number   cellular_call_ImsCallCallbackStub_0018
487  * @tc.name     Test for ImsCallCallbackStub
488  * @tc.desc     Function test
489  */
490 HWTEST_F(ImsTest, cellular_call_ImsCallCallbackStub_0018, Function | MediumTest | Level3)
491 {
492     sptr<ImsCallCallbackStub> stubTestSix = (std::make_unique<ImsCallCallbackStub>()).release();
493     ASSERT_TRUE(stubTestSix != nullptr);
494     for (int32_t slotId = 0; slotId < SLOT_COUNT; slotId++) {
495         SsBaseResult ssBaseResult;
496         ssBaseResult.index = DEFAULT_INDEX;
497         ssBaseResult.result = IMS_ERROR_UT_CS_FALLBACK;
498         ASSERT_NE(stubTestSix->SetCallRestrictionResponse(slotId, ssBaseResult), TELEPHONY_SUCCESS);
499         ASSERT_NE(stubTestSix->SetCallTransferResponse(slotId, ssBaseResult), TELEPHONY_SUCCESS);
500         ASSERT_NE(stubTestSix->SetCallWaitingResponse(slotId, ssBaseResult), TELEPHONY_SUCCESS);
501         ASSERT_NE(stubTestSix->SetClirResponse(slotId, ssBaseResult), TELEPHONY_SUCCESS);
502         MessageParcel muteData;
503         MessageParcel muteReply;
504         MuteControlResponse muteResponse;
505         ASSERT_TRUE(muteData.WriteInt32(slotId));
506         ASSERT_TRUE(muteData.WriteRawData((const void *)&muteResponse, sizeof(MuteControlResponse)));
507         ASSERT_EQ(stubTestSix->OnSetMuteResponseInner(muteData, muteReply), TELEPHONY_SUCCESS);
508         MessageParcel ringData;
509         MessageParcel ringReply;
510         RingbackVoice ringback;
511         ASSERT_TRUE(ringData.WriteInt32(slotId));
512         ASSERT_TRUE(ringData.WriteRawData((const void *)&ringback, sizeof(RingbackVoice)));
513         ASSERT_EQ(stubTestSix->OnCallRingBackReportInner(ringData, ringReply), TELEPHONY_SUCCESS);
514         MessageParcel failData;
515         MessageParcel failReply;
516         DisconnectedDetails details;
517         ASSERT_TRUE(failData.WriteInt32(slotId));
518         ASSERT_TRUE(failData.WriteInt32(static_cast<int32_t>(details.reason)));
519         ASSERT_TRUE(failData.WriteString(details.message));
520         ASSERT_EQ(stubTestSix->OnLastCallFailReasonResponseInner(failData, failReply), TELEPHONY_SUCCESS);
521     }
522 }
523 
524 /**
525  * @tc.number   cellular_call_ImsCallCallbackStub_0019
526  * @tc.name     Test for ImsCallCallbackStub
527  * @tc.desc     Function test
528  */
529 HWTEST_F(ImsTest, cellular_call_ImsCallCallbackStub_0019, Function | MediumTest | Level3)
530 {
531     sptr<ImsCallCallbackStub> stubTestSeven = (std::make_unique<ImsCallCallbackStub>()).release();
532     ASSERT_TRUE(stubTestSeven != nullptr);
533     for (int32_t slotId = 0; slotId < SLOT_COUNT; slotId++) {
534         CallRestrictionResult crResult;
535         crResult.result.index = INVALID_INDEX;
536         MessageParcel crErrorData;
537         MessageParcel crErrorReply;
538         ASSERT_TRUE(crErrorData.WriteInt32(slotId));
539         ASSERT_EQ(WriteSsResult(crErrorData, crResult.result, crResult.status, crResult.classCw), TELEPHONY_SUCCESS);
540         ASSERT_EQ(stubTestSeven->OnGetCallRestrictionResponseInner(crErrorData, crErrorReply), TELEPHONY_SUCCESS);
541 
542         crResult.result.index = DEFAULT_INDEX;
543         MessageParcel crData;
544         MessageParcel crReply;
545         ASSERT_TRUE(crData.WriteInt32(slotId));
546         ASSERT_EQ(WriteSsResult(crData, crResult.result, crResult.status, crResult.classCw), TELEPHONY_SUCCESS);
547         ASSERT_EQ(stubTestSeven->OnGetCallRestrictionResponseInner(crData, crReply), TELEPHONY_SUCCESS);
548         crResult.result.result = IMS_ERROR_UT_CS_FALLBACK;
549         ASSERT_NE(stubTestSeven->GetCallRestrictionResponse(slotId, crResult), TELEPHONY_SUCCESS);
550 
551         CallForwardQueryInfoList callList;
552         callList.result.index = INVALID_INDEX;
553         MessageParcel ctErrorData;
554         MessageParcel ctErrorReply;
555         ASSERT_TRUE(ctErrorData.WriteInt32(slotId));
556         ASSERT_EQ(WriteCallForwardResult(ctErrorData, callList), TELEPHONY_SUCCESS);
557         ASSERT_EQ(stubTestSeven->OnGetCallTransferResponseInner(ctErrorData, ctErrorReply), TELEPHONY_SUCCESS);
558 
559         callList.result.index = DEFAULT_INDEX;
560         MessageParcel ctData;
561         MessageParcel ctReply;
562         ASSERT_TRUE(ctData.WriteInt32(slotId));
563         ASSERT_EQ(WriteCallForwardResult(ctData, callList), TELEPHONY_SUCCESS);
564         ASSERT_EQ(stubTestSeven->OnGetCallTransferResponseInner(ctData, ctReply), TELEPHONY_SUCCESS);
565         callList.result.result = IMS_ERROR_UT_CS_FALLBACK;
566         ASSERT_NE(stubTestSeven->GetCallTransferResponse(slotId, callList), TELEPHONY_SUCCESS);
567     }
568 }
569 
570 /**
571  * @tc.number   cellular_call_ImsCallCallbackStub_0020
572  * @tc.name     Test for ImsCallCallbackStub
573  * @tc.desc     Function test
574  */
575 HWTEST_F(ImsTest, cellular_call_ImsCallCallbackStub_0020, Function | MediumTest | Level3)
576 {
577     sptr<ImsCallCallbackStub> stubTestEigth = (std::make_unique<ImsCallCallbackStub>()).release();
578     ASSERT_TRUE(stubTestEigth != nullptr);
579     for (int32_t slotId = 0; slotId < SLOT_COUNT; slotId++) {
580         CallWaitResult cwResult;
581         cwResult.result.index = INVALID_INDEX;
582         MessageParcel cwErrorData;
583         MessageParcel cwErrorReply;
584         ASSERT_TRUE(cwErrorData.WriteInt32(slotId));
585         ASSERT_EQ(WriteSsResult(cwErrorData, cwResult.result, cwResult.status, cwResult.classCw), TELEPHONY_SUCCESS);
586         ASSERT_EQ(stubTestEigth->OnGetCallWaitingResponseInner(cwErrorData, cwErrorReply), TELEPHONY_SUCCESS);
587 
588         cwResult.result.index = DEFAULT_INDEX;
589         MessageParcel cwData;
590         MessageParcel cwReply;
591         ASSERT_TRUE(cwData.WriteInt32(slotId));
592         ASSERT_EQ(WriteSsResult(cwData, cwResult.result, cwResult.status, cwResult.classCw), TELEPHONY_SUCCESS);
593         ASSERT_EQ(stubTestEigth->OnGetCallWaitingResponseInner(cwData, cwReply), TELEPHONY_SUCCESS);
594         cwResult.result.result = IMS_ERROR_UT_CS_FALLBACK;
595         ASSERT_NE(stubTestEigth->GetCallWaitingResponse(slotId, cwResult), TELEPHONY_SUCCESS);
596 
597         GetClipResult clipResult;
598         clipResult.result.index = INVALID_INDEX;
599         MessageParcel clipErrorData;
600         MessageParcel clipErrorReply;
601         ASSERT_TRUE(clipErrorData.WriteInt32(slotId));
602         ASSERT_EQ(
603             WriteSsResult(clipErrorData, clipResult.result, clipResult.action, clipResult.clipStat), TELEPHONY_SUCCESS);
604         ASSERT_EQ(stubTestEigth->OnGetClipResponseInner(clipErrorData, clipErrorReply), TELEPHONY_SUCCESS);
605 
606         clipResult.result.index = DEFAULT_INDEX;
607         MessageParcel clipData;
608         MessageParcel clipReply;
609         ASSERT_TRUE(clipData.WriteInt32(slotId));
610         ASSERT_EQ(
611             WriteSsResult(clipData, clipResult.result, clipResult.action, clipResult.clipStat), TELEPHONY_SUCCESS);
612         ASSERT_EQ(stubTestEigth->OnGetClipResponseInner(clipData, clipReply), TELEPHONY_SUCCESS);
613         clipResult.result.result = IMS_ERROR_UT_CS_FALLBACK;
614         ASSERT_NE(stubTestEigth->GetClipResponse(slotId, clipResult), TELEPHONY_SUCCESS);
615     }
616 }
617 
618 /**
619  * @tc.number   cellular_call_ImsCallCallbackStub_0021
620  * @tc.name     Test for ImsCallCallbackStub
621  * @tc.desc     Function test
622  */
623 HWTEST_F(ImsTest, cellular_call_ImsCallCallbackStub_0021, Function | MediumTest | Level3)
624 {
625     sptr<ImsCallCallbackStub> stubTestNight = (std::make_unique<ImsCallCallbackStub>()).release();
626     ASSERT_TRUE(stubTestNight != nullptr);
627     for (int32_t slotId = 0; slotId < SLOT_COUNT; slotId++) {
628         GetClirResult clirResult;
629         clirResult.result.index = INVALID_INDEX;
630         MessageParcel clirErrorData;
631         MessageParcel clirErrorReply;
632         ASSERT_TRUE(clirErrorData.WriteInt32(slotId));
633         ASSERT_EQ(
634             WriteSsResult(clirErrorData, clirResult.result, clirResult.action, clirResult.clirStat), TELEPHONY_SUCCESS);
635         ASSERT_EQ(stubTestNight->OnGetClirResponseInner(clirErrorData, clirErrorReply), TELEPHONY_SUCCESS);
636 
637         clirResult.result.index = DEFAULT_INDEX;
638         MessageParcel clirData;
639         MessageParcel clirReply;
640         ASSERT_TRUE(clirData.WriteInt32(slotId));
641         ASSERT_EQ(
642             WriteSsResult(clirData, clirResult.result, clirResult.action, clirResult.clirStat), TELEPHONY_SUCCESS);
643         ASSERT_EQ(stubTestNight->OnGetClirResponseInner(clirData, clirReply), TELEPHONY_SUCCESS);
644         clirResult.result.result = IMS_ERROR_UT_CS_FALLBACK;
645         ASSERT_NE(stubTestNight->GetClirResponse(slotId, clirResult), TELEPHONY_SUCCESS);
646 
647         GetColpResult colpResult;
648         colpResult.result.index = INVALID_INDEX;
649         MessageParcel colpErrorData;
650         MessageParcel colpErrorReply;
651         ASSERT_TRUE(colpErrorData.WriteInt32(slotId));
652         ASSERT_EQ(
653             WriteSsResult(colpErrorData, colpResult.result, colpResult.action, colpResult.colpStat), TELEPHONY_SUCCESS);
654         ASSERT_EQ(stubTestNight->OnGetColpResponseInner(colpErrorData, colpErrorReply), TELEPHONY_SUCCESS);
655 
656         colpResult.result.index = DEFAULT_INDEX;
657         MessageParcel colpData;
658         MessageParcel colpReply;
659         ASSERT_TRUE(colpData.WriteInt32(slotId));
660         ASSERT_EQ(
661             WriteSsResult(colpData, colpResult.result, colpResult.action, colpResult.colpStat), TELEPHONY_SUCCESS);
662         ASSERT_EQ(stubTestNight->OnGetColpResponseInner(colpData, colpReply), TELEPHONY_SUCCESS);
663     }
664 }
665 
666 /**
667  * @tc.number   cellular_call_ImsCallCallbackStub_0022
668  * @tc.name     Test for ImsCallCallbackStub
669  * @tc.desc     Function test
670  */
671 HWTEST_F(ImsTest, cellular_call_ImsCallCallbackStub_0022, Function | MediumTest | Level3)
672 {
673     sptr<ImsCallCallbackStub> stubTestTen = (std::make_unique<ImsCallCallbackStub>()).release();
674     ASSERT_TRUE(stubTestTen != nullptr);
675     for (int32_t slotId = 0; slotId < SLOT_COUNT; slotId++) {
676         GetColrResult colrResult;
677         colrResult.result.index = INVALID_INDEX;
678         MessageParcel colrErrorData;
679         MessageParcel colrErrorReply;
680         ASSERT_TRUE(colrErrorData.WriteInt32(slotId));
681         ASSERT_EQ(
682             WriteSsResult(colrErrorData, colrResult.result, colrResult.action, colrResult.colrStat), TELEPHONY_SUCCESS);
683         ASSERT_EQ(stubTestTen->OnGetColrResponseInner(colrErrorData, colrErrorReply), TELEPHONY_SUCCESS);
684 
685         colrResult.result.index = DEFAULT_INDEX;
686         MessageParcel colrData;
687         MessageParcel colrReply;
688         ASSERT_TRUE(colrData.WriteInt32(slotId));
689         ASSERT_EQ(
690             WriteSsResult(colrData, colrResult.result, colrResult.action, colrResult.colrStat), TELEPHONY_SUCCESS);
691         ASSERT_EQ(stubTestTen->OnGetColrResponseInner(colrData, colrReply), TELEPHONY_SUCCESS);
692 
693         SsBaseResult normalResult;
694         normalResult.index = DEFAULT_INDEX;
695         MessageParcel ctErrorData;
696         MessageParcel ctReply;
697         ASSERT_TRUE(ctErrorData.WriteInt32(slotId));
698         ASSERT_EQ(WriteSsBaseResult(ctErrorData, normalResult), TELEPHONY_SUCCESS);
699         ASSERT_TRUE(ctErrorData.WriteInt32(INVALID_INDEX));
700         ASSERT_TRUE(ctErrorData.WriteInt32(INVALID_INDEX));
701         ASSERT_TRUE(ctErrorData.WriteInt32(INVALID_INDEX));
702         ASSERT_NE(stubTestTen->OnGetCallTransferResponseInner(ctErrorData, ctReply), TELEPHONY_SUCCESS);
703 
704         MessageParcel icErrorData;
705         MessageParcel icReply;
706         ASSERT_TRUE(icErrorData.WriteInt32(slotId));
707         ASSERT_TRUE(icErrorData.WriteInt32(INVALID_INDEX));
708         ASSERT_TRUE(icErrorData.WriteInt32(INVALID_INDEX));
709         ASSERT_TRUE(icErrorData.WriteInt32(INVALID_INDEX));
710         ASSERT_TRUE(icErrorData.WriteInt32(INVALID_INDEX));
711         ASSERT_NE(stubTestTen->OnGetImsCallsDataResponseInner(icErrorData, icReply), TELEPHONY_SUCCESS);
712     }
713 }
714 
715 /**
716  * @tc.number   cellular_call_ImsCallCallbackStub_0023
717  * @tc.name     Test for ImsCallCallbackStub
718  * @tc.desc     Function test
719  */
720 HWTEST_F(ImsTest, cellular_call_ImsCallCallbackStub_0023, Function | MediumTest | Level3)
721 {
722     sptr<ImsCallCallbackStub> stubTestEleven = (std::make_unique<ImsCallCallbackStub>()).release();
723     ASSERT_TRUE(stubTestEleven != nullptr);
724     for (int32_t slotId = 0; slotId < SLOT_COUNT; slotId++) {
725         MessageParcel callModeReceiveRequestData;
726         MessageParcel callModeReceiveRequestReply;
727         ImsCallModeReceiveInfo callModeReceiveRequesInfo;
728         callModeReceiveRequesInfo.callIndex = DEFAULT_INDEX;
729         ASSERT_TRUE(callModeReceiveRequestData.WriteInt32(slotId));
730         ASSERT_TRUE(callModeReceiveRequestData.WriteRawData(
731             (const void *)&callModeReceiveRequesInfo, sizeof(ImsCallModeReceiveInfo)));
732         ASSERT_EQ(stubTestEleven->OnReceiveUpdateCallMediaModeRequestInner(
733             callModeReceiveRequestData, callModeReceiveRequestReply), TELEPHONY_SUCCESS);
734         MessageParcel callModeReceiveResponseData;
735         MessageParcel callModeReceiveResponseReply;
736         ImsCallModeReceiveInfo callModeReceiveResponseInfo;
737         callModeReceiveResponseInfo.callIndex = DEFAULT_INDEX;
738         ASSERT_TRUE(callModeReceiveResponseData.WriteInt32(slotId));
739         ASSERT_TRUE(callModeReceiveResponseData.WriteRawData(
740             (const void *)&callModeReceiveResponseInfo, sizeof(ImsCallModeReceiveInfo)));
741         ASSERT_EQ(stubTestEleven->OnReceiveUpdateCallMediaModeResponseInner(
742             callModeReceiveResponseData, callModeReceiveResponseReply), TELEPHONY_SUCCESS);
743         MessageParcel callSessionEventInfoData;
744         MessageParcel callSessionEventInfoReply;
745         ImsCallSessionEventInfo callSessionEventInfo;
746         callSessionEventInfo.callIndex = DEFAULT_INDEX;
747         ASSERT_TRUE(callSessionEventInfoData.WriteInt32(slotId));
748         ASSERT_TRUE(callSessionEventInfoData.WriteRawData(
749             (const void *)&callSessionEventInfo, sizeof(ImsCallSessionEventInfo)));
750         ASSERT_EQ(stubTestEleven->OnCallSessionEventChangedInner(
751             callSessionEventInfoData, callSessionEventInfoReply), TELEPHONY_SUCCESS);
752     }
753 }
754 
755 /**
756  * @tc.number   cellular_call_ImsCallCallbackStub_0024
757  * @tc.name     Test for ImsCallCallbackStub
758  * @tc.desc     Function test
759  */
760 HWTEST_F(ImsTest, cellular_call_ImsCallCallbackStub_0024, Function | MediumTest | Level3)
761 {
762     sptr<ImsCallCallbackStub> stubTestEleven = (std::make_unique<ImsCallCallbackStub>()).release();
763     ASSERT_TRUE(stubTestEleven != nullptr);
764     for (int32_t slotId = 0; slotId < SLOT_COUNT; slotId++) {
765         MessageParcel callPeerDimensionsInfoData;
766         MessageParcel callPeerDimensionsInfoReply;
767         ImsCallPeerDimensionsInfo callPeerDimensionsInfo;
768         callPeerDimensionsInfo.callIndex = DEFAULT_INDEX;
769         ASSERT_TRUE(callPeerDimensionsInfoData.WriteInt32(slotId));
770         ASSERT_TRUE(callPeerDimensionsInfoData.WriteRawData(
771             (const void *)&callPeerDimensionsInfo, sizeof(ImsCallPeerDimensionsInfo)));
772         ASSERT_EQ(stubTestEleven->OnPeerDimensionsChangedInner(
773             callPeerDimensionsInfoData, callPeerDimensionsInfoReply), TELEPHONY_SUCCESS);
774         MessageParcel callDataUsageInfoData;
775         MessageParcel callDataUsageInfoReply;
776         ImsCallDataUsageInfo callDataUsageInfo;
777         callDataUsageInfo.callIndex = DEFAULT_INDEX;
778         ASSERT_TRUE(callDataUsageInfoData.WriteInt32(slotId));
779         ASSERT_TRUE(callDataUsageInfoData.WriteRawData(
780             (const void *)&callDataUsageInfo, sizeof(ImsCallDataUsageInfo)));
781         ASSERT_EQ(stubTestEleven->OnCallDataUsageChangedInner(
782             callDataUsageInfoData, callDataUsageInfoReply), TELEPHONY_SUCCESS);
783         MessageParcel cameraCapabilitiesInfoData;
784         MessageParcel cameraCapabilitiesInfoReply;
785         CameraCapabilitiesInfo cameraCapabilitiesInfo;
786         cameraCapabilitiesInfo.callIndex = DEFAULT_INDEX;
787         ASSERT_TRUE(cameraCapabilitiesInfoData.WriteInt32(slotId));
788         ASSERT_TRUE(cameraCapabilitiesInfoData.WriteRawData(
789             (const void *)&cameraCapabilitiesInfo, sizeof(CameraCapabilitiesInfo)));
790         ASSERT_EQ(stubTestEleven->OnCameraCapabilitiesChangedInner(
791             cameraCapabilitiesInfoData, cameraCapabilitiesInfoReply), TELEPHONY_SUCCESS);
792     }
793 }
794 
795 /**
796  * @tc.number   cellular_call_ImsCallCallbackStub_0001
797  * @tc.name     Test for ImsCallCallbackStub
798  * @tc.desc     Function test
799  */
800 HWTEST_F(ImsTest, cellular_call_ImsCallCallbackStub_0001, Function | MediumTest | Level3)
801 {
802     sptr<ImsCallCallbackStub> stub = (std::make_unique<ImsCallCallbackStub>()).release();
803     ASSERT_TRUE(stub != nullptr);
804     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
805         return;
806     }
807     for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
808         if (!HasSimCard(slotId)) {
809             continue;
810         }
811         RadioResponseInfo rilRadioResponse;
812         rilRadioResponse.error = ErrType::ERR_GENERIC_FAILURE;
813         MessageParcel answerData;
814         MessageParcel answerReply;
815         ASSERT_TRUE(answerData.WriteInt32(slotId));
816         ASSERT_TRUE(answerData.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo)));
817         ASSERT_EQ(stub->OnAnswerResponseInner(answerData, answerReply), TELEPHONY_SUCCESS);
818 
819         MessageParcel dialData;
820         MessageParcel dialReply;
821         ASSERT_TRUE(dialData.WriteInt32(slotId));
822         ASSERT_TRUE(dialData.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo)));
823         ASSERT_EQ(stub->OnDialResponseInner(dialData, dialReply), TELEPHONY_SUCCESS);
824 
825         MessageParcel imsCallsData;
826         MessageParcel imsCallsReply;
827         ASSERT_TRUE(imsCallsData.WriteInt32(slotId));
828         ASSERT_TRUE(imsCallsData.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo)));
829         ASSERT_EQ(stub->OnGetImsCallsDataResponseInner(imsCallsData, imsCallsReply), TELEPHONY_SUCCESS);
830 
831         MessageParcel hangupData;
832         MessageParcel hangupReply;
833         ASSERT_TRUE(hangupData.WriteInt32(slotId));
834         ASSERT_TRUE(hangupData.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo)));
835         ASSERT_EQ(stub->OnHangUpResponseInner(hangupData, hangupReply), TELEPHONY_SUCCESS);
836 
837         MessageParcel holdCallData;
838         MessageParcel holdCallReply;
839         ASSERT_TRUE(holdCallData.WriteInt32(slotId));
840         ASSERT_TRUE(holdCallData.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo)));
841         ASSERT_EQ(stub->OnHoldCallResponseInner(holdCallData, holdCallReply), TELEPHONY_SUCCESS);
842 
843         MessageParcel rejectData;
844         MessageParcel rejectReply;
845         ASSERT_TRUE(rejectData.WriteInt32(slotId));
846         ASSERT_TRUE(rejectData.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo)));
847         ASSERT_EQ(stub->OnRejectResponseInner(rejectData, rejectReply), TELEPHONY_SUCCESS);
848     }
849 }
850 
851 /**
852  * @tc.number   cellular_call_ImsCallCallbackStub_0002
853  * @tc.name     Test for ImsCallCallbackStub
854  * @tc.desc     Function test
855  */
856 HWTEST_F(ImsTest, cellular_call_ImsCallCallbackStub_0002, Function | MediumTest | Level3)
857 {
858     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
859         return;
860     }
861     sptr<ImsCallCallbackStub> stubTestTwo = (std::make_unique<ImsCallCallbackStub>()).release();
862     ASSERT_TRUE(stubTestTwo != nullptr);
863     for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
864         if (!HasSimCard(slotId)) {
865             continue;
866         }
867         RadioResponseInfo rilRadioResponse;
868         rilRadioResponse.error = ErrType::ERR_GENERIC_FAILURE;
869         MessageParcel sendDtmfData;
870         MessageParcel sendDtmfReply;
871         ASSERT_TRUE(sendDtmfData.WriteInt32(slotId));
872         ASSERT_TRUE(sendDtmfData.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo)));
873         ASSERT_GE(stubTestTwo->OnSendDtmfResponseInner(sendDtmfData, sendDtmfReply), TELEPHONY_SUCCESS);
874 
875         MessageParcel setImsSwitchData;
876         MessageParcel setImsSwitchReply;
877         ASSERT_TRUE(setImsSwitchData.WriteInt32(slotId));
878         ASSERT_TRUE(setImsSwitchData.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo)));
879         ASSERT_EQ(stubTestTwo->OnSetImsSwitchResponseInner(setImsSwitchData, setImsSwitchReply), TELEPHONY_SUCCESS);
880 
881         MessageParcel startDtmfData;
882         MessageParcel startDtmfReply;
883         ASSERT_TRUE(startDtmfData.WriteInt32(slotId));
884         ASSERT_TRUE(startDtmfData.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo)));
885         ASSERT_EQ(stubTestTwo->OnStartDtmfResponseInner(startDtmfData, startDtmfReply), TELEPHONY_SUCCESS);
886 
887         MessageParcel stopDtmfData;
888         MessageParcel stopDtmfReply;
889         ASSERT_TRUE(stopDtmfData.WriteInt32(slotId));
890         ASSERT_TRUE(stopDtmfData.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo)));
891         ASSERT_EQ(stubTestTwo->OnStopDtmfResponseInner(stopDtmfData, stopDtmfReply), TELEPHONY_SUCCESS);
892 
893         MessageParcel switchCallData;
894         MessageParcel switchCallReply;
895         ASSERT_TRUE(switchCallData.WriteInt32(slotId));
896         ASSERT_TRUE(switchCallData.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo)));
897         ASSERT_EQ(stubTestTwo->OnSwitchCallResponseInner(switchCallData, switchCallReply), TELEPHONY_SUCCESS);
898 
899         MessageParcel unholdData;
900         MessageParcel unholdReply;
901         ASSERT_TRUE(unholdData.WriteInt32(slotId));
902         ASSERT_TRUE(unholdData.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo)));
903         ASSERT_EQ(stubTestTwo->OnUnHoldCallResponseInner(unholdData, unholdReply), TELEPHONY_SUCCESS);
904 
905         MessageParcel getImsSwitchData;
906         MessageParcel getImsSwitchReply;
907         ASSERT_TRUE(getImsSwitchData.WriteInt32(slotId));
908         ASSERT_TRUE(getImsSwitchData.WriteRawData((const void *)&rilRadioResponse, sizeof(RadioResponseInfo)));
909         ASSERT_EQ(stubTestTwo->OnGetImsSwitchResponseInner(getImsSwitchData, getImsSwitchReply), TELEPHONY_SUCCESS);
910     }
911 }
912 
913 /**
914  * @tc.number   cellular_call_ImsCallCallbackStub_0003
915  * @tc.name     Test for ImsCallCallbackStub
916  * @tc.desc     Function test
917  */
918 HWTEST_F(ImsTest, cellular_call_ImsCallCallbackStub_0003, Function | MediumTest | Level3)
919 {
920     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
921         return;
922     }
923 
924     sptr<ImsCallCallbackStub> stubTestThree = (std::make_unique<ImsCallCallbackStub>()).release();
925     ASSERT_TRUE(stubTestThree != nullptr);
926     for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
927         if (!HasSimCard(slotId)) {
928             continue;
929         }
930         MessageParcel data;
931         MessageParcel reply;
932         ASSERT_TRUE(data.WriteInt32(slotId));
933         ASSERT_NE(stubTestThree->OnAnswerResponseInner(data, reply), TELEPHONY_SUCCESS);
934         ASSERT_NE(stubTestThree->OnCallRingBackReportInner(data, reply), TELEPHONY_SUCCESS);
935         ASSERT_NE(stubTestThree->OnDialResponseInner(data, reply), TELEPHONY_SUCCESS);
936         ASSERT_NE(stubTestThree->OnHangUpResponseInner(data, reply), TELEPHONY_SUCCESS);
937         ASSERT_NE(stubTestThree->OnHoldCallResponseInner(data, reply), TELEPHONY_SUCCESS);
938         ASSERT_NE(stubTestThree->OnRejectResponseInner(data, reply), TELEPHONY_SUCCESS);
939         ASSERT_NE(stubTestThree->OnSendDtmfResponseInner(data, reply), TELEPHONY_SUCCESS);
940         ASSERT_NE(stubTestThree->OnSetImsSwitchResponseInner(data, reply), TELEPHONY_SUCCESS);
941         ASSERT_NE(stubTestThree->OnStartDtmfResponseInner(data, reply), TELEPHONY_SUCCESS);
942         ASSERT_NE(stubTestThree->OnStopDtmfResponseInner(data, reply), TELEPHONY_SUCCESS);
943         ASSERT_NE(stubTestThree->OnSwitchCallResponseInner(data, reply), TELEPHONY_SUCCESS);
944         ASSERT_NE(stubTestThree->OnUnHoldCallResponseInner(data, reply), TELEPHONY_SUCCESS);
945         ASSERT_NE(stubTestThree->OnSetMuteResponseInner(data, reply), TELEPHONY_SUCCESS);
946         ASSERT_NE(stubTestThree->OnCombineConferenceResponseInner(data, reply), TELEPHONY_SUCCESS);
947         ASSERT_NE(stubTestThree->OnInviteToConferenceResponseInner(data, reply), TELEPHONY_SUCCESS);
948         ASSERT_NE(stubTestThree->OnReceiveUpdateCallMediaModeRequestInner(data, reply), TELEPHONY_SUCCESS);
949         ASSERT_NE(stubTestThree->OnReceiveUpdateCallMediaModeResponseInner(data, reply), TELEPHONY_SUCCESS);
950         ASSERT_NE(stubTestThree->OnCallSessionEventChangedInner(data, reply), TELEPHONY_SUCCESS);
951         ASSERT_NE(stubTestThree->OnPeerDimensionsChangedInner(data, reply), TELEPHONY_SUCCESS);
952         ASSERT_NE(stubTestThree->OnCallDataUsageChangedInner(data, reply), TELEPHONY_SUCCESS);
953         ASSERT_NE(stubTestThree->OnCameraCapabilitiesChangedInner(data, reply), TELEPHONY_SUCCESS);
954     }
955 }
956 
957 /**
958  * @tc.number   cellular_call_ImsCallCallbackStub_0004
959  * @tc.name     Test for ImsCallCallbackStub
960  * @tc.desc     Function test
961  */
962 HWTEST_F(ImsTest, cellular_call_ImsCallCallbackStub_0004, Function | MediumTest | Level3)
963 {
964     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
965         return;
966     }
967     sptr<ImsCallCallbackStub> stubTestFour = (std::make_unique<ImsCallCallbackStub>()).release();
968     ASSERT_TRUE(stubTestFour != nullptr);
969     for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
970         if (!HasSimCard(slotId)) {
971             continue;
972         }
973         SsBaseResult normalResult;
974         normalResult.index = DEFAULT_INDEX;
975         MessageParcel crData;
976         MessageParcel crReply;
977         ASSERT_TRUE(crData.WriteInt32(slotId));
978         ASSERT_EQ(WriteSsBaseResult(crData, normalResult), TELEPHONY_SUCCESS);
979         ASSERT_EQ(stubTestFour->OnSetCallRestrictionResponseInner(crData, crReply), TELEPHONY_SUCCESS);
980         MessageParcel ctData;
981         MessageParcel ctReply;
982         ASSERT_TRUE(ctData.WriteInt32(slotId));
983         ASSERT_EQ(WriteSsBaseResult(ctData, normalResult), TELEPHONY_SUCCESS);
984         ASSERT_EQ(stubTestFour->OnSetCallTransferResponseInner(ctData, ctReply), TELEPHONY_SUCCESS);
985         MessageParcel cwData;
986         MessageParcel cwReply;
987         ASSERT_TRUE(cwData.WriteInt32(slotId));
988         ASSERT_EQ(WriteSsBaseResult(cwData, normalResult), TELEPHONY_SUCCESS);
989         ASSERT_EQ(stubTestFour->OnSetCallWaitingResponseInner(cwData, cwReply), TELEPHONY_SUCCESS);
990         MessageParcel clipData;
991         MessageParcel clipReply;
992         ASSERT_TRUE(clipData.WriteInt32(slotId));
993         ASSERT_EQ(WriteSsBaseResult(clipData, normalResult), TELEPHONY_SUCCESS);
994         ASSERT_EQ(stubTestFour->OnSetClipResponseInner(clipData, clipReply), TELEPHONY_SUCCESS);
995         MessageParcel clirData;
996         MessageParcel clirReply;
997         ASSERT_TRUE(clirData.WriteInt32(slotId));
998         ASSERT_EQ(WriteSsBaseResult(clirData, normalResult), TELEPHONY_SUCCESS);
999         ASSERT_EQ(stubTestFour->OnSetClirResponseInner(clirData, clirReply), TELEPHONY_SUCCESS);
1000         MessageParcel colpData;
1001         MessageParcel colpReply;
1002         ASSERT_TRUE(colpData.WriteInt32(slotId));
1003         ASSERT_EQ(WriteSsBaseResult(colpData, normalResult), TELEPHONY_SUCCESS);
1004         ASSERT_EQ(stubTestFour->OnSetColpResponseInner(colpData, colpReply), TELEPHONY_SUCCESS);
1005         MessageParcel colrData;
1006         MessageParcel colrReply;
1007         ASSERT_TRUE(colrData.WriteInt32(slotId));
1008         ASSERT_EQ(WriteSsBaseResult(colrData, normalResult), TELEPHONY_SUCCESS);
1009         ASSERT_EQ(stubTestFour->OnSetColrResponseInner(colrData, colrReply), TELEPHONY_SUCCESS);
1010     }
1011 }
1012 
1013 /**
1014  * @tc.number   cellular_call_ImsCallCallbackStub_0005
1015  * @tc.name     Test for ImsCallCallbackStub
1016  * @tc.desc     Function test
1017  */
1018 HWTEST_F(ImsTest, cellular_call_ImsCallCallbackStub_0005, Function | MediumTest | Level3)
1019 {
1020     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1021         return;
1022     }
1023     sptr<ImsCallCallbackStub> stubTestFive = (std::make_unique<ImsCallCallbackStub>()).release();
1024     ASSERT_TRUE(stubTestFive != nullptr);
1025     for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
1026         if (!HasSimCard(slotId)) {
1027             continue;
1028         }
1029         SsBaseResult normalResult;
1030         normalResult.index = INVALID_INDEX;
1031         MessageParcel crData;
1032         MessageParcel crReply;
1033         ASSERT_TRUE(crData.WriteInt32(slotId));
1034         ASSERT_EQ(WriteSsBaseResult(crData, normalResult), TELEPHONY_SUCCESS);
1035         ASSERT_EQ(stubTestFive->OnSetCallRestrictionResponseInner(crData, crReply), TELEPHONY_SUCCESS);
1036         MessageParcel ctData;
1037         MessageParcel ctReply;
1038         ASSERT_TRUE(ctData.WriteInt32(slotId));
1039         ASSERT_EQ(WriteSsBaseResult(ctData, normalResult), TELEPHONY_SUCCESS);
1040         ASSERT_EQ(stubTestFive->OnSetCallTransferResponseInner(ctData, ctReply), TELEPHONY_SUCCESS);
1041         MessageParcel cwData;
1042         MessageParcel cwReply;
1043         ASSERT_TRUE(cwData.WriteInt32(slotId));
1044         ASSERT_EQ(WriteSsBaseResult(cwData, normalResult), TELEPHONY_SUCCESS);
1045         ASSERT_EQ(stubTestFive->OnSetCallWaitingResponseInner(cwData, cwReply), TELEPHONY_SUCCESS);
1046         MessageParcel clipData;
1047         MessageParcel clipReply;
1048         ASSERT_TRUE(clipData.WriteInt32(slotId));
1049         ASSERT_EQ(WriteSsBaseResult(clipData, normalResult), TELEPHONY_SUCCESS);
1050         ASSERT_EQ(stubTestFive->OnSetClipResponseInner(clipData, clipReply), TELEPHONY_SUCCESS);
1051         MessageParcel clirData;
1052         MessageParcel clirReply;
1053         ASSERT_TRUE(clirData.WriteInt32(slotId));
1054         ASSERT_EQ(WriteSsBaseResult(clirData, normalResult), TELEPHONY_SUCCESS);
1055         ASSERT_EQ(stubTestFive->OnSetClirResponseInner(clirData, clirReply), TELEPHONY_SUCCESS);
1056         MessageParcel colpData;
1057         MessageParcel colpReply;
1058         ASSERT_TRUE(colpData.WriteInt32(slotId));
1059         ASSERT_EQ(WriteSsBaseResult(colpData, normalResult), TELEPHONY_SUCCESS);
1060         ASSERT_EQ(stubTestFive->OnSetColpResponseInner(colpData, colpReply), TELEPHONY_SUCCESS);
1061         MessageParcel colrData;
1062         MessageParcel colrReply;
1063         ASSERT_TRUE(colrData.WriteInt32(slotId));
1064         ASSERT_EQ(WriteSsBaseResult(colrData, normalResult), TELEPHONY_SUCCESS);
1065         ASSERT_EQ(stubTestFive->OnSetColrResponseInner(colrData, colrReply), TELEPHONY_SUCCESS);
1066     }
1067 }
1068 
1069 /**
1070  * @tc.number   cellular_call_ImsCallCallbackStub_0006
1071  * @tc.name     Test for ImsCallCallbackStub
1072  * @tc.desc     Function test
1073  */
1074 HWTEST_F(ImsTest, cellular_call_ImsCallCallbackStub_0006, Function | MediumTest | Level3)
1075 {
1076     sptr<ImsCallCallbackStub> stubTestSix = (std::make_unique<ImsCallCallbackStub>()).release();
1077     ASSERT_TRUE(stubTestSix != nullptr);
1078     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1079         return;
1080     }
1081     for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
1082         if (!HasSimCard(slotId)) {
1083             continue;
1084         }
1085         SsBaseResult ssBaseResult;
1086         ssBaseResult.index = DEFAULT_INDEX;
1087         ssBaseResult.result = IMS_ERROR_UT_CS_FALLBACK;
1088         ASSERT_NE(stubTestSix->SetCallRestrictionResponse(slotId, ssBaseResult), TELEPHONY_SUCCESS);
1089         ASSERT_NE(stubTestSix->SetCallTransferResponse(slotId, ssBaseResult), TELEPHONY_SUCCESS);
1090         ASSERT_NE(stubTestSix->SetCallWaitingResponse(slotId, ssBaseResult), TELEPHONY_SUCCESS);
1091         ASSERT_NE(stubTestSix->SetClirResponse(slotId, ssBaseResult), TELEPHONY_SUCCESS);
1092         MessageParcel muteData;
1093         MessageParcel muteReply;
1094         MuteControlResponse muteResponse;
1095         ASSERT_TRUE(muteData.WriteInt32(slotId));
1096         ASSERT_TRUE(muteData.WriteRawData((const void *)&muteResponse, sizeof(MuteControlResponse)));
1097         ASSERT_EQ(stubTestSix->OnSetMuteResponseInner(muteData, muteReply), TELEPHONY_SUCCESS);
1098         MessageParcel ringData;
1099         MessageParcel ringReply;
1100         RingbackVoice ringback;
1101         ASSERT_TRUE(ringData.WriteInt32(slotId));
1102         ASSERT_TRUE(ringData.WriteRawData((const void *)&ringback, sizeof(RingbackVoice)));
1103         ASSERT_EQ(stubTestSix->OnCallRingBackReportInner(ringData, ringReply), TELEPHONY_SUCCESS);
1104         MessageParcel failData;
1105         MessageParcel failReply;
1106         DisconnectedDetails details;
1107         ASSERT_TRUE(failData.WriteInt32(slotId));
1108         ASSERT_TRUE(failData.WriteInt32(static_cast<int32_t>(details.reason)));
1109         ASSERT_TRUE(failData.WriteString(details.message));
1110         ASSERT_EQ(stubTestSix->OnLastCallFailReasonResponseInner(failData, failReply), TELEPHONY_SUCCESS);
1111     }
1112 }
1113 
1114 /**
1115  * @tc.number   cellular_call_ImsCallCallbackStub_0007
1116  * @tc.name     Test for ImsCallCallbackStub
1117  * @tc.desc     Function test
1118  */
1119 HWTEST_F(ImsTest, cellular_call_ImsCallCallbackStub_0007, Function | MediumTest | Level3)
1120 {
1121     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1122         return;
1123     }
1124     sptr<ImsCallCallbackStub> stubTestSeven = (std::make_unique<ImsCallCallbackStub>()).release();
1125     ASSERT_TRUE(stubTestSeven != nullptr);
1126     for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
1127         if (!HasSimCard(slotId)) {
1128             continue;
1129         }
1130         CallRestrictionResult crResult;
1131         crResult.result.index = INVALID_INDEX;
1132         MessageParcel crErrorData;
1133         MessageParcel crErrorReply;
1134         ASSERT_TRUE(crErrorData.WriteInt32(slotId));
1135         ASSERT_EQ(WriteSsResult(crErrorData, crResult.result, crResult.status, crResult.classCw), TELEPHONY_SUCCESS);
1136         ASSERT_EQ(stubTestSeven->OnGetCallRestrictionResponseInner(crErrorData, crErrorReply), TELEPHONY_SUCCESS);
1137 
1138         crResult.result.index = DEFAULT_INDEX;
1139         MessageParcel crData;
1140         MessageParcel crReply;
1141         ASSERT_TRUE(crData.WriteInt32(slotId));
1142         ASSERT_EQ(WriteSsResult(crData, crResult.result, crResult.status, crResult.classCw), TELEPHONY_SUCCESS);
1143         ASSERT_EQ(stubTestSeven->OnGetCallRestrictionResponseInner(crData, crReply), TELEPHONY_SUCCESS);
1144         crResult.result.result = IMS_ERROR_UT_CS_FALLBACK;
1145         ASSERT_NE(stubTestSeven->GetCallRestrictionResponse(slotId, crResult), TELEPHONY_SUCCESS);
1146 
1147         CallForwardQueryInfoList callList;
1148         callList.result.index = INVALID_INDEX;
1149         MessageParcel ctErrorData;
1150         MessageParcel ctErrorReply;
1151         ASSERT_TRUE(ctErrorData.WriteInt32(slotId));
1152         ASSERT_EQ(WriteCallForwardResult(ctErrorData, callList), TELEPHONY_SUCCESS);
1153         ASSERT_EQ(stubTestSeven->OnGetCallTransferResponseInner(ctErrorData, ctErrorReply), TELEPHONY_SUCCESS);
1154 
1155         callList.result.index = DEFAULT_INDEX;
1156         MessageParcel ctData;
1157         MessageParcel ctReply;
1158         ASSERT_TRUE(ctData.WriteInt32(slotId));
1159         ASSERT_EQ(WriteCallForwardResult(ctData, callList), TELEPHONY_SUCCESS);
1160         ASSERT_EQ(stubTestSeven->OnGetCallTransferResponseInner(ctData, ctReply), TELEPHONY_SUCCESS);
1161         callList.result.result = IMS_ERROR_UT_CS_FALLBACK;
1162         ASSERT_NE(stubTestSeven->GetCallTransferResponse(slotId, callList), TELEPHONY_SUCCESS);
1163     }
1164 }
1165 
1166 /**
1167  * @tc.number   cellular_call_ImsCallCallbackStub_0008
1168  * @tc.name     Test for ImsCallCallbackStub
1169  * @tc.desc     Function test
1170  */
1171 HWTEST_F(ImsTest, cellular_call_ImsCallCallbackStub_0008, Function | MediumTest | Level3)
1172 {
1173     if (!HasSimCard(SIM1_SLOTID) && !HasSimCard(SIM2_SLOTID)) {
1174         return;
1175     }
1176     sptr<ImsCallCallbackStub> stubTestEigth = (std::make_unique<ImsCallCallbackStub>()).release();
1177     ASSERT_TRUE(stubTestEigth != nullptr);
1178     for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
1179         if (!HasSimCard(slotId)) {
1180             continue;
1181         }
1182         CallWaitResult cwResult;
1183         cwResult.result.index = INVALID_INDEX;
1184         MessageParcel cwErrorData;
1185         MessageParcel cwErrorReply;
1186         ASSERT_TRUE(cwErrorData.WriteInt32(slotId));
1187         ASSERT_EQ(WriteSsResult(cwErrorData, cwResult.result, cwResult.status, cwResult.classCw), TELEPHONY_SUCCESS);
1188         ASSERT_EQ(stubTestEigth->OnGetCallWaitingResponseInner(cwErrorData, cwErrorReply), TELEPHONY_SUCCESS);
1189 
1190         cwResult.result.index = DEFAULT_INDEX;
1191         MessageParcel cwData;
1192         MessageParcel cwReply;
1193         ASSERT_TRUE(cwData.WriteInt32(slotId));
1194         ASSERT_EQ(WriteSsResult(cwData, cwResult.result, cwResult.status, cwResult.classCw), TELEPHONY_SUCCESS);
1195         ASSERT_EQ(stubTestEigth->OnGetCallWaitingResponseInner(cwData, cwReply), TELEPHONY_SUCCESS);
1196         cwResult.result.result = IMS_ERROR_UT_CS_FALLBACK;
1197         ASSERT_NE(stubTestEigth->GetCallWaitingResponse(slotId, cwResult), TELEPHONY_SUCCESS);
1198 
1199         GetClipResult clipResult;
1200         clipResult.result.index = INVALID_INDEX;
1201         MessageParcel clipErrorData;
1202         MessageParcel clipErrorReply;
1203         ASSERT_TRUE(clipErrorData.WriteInt32(slotId));
1204         ASSERT_EQ(
1205             WriteSsResult(clipErrorData, clipResult.result, clipResult.action, clipResult.clipStat), TELEPHONY_SUCCESS);
1206         ASSERT_EQ(stubTestEigth->OnGetClipResponseInner(clipErrorData, clipErrorReply), TELEPHONY_SUCCESS);
1207 
1208         clipResult.result.index = DEFAULT_INDEX;
1209         MessageParcel clipData;
1210         MessageParcel clipReply;
1211         ASSERT_TRUE(clipData.WriteInt32(slotId));
1212         ASSERT_EQ(
1213             WriteSsResult(clipData, clipResult.result, clipResult.action, clipResult.clipStat), TELEPHONY_SUCCESS);
1214         ASSERT_EQ(stubTestEigth->OnGetClipResponseInner(clipData, clipReply), TELEPHONY_SUCCESS);
1215         clipResult.result.result = IMS_ERROR_UT_CS_FALLBACK;
1216         ASSERT_NE(stubTestEigth->GetClipResponse(slotId, clipResult), TELEPHONY_SUCCESS);
1217     }
1218 }
1219 } // namespace Telephony
1220 } // namespace OHOS
1221