1 /*
2  * Copyright (C) 2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "gtest/gtest.h"
17 #define private public
18 #define protected public
19 #include "ims_sms_client.h"
20 #include "ims_sms_proxy.h"
21 #include "ims_sms_callback_stub.h"
22 #include "mock/mock_ims_core_service_interface.h"
23 #include "mock/mock_ims_sms_callback_interface.h"
24 #include "mock/mock_ims_sms_interface.h"
25 #include "mock/mock_remote_object.h"
26 
27 namespace OHOS {
28 namespace Telephony {
29 using namespace testing::ext;
30 
31 class SmsImsServiceInteractionTest : public testing::Test {
32 public:
33     static void SetUpTestCase();
34     static void TearDownTestCase();
35     void SetUp();
36     void TearDown();
37 };
SetUpTestCase()38 void SmsImsServiceInteractionTest::SetUpTestCase() {}
TearDownTestCase()39 void SmsImsServiceInteractionTest::TearDownTestCase() {}
SetUp()40 void SmsImsServiceInteractionTest::SetUp() {}
TearDown()41 void SmsImsServiceInteractionTest::TearDown() {}
42 
43 /**
44  * @tc.number   Telephony_SmsImsServiceInteractionTest_smsImsServiceInteractionTest_001
45  * @tc.name     smsServiceProxyTest_001
46  * @tc.desc     Function test
47  */
HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_001, Function | MediumTest | Level1)48 HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_001, Function | MediumTest | Level1)
49 {
50     sptr<ImsSmsInterface> pImsSms = new MockImsSms();
51     DelayedSingleton<ImsSmsClient>::GetInstance()->imsSmsProxy_ = pImsSms;
52     DelayedSingleton<ImsSmsClient>::GetInstance()->Init();
53     DelayedSingleton<ImsSmsClient>::GetInstance()->GetImsSmsProxy();
54     EXPECT_EQ(DelayedSingleton<ImsSmsClient>::GetInstance()->IsConnect(), true);
55     DelayedSingleton<ImsSmsClient>::DestroyInstance();
56 }
57 
58 /**
59  * @tc.number   Telephony_SmsImsServiceInteractionTest_smsImsServiceInteractionTest_002
60  * @tc.name     smsServiceProxyTest_001
61  * @tc.desc     Function test
62  */
HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_002, Function | MediumTest | Level1)63 HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_002, Function | MediumTest | Level1)
64 {
65     EXPECT_EQ(DelayedSingleton<ImsSmsClient>::GetInstance()->RegisterImsSmsCallback(), TELEPHONY_ERR_LOCAL_PTR_NULL);
66     DelayedSingleton<ImsSmsClient>::DestroyInstance();
67 }
68 
69 /**
70  * @tc.number   Telephony_SmsImsServiceInteractionTest_smsImsServiceInteractionTest_003
71  * @tc.name     smsServiceProxyTest_001
72  * @tc.desc     Function test
73  */
HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_003, Function | MediumTest | Level1)74 HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_003, Function | MediumTest | Level1)
75 {
76     sptr<MockImsSms> pImsSms = new MockImsSms();
77     pImsSms->retRegisterImsSmsCallback = 1;
78     DelayedSingleton<ImsSmsClient>::GetInstance()->imsSmsProxy_ = pImsSms;
79     EXPECT_EQ(DelayedSingleton<ImsSmsClient>::GetInstance()->RegisterImsSmsCallback(), TELEPHONY_ERR_FAIL);
80     DelayedSingleton<ImsSmsClient>::DestroyInstance();
81 }
82 
83 /**
84  * @tc.number   Telephony_SmsImsServiceInteractionTest_smsImsServiceInteractionTest_004
85  * @tc.name     smsServiceProxyTest_001
86  * @tc.desc     Function test
87  */
HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_004, Function | MediumTest | Level1)88 HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_004, Function | MediumTest | Level1)
89 {
90     sptr<MockImsSms> pImsSms = new MockImsSms();
91     pImsSms->retImsSendMessage = 1;
92     DelayedSingleton<ImsSmsClient>::GetInstance()->imsSmsProxy_ = pImsSms;
93     int32_t slotId = 0;
94     ImsMessageInfo imsMessageInfo;
95     EXPECT_EQ(DelayedSingleton<ImsSmsClient>::GetInstance()->ImsSendMessage(slotId, imsMessageInfo),
96         pImsSms->retImsSendMessage);
97     DelayedSingleton<ImsSmsClient>::DestroyInstance();
98 }
99 
100 /**
101  * @tc.number   Telephony_SmsImsServiceInteractionTest_smsImsServiceInteractionTest_005
102  * @tc.name     smsServiceProxyTest_001
103  * @tc.desc     Function test
104  */
HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_005, Function | MediumTest | Level1)105 HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_005, Function | MediumTest | Level1)
106 {
107     sptr<MockImsSms> pImsSms = new MockImsSms();
108     pImsSms->retImsSetSmsConfig = 1;
109     DelayedSingleton<ImsSmsClient>::GetInstance()->imsSmsProxy_ = pImsSms;
110     int32_t slotId = 0, imsSmsConfig = 0;
111     EXPECT_EQ(DelayedSingleton<ImsSmsClient>::GetInstance()->ImsSetSmsConfig(slotId, imsSmsConfig),
112         pImsSms->retImsSetSmsConfig);
113     DelayedSingleton<ImsSmsClient>::DestroyInstance();
114 }
115 
116 /**
117  * @tc.number   Telephony_SmsImsServiceInteractionTest_smsImsServiceInteractionTest_006
118  * @tc.name     smsServiceProxyTest_001
119  * @tc.desc     Function test
120  */
HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_006, Function | MediumTest | Level1)121 HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_006, Function | MediumTest | Level1)
122 {
123     sptr<MockImsSms> pImsSms = new MockImsSms();
124     pImsSms->retImsGetSmsConfig = 1;
125     DelayedSingleton<ImsSmsClient>::GetInstance()->imsSmsProxy_ = pImsSms;
126     int32_t slotId = 0;
127     EXPECT_EQ(DelayedSingleton<ImsSmsClient>::GetInstance()->ImsGetSmsConfig(slotId), pImsSms->retImsGetSmsConfig);
128     DelayedSingleton<ImsSmsClient>::DestroyInstance();
129 }
130 
131 /**
132  * @tc.number   Telephony_SmsImsServiceInteractionTest_smsImsServiceInteractionTest_007
133  * @tc.name     smsServiceProxyTest_001
134  * @tc.desc     Function test
135  */
HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_007, Function | MediumTest | Level1)136 HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_007, Function | MediumTest | Level1)
137 {
138     int32_t slotId = 0;
139     std::shared_ptr<AppExecFwk::EventHandler> handler = nullptr;
140     EXPECT_EQ(DelayedSingleton<ImsSmsClient>::GetInstance()->RegisterImsSmsCallbackHandler(slotId, handler),
141         TELEPHONY_ERR_LOCAL_PTR_NULL);
142     EXPECT_EQ(DelayedSingleton<ImsSmsClient>::GetInstance()->GetHandler(slotId), handler);
143     DelayedSingleton<ImsSmsClient>::DestroyInstance();
144 }
145 
146 /**
147  * @tc.number   Telephony_SmsImsServiceInteractionTest_smsImsServiceInteractionTest_008
148  * @tc.name     smsServiceProxyTest_001
149  * @tc.desc     Function test
150  */
HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_008, Function | MediumTest | Level1)151 HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_008, Function | MediumTest | Level1)
152 {
153     int32_t slotId = 0;
154     std::shared_ptr<AppExecFwk::EventHandler> handler = std::make_shared<AppExecFwk::EventHandler>();
155     EXPECT_EQ(DelayedSingleton<ImsSmsClient>::GetInstance()->RegisterImsSmsCallbackHandler(slotId, handler),
156         TELEPHONY_SUCCESS);
157     EXPECT_EQ(DelayedSingleton<ImsSmsClient>::GetInstance()->GetHandler(slotId), handler);
158     DelayedSingleton<ImsSmsClient>::DestroyInstance();
159 }
160 
161 /**
162  * @tc.number   Telephony_SmsImsServiceInteractionTest_smsImsServiceInteractionTest_009
163  * @tc.name     smsServiceProxyTest_001
164  * @tc.desc     Function test
165  */
HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_009, Function | MediumTest | Level1)166 HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_009, Function | MediumTest | Level1)
167 {
168     sptr<MockImsSms> pImsSms = new MockImsSms();
169     sptr<MockImsCoreService> pImsCoreService = new MockImsCoreService();
170     sptr<MockImsSmsCallback> pImsSmsCallback = new MockImsSmsCallback();
171     DelayedSingleton<ImsSmsClient>::GetInstance()->imsSmsProxy_ = pImsSms;
172     DelayedSingleton<ImsSmsClient>::GetInstance()->imsSmsCallback_ = pImsSmsCallback;
173     DelayedSingleton<ImsSmsClient>::GetInstance()->imsCoreServiceProxy_ = pImsCoreService;
174 
175     DelayedSingleton<ImsSmsClient>::GetInstance()->Clean();
176     EXPECT_EQ(DelayedSingleton<ImsSmsClient>::GetInstance()->imsSmsProxy_, nullptr);
177     EXPECT_EQ(DelayedSingleton<ImsSmsClient>::GetInstance()->imsSmsCallback_, nullptr);
178     EXPECT_EQ(DelayedSingleton<ImsSmsClient>::GetInstance()->imsCoreServiceProxy_, nullptr);
179     DelayedSingleton<ImsSmsClient>::DestroyInstance();
180 }
181 
182 /**
183  * @tc.number   Telephony_SmsImsServiceInteractionTest_smsImsServiceInteractionTest_010
184  * @tc.name     smsServiceProxyTest_001
185  * @tc.desc     Function test
186  */
HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_010, Function | MediumTest | Level1)187 HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_010, Function | MediumTest | Level1)
188 {
189     ImsSmsClient::SystemAbilityListener listerner;
190     int32_t systemAbilityId = 0;
191     std::string deviceId = "";
192     EXPECT_EQ(DelayedSingleton<ImsSmsClient>::GetInstance()->IsConnect(), false);
193     listerner.OnRemoveSystemAbility(systemAbilityId, deviceId);
194     EXPECT_EQ(DelayedSingleton<ImsSmsClient>::GetInstance()->IsConnect(), false);
195 
196     sptr<MockImsSms> pImsSms = new MockImsSms();
197     sptr<MockImsCoreService> pImsCoreService = new MockImsCoreService();
198     sptr<MockImsSmsCallback> pImsSmsCallback = new MockImsSmsCallback();
199     DelayedSingleton<ImsSmsClient>::GetInstance()->imsSmsProxy_ = pImsSms;
200     DelayedSingleton<ImsSmsClient>::GetInstance()->imsSmsCallback_ = pImsSmsCallback;
201     DelayedSingleton<ImsSmsClient>::GetInstance()->imsCoreServiceProxy_ = pImsCoreService;
202 
203     EXPECT_EQ(DelayedSingleton<ImsSmsClient>::GetInstance()->IsConnect(), true);
204     listerner.OnRemoveSystemAbility(systemAbilityId, deviceId);
205     EXPECT_EQ(DelayedSingleton<ImsSmsClient>::GetInstance()->IsConnect(), false);
206     EXPECT_EQ(DelayedSingleton<ImsSmsClient>::GetInstance()->imsSmsProxy_, nullptr);
207     EXPECT_EQ(DelayedSingleton<ImsSmsClient>::GetInstance()->imsSmsCallback_, nullptr);
208     EXPECT_EQ(DelayedSingleton<ImsSmsClient>::GetInstance()->imsCoreServiceProxy_, nullptr);
209     DelayedSingleton<ImsSmsClient>::DestroyInstance();
210 }
211 
212 /**
213  * @tc.number   Telephony_SmsImsServiceInteractionTest_smsImsServiceInteractionTest_011
214  * @tc.name     smsServiceProxyTest_001
215  * @tc.desc     Function test
216  */
HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_011, Function | MediumTest | Level1)217 HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_011, Function | MediumTest | Level1)
218 {
219     std::unique_ptr<ImsSmsCallbackStub> imsSmsCallbackStub = std::make_unique<ImsSmsCallbackStub>();
220 
221     MessageParcel data;
222     MessageParcel reply;
223     MessageOption option;
224     uint32_t code = static_cast<uint32_t>(ImsSmsCallbackInterfaceCode::IMS_SEND_MESSAGE);
225     EXPECT_EQ(imsSmsCallbackStub->OnRemoteRequest(code, data, reply, option), TELEPHONY_ERR_DESCRIPTOR_MISMATCH);
226 }
227 
228 /**
229  * @tc.number   Telephony_SmsImsServiceInteractionTest_smsImsServiceInteractionTest_012
230  * @tc.name     smsServiceProxyTest_001
231  * @tc.desc     Function test
232  */
HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_012, Function | MediumTest | Level1)233 HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_012, Function | MediumTest | Level1)
234 {
235     std::unique_ptr<ImsSmsCallbackStub> imsSmsCallbackStub = std::make_unique<ImsSmsCallbackStub>();
236 
237     MessageParcel data;
238     MessageParcel reply;
239     MessageOption option;
240     uint32_t code = static_cast<uint32_t>(1<<31);
241     data.WriteInterfaceToken(ImsSmsCallbackStub::GetDescriptor());
242     EXPECT_EQ(imsSmsCallbackStub->OnRemoteRequest(code, data, reply, option), IPC_STUB_UNKNOW_TRANS_ERR);
243 }
244 
245 /**
246  * @tc.number   Telephony_SmsImsServiceInteractionTest_smsImsServiceInteractionTest_013
247  * @tc.name     smsServiceProxyTest_001
248  * @tc.desc     Function test
249  */
HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_013, Function | MediumTest | Level1)250 HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_013, Function | MediumTest | Level1)
251 {
252     MessageParcel data;
253     MessageParcel reply;
254     MessageOption option;
255     int32_t slotId = 0;
256     int32_t imsSmsConfig = 0;
257     std::unique_ptr<ImsSmsCallbackStub> imsSmsCallbackStub = std::make_unique<ImsSmsCallbackStub>();
258     uint32_t code = static_cast<uint32_t>(ImsSmsCallbackInterfaceCode::IMS_GET_SMS_CONFIG);
259     data.WriteInterfaceToken(ImsSmsCallbackStub::GetDescriptor());
260     data.WriteInt32(slotId);
261     data.WriteInt32(imsSmsConfig);
262     EXPECT_EQ(imsSmsCallbackStub->OnRemoteRequest(code, data, reply, option), TELEPHONY_SUCCESS);
263 }
264 
265 /**
266  * @tc.number   Telephony_SmsImsServiceInteractionTest_smsImsServiceInteractionTest_014
267  * @tc.name     smsServiceProxyTest_001
268  * @tc.desc     Function test
269  */
HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_014, Function | MediumTest | Level1)270 HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_014, Function | MediumTest | Level1)
271 {
272     std::unique_ptr<ImsSmsCallbackStub> imsSmsCallbackStub = std::make_unique<ImsSmsCallbackStub>();
273 
274     RadioResponseInfo radioResponseInfo;
275     MessageParcel data;
276     MessageParcel reply;
277     MessageOption option;
278     int32_t slotId = 0;
279     uint32_t code = static_cast<uint32_t>(ImsSmsCallbackInterfaceCode::IMS_SEND_MESSAGE);
280     data.WriteInterfaceToken(ImsSmsCallbackStub::GetDescriptor());
281     data.WriteInt32(slotId);
282     data.WriteRawData(&radioResponseInfo, sizeof(RadioResponseInfo));
283     EXPECT_EQ(imsSmsCallbackStub->OnRemoteRequest(code, data, reply, option), TELEPHONY_SUCCESS);
284     DelayedSingleton<ImsSmsClient>::DestroyInstance();
285 }
286 
287 /**
288  * @tc.number   Telephony_SmsImsServiceInteractionTest_smsImsServiceInteractionTest_015
289  * @tc.name     smsServiceProxyTest_001
290  * @tc.desc     Function test
291  */
HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_015, Function | MediumTest | Level1)292 HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_015, Function | MediumTest | Level1)
293 {
294     std::unique_ptr<ImsSmsCallbackStub> imsSmsCallbackStub = std::make_unique<ImsSmsCallbackStub>();
295 
296     SendSmsResultInfo sendSmsResultInfo;
297     MessageParcel data;
298     MessageParcel reply;
299     MessageOption option;
300     int32_t slotId = 0;
301     uint32_t code = static_cast<uint32_t>(ImsSmsCallbackInterfaceCode::IMS_SEND_MESSAGE);
302     data.WriteInterfaceToken(ImsSmsCallbackStub::GetDescriptor());
303     data.WriteInt32(slotId);
304     data.WriteRawData(&sendSmsResultInfo, sizeof(SendSmsResultInfo));
305     EXPECT_GE(imsSmsCallbackStub->OnRemoteRequest(code, data, reply, option), TELEPHONY_SUCCESS);
306     DelayedSingleton<ImsSmsClient>::DestroyInstance();
307 }
308 
309 /**
310  * @tc.number   Telephony_SmsImsServiceInteractionTest_smsImsServiceInteractionTest_016
311  * @tc.name     smsServiceProxyTest_001
312  * @tc.desc     Function test
313  */
HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_016, Function | MediumTest | Level1)314 HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_016, Function | MediumTest | Level1)
315 {
316     std::unique_ptr<ImsSmsCallbackStub> imsSmsCallbackStub = std::make_unique<ImsSmsCallbackStub>();
317 
318     RadioResponseInfo radioResponseInfo;
319     MessageParcel data;
320     MessageParcel reply;
321     MessageOption option;
322     int32_t slotId = 0;
323     uint32_t code = static_cast<uint32_t>(ImsSmsCallbackInterfaceCode::IMS_SET_SMS_CONFIG);
324     data.WriteInterfaceToken(ImsSmsCallbackStub::GetDescriptor());
325     data.WriteInt32(slotId);
326     data.WriteRawData(&radioResponseInfo, sizeof(RadioResponseInfo));
327     EXPECT_EQ(imsSmsCallbackStub->OnRemoteRequest(code, data, reply, option), TELEPHONY_SUCCESS);
328     DelayedSingleton<ImsSmsClient>::DestroyInstance();
329 }
330 
331 /**
332  * @tc.number   Telephony_SmsImsServiceInteractionTest_smsImsServiceInteractionTest_017
333  * @tc.name     smsServiceProxyTest_001
334  * @tc.desc     Function test
335  */
HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_017, Function | MediumTest | Level1)336 HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_017, Function | MediumTest | Level1)
337 {
338     sptr<MockRemoteObject> sptrRemoteObject = nullptr;
339     std::unique_ptr<MockImsSmsProxy> imsSmsProxy = std::make_unique<MockImsSmsProxy>(sptrRemoteObject);
340 
341     int32_t slotId = 0;
342     ImsMessageInfo imsMessageInfo;
343     EXPECT_EQ(imsSmsProxy->ImsSendMessage(slotId, imsMessageInfo), TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL);
344 }
345 
346 /**
347  * @tc.number   Telephony_SmsImsServiceInteractionTest_smsImsServiceInteractionTest_018
348  * @tc.name     smsServiceProxyTest_001
349  * @tc.desc     Function test
350  */
HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_018, Function | MediumTest | Level1)351 HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_018, Function | MediumTest | Level1)
352 {
353     sptr<MockRemoteObject> sptrRemoteObject = new MockRemoteObject();
354     sptrRemoteObject->retSendRequest = 0;
355     std::unique_ptr<MockImsSmsProxy> imsSmsProxy = std::make_unique<MockImsSmsProxy>(sptrRemoteObject);
356 
357     int32_t slotId = 0;
358     ImsMessageInfo imsMessageInfo;
359     EXPECT_EQ(imsSmsProxy->ImsSendMessage(slotId, imsMessageInfo), 0);
360 }
361 
362 /**
363  * @tc.number   Telephony_SmsImsServiceInteractionTest_smsImsServiceInteractionTest_019
364  * @tc.name     smsServiceProxyTest_001
365  * @tc.desc     Function test
366  */
HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_019, Function | MediumTest | Level1)367 HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_019, Function | MediumTest | Level1)
368 {
369     sptr<MockRemoteObject> sptrRemoteObject = new MockRemoteObject();
370     sptrRemoteObject->retSendRequest = -1;
371     std::unique_ptr<MockImsSmsProxy> imsSmsProxy = std::make_unique<MockImsSmsProxy>(sptrRemoteObject);
372 
373     int32_t slotId = 0;
374     ImsMessageInfo imsMessageInfo;
375     EXPECT_EQ(imsSmsProxy->ImsSendMessage(slotId, imsMessageInfo), TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL);
376 }
377 
378 /**
379  * @tc.number   Telephony_SmsImsServiceInteractionTest_smsImsServiceInteractionTest_020
380  * @tc.name     smsServiceProxyTest_001
381  * @tc.desc     Function test
382  */
HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_020, Function | MediumTest | Level1)383 HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_020, Function | MediumTest | Level1)
384 {
385     sptr<MockRemoteObject> sptrRemoteObject = new MockRemoteObject();
386     sptrRemoteObject->retSendRequest = 0;
387     std::unique_ptr<MockImsSmsProxy> imsSmsProxy = std::make_unique<MockImsSmsProxy>(sptrRemoteObject);
388 
389     int32_t slotId = 0;
390     int32_t imsSmsConfig = 0;
391     EXPECT_EQ(imsSmsProxy->ImsSetSmsConfig(slotId, imsSmsConfig), 0);
392 }
393 
394 /**
395  * @tc.number   Telephony_SmsImsServiceInteractionTest_smsImsServiceInteractionTest_021
396  * @tc.name     smsServiceProxyTest_001
397  * @tc.desc     Function test
398  */
HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_021, Function | MediumTest | Level1)399 HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_021, Function | MediumTest | Level1)
400 {
401     sptr<MockRemoteObject> sptrRemoteObject = new MockRemoteObject();
402     sptrRemoteObject->retSendRequest = 0;
403     std::unique_ptr<MockImsSmsProxy> imsSmsProxy = std::make_unique<MockImsSmsProxy>(sptrRemoteObject);
404 
405     int32_t slotId = 0;
406     EXPECT_EQ(imsSmsProxy->ImsGetSmsConfig(slotId), 0);
407 }
408 
409 /**
410  * @tc.number   Telephony_SmsImsServiceInteractionTest_smsImsServiceInteractionTest_022
411  * @tc.name     smsServiceProxyTest_001
412  * @tc.desc     Function test
413  */
HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_022, Function | MediumTest | Level1)414 HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_022, Function | MediumTest | Level1)
415 {
416     sptr<MockRemoteObject> sptrRemoteObject = nullptr;
417     std::unique_ptr<MockImsSmsProxy> imsSmsProxy = std::make_unique<MockImsSmsProxy>(sptrRemoteObject);
418     EXPECT_EQ(imsSmsProxy->RegisterImsSmsCallback(nullptr), TELEPHONY_ERR_ARGUMENT_INVALID);
419 }
420 
421 /**
422  * @tc.number   Telephony_SmsImsServiceInteractionTest_smsImsServiceInteractionTest_023
423  * @tc.name     smsServiceProxyTest_001
424  * @tc.desc     Function test
425  */
HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_023, Function | MediumTest | Level1)426 HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_023, Function | MediumTest | Level1)
427 {
428     sptr<MockRemoteObject> sptrRemoteObject = nullptr;
429     std::unique_ptr<MockImsSmsProxy> imsSmsProxy = std::make_unique<MockImsSmsProxy>(sptrRemoteObject);
430     sptr<MockImsSmsCallback> pImsSmsCallback = new MockImsSmsCallback();
431     EXPECT_EQ(imsSmsProxy->RegisterImsSmsCallback(pImsSmsCallback), TELEPHONY_ERR_WRITE_DATA_FAIL);
432 }
433 
434 /**
435  * @tc.number   Telephony_SmsImsServiceInteractionTest_smsImsServiceInteractionTest_024
436  * @tc.name     smsServiceProxyTest_001
437  * @tc.desc     Function test
438  */
HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_024, Function | MediumTest | Level1)439 HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_024, Function | MediumTest | Level1)
440 {
441     sptr<MockRemoteObject> sptrRemoteObject = new MockRemoteObject();
442     std::unique_ptr<MockImsSmsProxy> imsSmsProxy = std::make_unique<MockImsSmsProxy>(nullptr);
443     sptr<MockImsSmsCallback> pImsSmsCallback = new MockImsSmsCallback();
444     pImsSmsCallback->retRemoteObject = sptrRemoteObject;
445     EXPECT_EQ(imsSmsProxy->RegisterImsSmsCallback(pImsSmsCallback), TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL);
446 }
447 
448 /**
449  * @tc.number   Telephony_SmsImsServiceInteractionTest_smsImsServiceInteractionTest_025
450  * @tc.name     smsServiceProxyTest_001
451  * @tc.desc     Function test
452  */
HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_025, Function | MediumTest | Level1)453 HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_025, Function | MediumTest | Level1)
454 {
455     sptr<MockRemoteObject> sptrRemoteObject = new MockRemoteObject();
456     sptrRemoteObject->retSendRequest = 0;
457     std::unique_ptr<MockImsSmsProxy> imsSmsProxy = std::make_unique<MockImsSmsProxy>(sptrRemoteObject);
458 
459     sptr<MockImsSmsCallback> pImsSmsCallback = new MockImsSmsCallback();
460     pImsSmsCallback->retRemoteObject = sptrRemoteObject;
461     EXPECT_EQ(imsSmsProxy->RegisterImsSmsCallback(pImsSmsCallback), 0);
462 }
463 
464 /**
465  * @tc.number   Telephony_SmsImsServiceInteractionTest_smsImsServiceInteractionTest_026
466  * @tc.name     smsServiceProxyTest_001
467  * @tc.desc     Function test
468  */
HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_026, Function | MediumTest | Level1)469 HWTEST_F(SmsImsServiceInteractionTest, smsImsServiceInteractionTest_026, Function | MediumTest | Level1)
470 {
471     sptr<MockRemoteObject> sptrRemoteObject = new MockRemoteObject();
472     sptrRemoteObject->retSendRequest = -1;
473     std::unique_ptr<MockImsSmsProxy> imsSmsProxy = std::make_unique<MockImsSmsProxy>(sptrRemoteObject);
474 
475     sptr<MockImsSmsCallback> pImsSmsCallback = new MockImsSmsCallback();
476     pImsSmsCallback->retRemoteObject = sptrRemoteObject;
477     EXPECT_EQ(imsSmsProxy->RegisterImsSmsCallback(pImsSmsCallback), TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL);
478 }
479 }
480 }