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 #include "avsession_log.h"
18 #include "avsession_descriptor.h"
19 #include "avsession_errors.h"
20 #include "accesstoken_kit.h"
21 #include "token_setproc.h"
22 
23 #define private public
24 #define protected public
25 #include "avsession_service_stub.h"
26 #undef protected
27 #undef private
28 
29 using namespace testing::ext;
30 using namespace OHOS::Security::AccessToken;
31 using namespace OHOS::AVSession;
32 
33 static uint64_t g_selfTokenId = 0;
34 static HapInfoParams g_info = {
35     .userID = 100,
36     .bundleName = "ohos.permission_test.demo",
37     .instIndex = 0,
38     .appIDDesc = "ohos.permission_test.demo",
39     .isSystemApp = true
40 };
41 
42 static HapPolicyParams g_policy = {
43     .apl = APL_NORMAL,
44     .domain = "test.domain",
45     .permList = {
46         {
47             .bundleName = "ohos.permission_test.demo",
48             .grantMode = 1,
49             .availableLevel = APL_NORMAL,
50             .label = "label",
51             .labelId = 1,
52             .description = "test",
53             .descriptionId = 1
54         }
55     },
56     .permStateList = {
57         {
58             .isGeneral = true,
59             .resDeviceID = {"local"},
60             .grantStatus = {PermissionState::PERMISSION_GRANTED},
61             .grantFlags = {1}
62         }
63     }
64 };
65 
66 class AVSessionServiceStubPerTest : public testing::Test {
67 public:
68     static void SetUpTestCase();
69     static void TearDownTestCase();
70     void SetUp() override;
71     void TearDown() override;
72 };
73 
SetUpTestCase()74 void AVSessionServiceStubPerTest::SetUpTestCase()
75 {
76     g_selfTokenId = OHOS::IPCSkeleton::GetSelfTokenID();
77     AccessTokenKit::AllocHapToken(g_info, g_policy);
78     AccessTokenIDEx tokenID = AccessTokenKit::GetHapTokenIDEx(g_info.userID, g_info.bundleName, g_info.instIndex);
79     SetSelfTokenID(tokenID.tokenIDEx);
80 }
81 
TearDownTestCase()82 void AVSessionServiceStubPerTest::TearDownTestCase()
83 {
84     SetSelfTokenID(g_selfTokenId);
85     auto tokenId = AccessTokenKit::GetHapTokenID(g_info.userID, g_info.bundleName, g_info.instIndex);
86     AccessTokenKit::DeleteToken(tokenId);
87 }
88 
SetUp()89 void AVSessionServiceStubPerTest::SetUp()
90 {
91 }
92 
TearDown()93 void AVSessionServiceStubPerTest::TearDown()
94 {
95 }
96 
97 class AVSessionServiceStubPerDemo : public AVSessionServiceStub {
98 public:
CreateSessionInner(const std::string & tag,int32_t type,const OHOS::AppExecFwk::ElementName & elementName)99     OHOS::sptr<IRemoteObject> CreateSessionInner(const std::string &tag, int32_t type,
100         const OHOS::AppExecFwk::ElementName &elementName) override { return nullptr; };
CreateSessionInner(const std::string & tag,int32_t type,const OHOS::AppExecFwk::ElementName & elementName,OHOS::sptr<IRemoteObject> & session)101     int32_t CreateSessionInner(const std::string &tag, int32_t type, const OHOS::AppExecFwk::ElementName &elementName,
102         OHOS::sptr<IRemoteObject> &session) override { return 0; };
GetAllSessionDescriptors(std::vector<AVSessionDescriptor> & descriptors)103     int32_t GetAllSessionDescriptors(std::vector<AVSessionDescriptor> &descriptors) override { return 0; };
GetSessionDescriptorsBySessionId(const std::string & sessionId,AVSessionDescriptor & descriptor)104     int32_t GetSessionDescriptorsBySessionId(const std::string &sessionId,
105         AVSessionDescriptor &descriptor) override { return isSuccess ? AVSESSION_SUCCESS : 0; };
GetHistoricalSessionDescriptors(int32_t maxSize,std::vector<AVSessionDescriptor> & descriptors)106     int32_t GetHistoricalSessionDescriptors(int32_t maxSize, std::vector<AVSessionDescriptor> &descriptors) override
107     {
108         return 0;
109     };
GetHistoricalAVQueueInfos(int32_t maxSize,int32_t maxAppSize,std::vector<AVQueueInfo> & avQueueInfos)110     int32_t GetHistoricalAVQueueInfos(int32_t maxSize, int32_t maxAppSize,
111         std::vector<AVQueueInfo> &avQueueInfos) override { return 0; };
StartAVPlayback(const std::string & bundleName,const std::string & assetId)112     int32_t StartAVPlayback(const std::string &bundleName, const std::string &assetId) override { return 0; };
CreateControllerInner(const std::string & sessionId,OHOS::sptr<IRemoteObject> & object)113     int32_t CreateControllerInner(const std::string &sessionId, OHOS::sptr<IRemoteObject> &object) override
114     {
115         return isSuccess ? AVSESSION_SUCCESS : 0;
116     };
RegisterSessionListener(const OHOS::sptr<ISessionListener> & listener)117     int32_t RegisterSessionListener(const OHOS::sptr<ISessionListener> &listener) override { return 0; };
RegisterSessionListenerForAllUsers(const OHOS::sptr<ISessionListener> & listener)118     int32_t RegisterSessionListenerForAllUsers(const OHOS::sptr<ISessionListener> &listener) override { return 0; };
SendSystemAVKeyEvent(const OHOS::MMI::KeyEvent & keyEvent)119     int32_t SendSystemAVKeyEvent(const OHOS::MMI::KeyEvent &keyEvent) override { return 0; };
SendSystemControlCommand(const AVControlCommand & command)120     int32_t SendSystemControlCommand(const AVControlCommand &command) override { return 0; };
RegisterClientDeathObserver(const OHOS::sptr<IClientDeath> & observer)121     int32_t RegisterClientDeathObserver(const OHOS::sptr<IClientDeath> &observer) override { return 0; };
CastAudio(const SessionToken & token,const std::vector<OHOS::AudioStandard::AudioDeviceDescriptor> & descriptors)122     int32_t CastAudio(const SessionToken &token,
123         const std::vector<OHOS::AudioStandard::AudioDeviceDescriptor> &descriptors) override { return 0; };
CastAudioForAll(const std::vector<OHOS::AudioStandard::AudioDeviceDescriptor> & descriptors)124     int32_t CastAudioForAll(const std::vector<OHOS::AudioStandard::AudioDeviceDescriptor> &descriptors) override
125     {
126         return 0;
127     };
ProcessCastAudioCommand(const RemoteServiceCommand command,const std::string & input,std::string & output)128     int32_t ProcessCastAudioCommand(const RemoteServiceCommand command, const std::string &input,
129         std::string &output) override { return isSuccess ? AVSESSION_SUCCESS : 0; };
130 #ifdef CASTPLUS_CAST_ENGINE_ENABLE
GetAVCastControllerInner(const std::string & sessionId,OHOS::sptr<IRemoteObject> & object)131     int32_t GetAVCastControllerInner(const std::string &sessionId, OHOS::sptr<IRemoteObject> &object) override
132     {
133         return 0;
134     };
StartCast(const SessionToken & sessionToken,const OutputDeviceInfo & outputDeviceInfo)135     int32_t StartCast(const SessionToken &sessionToken, const OutputDeviceInfo &outputDeviceInfo) override
136     {
137         return 0;
138     };
StopCast(const SessionToken & sessionToken)139     int32_t StopCast(const SessionToken &sessionToken) override { return 0; };
checkEnableCast(bool enable)140     int32_t checkEnableCast(bool enable) override { return 0; };
141 #endif
142 
Close()143     int32_t Close() override { return 0; };
144     bool isSuccess = true;
145 };
146 
147 /**
148  * @tc.name: OnRemoteRequest001
149  * @tc.desc: Test OnRemoteRequest
150  * @tc.type: FUNC
151  */
152 static HWTEST_F(AVSessionServiceStubPerTest, OnRemoteRequest001, TestSize.Level1)
153 {
154     SLOGI("OnRemoteRequest001 begin!");
155     uint32_t code = 1;
156     AVSessionServiceStubPerDemo avsessionservicestub;
157     OHOS::MessageParcel data;
158     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
159     data.WriteString("test");
160     OHOS::MessageParcel reply;
161     OHOS::MessageOption option;
162     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
163     EXPECT_EQ(ret, OHOS::ERR_NONE);
164     SLOGI("OnRemoteRequest001 end!");
165 }
166 
167 /**
168  * @tc.name: OnRemoteRequest002
169  * @tc.desc: Test OnRemoteRequest
170  * @tc.type: FUNC
171  */
172 static HWTEST_F(AVSessionServiceStubPerTest, OnRemoteRequest002, TestSize.Level1)
173 {
174     SLOGI("OnRemoteRequest002 begin!");
175     uint32_t code = 2;
176     AVSessionServiceStubPerDemo avsessionservicestub;
177     OHOS::MessageParcel data;
178     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
179     data.WriteString("test");
180     OHOS::MessageParcel reply;
181     OHOS::MessageOption option;
182     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
183     EXPECT_EQ(ret, OHOS::ERR_NONE);
184     SLOGI("OnRemoteRequest002 end!");
185 }
186 
187 /**
188  * @tc.name: OnRemoteRequest003
189  * @tc.desc: Test OnRemoteRequest
190  * @tc.type: FUNC
191  */
192 static HWTEST_F(AVSessionServiceStubPerTest, OnRemoteRequest003, TestSize.Level1)
193 {
194     SLOGI("OnRemoteRequest003 begin!");
195     uint32_t code = 3;
196     AVSessionServiceStubPerDemo avsessionservicestub;
197     OHOS::MessageParcel data;
198     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
199     data.WriteString("test");
200     OHOS::MessageParcel reply;
201     OHOS::MessageOption option;
202     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
203     EXPECT_EQ(ret, OHOS::ERR_NONE);
204     SLOGI("OnRemoteRequest003 end!");
205 }
206 
207 /**
208  * @tc.name: OnRemoteRequest004
209  * @tc.desc: Test OnRemoteRequest
210  * @tc.type: FUNC
211  */
212 static HWTEST_F(AVSessionServiceStubPerTest, OnRemoteRequest004, TestSize.Level1)
213 {
214     SLOGI("OnRemoteRequest004 begin!");
215     uint32_t code = 4;
216     AVSessionServiceStubPerDemo avsessionservicestub;
217     OHOS::MessageParcel data;
218     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
219     data.WriteString("test");
220     OHOS::MessageParcel reply;
221     OHOS::MessageOption option;
222     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
223     EXPECT_EQ(ret, OHOS::ERR_NONE);
224     SLOGI("OnRemoteRequest004 end!");
225 }
226 
227 /**
228  * @tc.name: OnRemoteRequest005
229  * @tc.desc: Test OnRemoteRequest
230  * @tc.type: FUNC
231  */
232 static HWTEST_F(AVSessionServiceStubPerTest, OnRemoteRequest005, TestSize.Level1)
233 {
234     SLOGI("OnRemoteRequest005 begin!");
235     uint32_t code = 5;
236     AVSessionServiceStubPerDemo avsessionservicestub;
237     OHOS::MessageParcel data;
238     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
239     data.WriteString("test");
240     OHOS::MessageParcel reply;
241     OHOS::MessageOption option;
242     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
243     EXPECT_EQ(ret, OHOS::ERR_NONE);
244     SLOGI("OnRemoteRequest005 end!");
245 }
246 
247 /**
248  * @tc.name: OnRemoteRequest006
249  * @tc.desc: Test OnRemoteRequest
250  * @tc.type: FUNC
251  */
252 static HWTEST_F(AVSessionServiceStubPerTest, OnRemoteRequest006, TestSize.Level1)
253 {
254     SLOGI("OnRemoteRequest006 begin!");
255     uint32_t code = 6;
256     AVSessionServiceStubPerDemo avsessionservicestub;
257     OHOS::MessageParcel data;
258     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
259     data.WriteString("test");
260     OHOS::MessageParcel reply;
261     OHOS::MessageOption option;
262     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
263     EXPECT_EQ(ret, OHOS::ERR_NONE);
264     SLOGI("OnRemoteRequest006 end!");
265 }
266 
267 /**
268  * @tc.name: OnRemoteRequest007
269  * @tc.desc: Test OnRemoteRequest
270  * @tc.type: FUNC
271  */
272 static HWTEST_F(AVSessionServiceStubPerTest, OnRemoteRequest007, TestSize.Level1)
273 {
274     SLOGI("OnRemoteRequest007 begin!");
275     uint32_t code = 7;
276     AVSessionServiceStubPerDemo avsessionservicestub;
277     OHOS::MessageParcel data;
278     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
279     data.WriteString("test");
280     OHOS::MessageParcel reply;
281     OHOS::MessageOption option;
282     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
283     EXPECT_EQ(ret, OHOS::ERR_NONE);
284     SLOGI("OnRemoteRequest007 end!");
285 }
286 
287 /**
288  * @tc.name: OnRemoteRequest008
289  * @tc.desc: Test OnRemoteRequest
290  * @tc.type: FUNC
291  */
292 static HWTEST_F(AVSessionServiceStubPerTest, OnRemoteRequest008, TestSize.Level1)
293 {
294     SLOGI("OnRemoteRequest008 begin!");
295     uint32_t code = 8;
296     AVSessionServiceStubPerDemo avsessionservicestub;
297     OHOS::MessageParcel data;
298     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
299     data.WriteString("test");
300     OHOS::MessageParcel reply;
301     OHOS::MessageOption option;
302     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
303     EXPECT_EQ(ret, OHOS::ERR_NONE);
304     SLOGI("OnRemoteRequest008 end!");
305 }
306 
307 /**
308  * @tc.name: OnRemoteRequest009
309  * @tc.desc: Test OnRemoteRequest
310  * @tc.type: FUNC
311  */
312 static HWTEST_F(AVSessionServiceStubPerTest, OnRemoteRequest009, TestSize.Level1)
313 {
314     SLOGI("OnRemoteRequest009 begin!");
315     uint32_t code = 9;
316     AVSessionServiceStubPerDemo avsessionservicestub;
317     OHOS::MessageParcel data;
318     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
319     data.WriteString("test");
320     OHOS::MessageParcel reply;
321     OHOS::MessageOption option;
322     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
323     EXPECT_EQ(ret, OHOS::ERR_NONE);
324     SLOGI("OnRemoteRequest009 end!");
325 }
326 
327 /**
328  * @tc.name: OnRemoteRequest010
329  * @tc.desc: Test OnRemoteRequest
330  * @tc.type: FUNC
331  */
332 static HWTEST_F(AVSessionServiceStubPerTest, OnRemoteRequest010, TestSize.Level1)
333 {
334     SLOGI("OnRemoteRequest010 begin!");
335     uint32_t code = 10;
336     AVSessionServiceStubPerDemo avsessionservicestub;
337     OHOS::MessageParcel data;
338     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
339     data.WriteString("test");
340     OHOS::MessageParcel reply;
341     OHOS::MessageOption option;
342     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
343     EXPECT_EQ(ret, OHOS::ERR_NONE);
344     SLOGI("OnRemoteRequest010 end!");
345 }
346 
347 /**
348  * @tc.name: OnRemoteRequest011
349  * @tc.desc: Test OnRemoteRequest
350  * @tc.type: FUNC
351  */
352 static HWTEST_F(AVSessionServiceStubPerTest, OnRemoteRequest011, TestSize.Level1)
353 {
354     SLOGI("OnRemoteRequest011 begin!");
355     uint32_t code = 12;
356     AVSessionServiceStubPerDemo avsessionservicestub;
357     OHOS::MessageParcel data;
358     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
359     data.WriteString("test");
360     OHOS::MessageParcel reply;
361     OHOS::MessageOption option;
362     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
363     EXPECT_EQ(ret, OHOS::ERR_NONE);
364     SLOGI("OnRemoteRequest011 end!");
365 }
366 
367 /**
368  * @tc.name: OnRemoteRequest012
369  * @tc.desc: Test OnRemoteRequest
370  * @tc.type: FUNC
371  */
372 static HWTEST_F(AVSessionServiceStubPerTest, OnRemoteRequest012, TestSize.Level1)
373 {
374     SLOGI("OnRemoteRequest012 begin!");
375     uint32_t code = 12;
376     AVSessionServiceStubPerDemo avsessionservicestub;
377     OHOS::MessageParcel data;
378     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
379     data.WriteString("test");
380     data.WriteInt32(100);
381     OHOS::MessageParcel reply;
382     OHOS::MessageOption option;
383     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
384     EXPECT_EQ(ret, OHOS::ERR_NONE);
385     SLOGI("OnRemoteRequest012 end!");
386 }
387 
388 /**
389  * @tc.name: OnRemoteRequest013
390  * @tc.desc: Test OnRemoteRequest
391  * @tc.type: FUNC
392  */
393 static HWTEST_F(AVSessionServiceStubPerTest, OnRemoteRequest013, TestSize.Level1)
394 {
395     SLOGI("OnRemoteRequest013 begin!");
396     uint32_t code = 12;
397     AVSessionServiceStubPerDemo avsessionservicestub;
398     OHOS::MessageParcel data;
399     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
400     data.WriteString("test");
401     data.WriteInt32(1);
402 
403     OHOS::MessageParcel reply;
404     OHOS::MessageOption option;
405     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
406     EXPECT_EQ(ret, OHOS::ERR_NONE);
407     SLOGI("OnRemoteRequest013 end!");
408 }
409 
410 /**
411  * @tc.name: OnRemoteRequest014
412  * @tc.desc: Test OnRemoteRequest
413  * @tc.type: FUNC
414  */
415 static HWTEST_F(AVSessionServiceStubPerTest, OnRemoteRequest014, TestSize.Level1)
416 {
417     SLOGI("OnRemoteRequest014 begin!");
418     uint32_t code = 13;
419     AVSessionServiceStubPerDemo avsessionservicestub;
420     OHOS::MessageParcel data;
421     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
422     data.WriteString("test");
423     OHOS::MessageParcel reply;
424     OHOS::MessageOption option;
425     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
426     EXPECT_EQ(ret, OHOS::ERR_NONE);
427     SLOGI("OnRemoteRequest014 end!");
428 }
429 
430 /**
431  * @tc.name: OnRemoteRequest015
432  * @tc.desc: Test OnRemoteRequest
433  * @tc.type: FUNC
434  */
435 static HWTEST_F(AVSessionServiceStubPerTest, OnRemoteRequest015, TestSize.Level1)
436 {
437     SLOGI("OnRemoteRequest015 begin!");
438     uint32_t code = 13;
439     AVSessionServiceStubPerDemo avsessionservicestub;
440     OHOS::MessageParcel data;
441     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
442     data.WriteString("");
443     data.WriteInt32(100);
444     OHOS::MessageParcel reply;
445     OHOS::MessageOption option;
446     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
447     EXPECT_EQ(ret, OHOS::ERR_NONE);
448     SLOGI("OnRemoteRequest015 end!");
449 }
450 
451 /**
452  * @tc.name: OnRemoteRequest016
453  * @tc.desc: Test OnRemoteRequest
454  * @tc.type: FUNC
455  */
456 static HWTEST_F(AVSessionServiceStubPerTest, OnRemoteRequest016, TestSize.Level1)
457 {
458     SLOGI("OnRemoteRequest016 begin!");
459     uint32_t code = 13;
460     AVSessionServiceStubPerDemo avsessionservicestub;
461     OHOS::MessageParcel data;
462     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
463     data.WriteString("");
464     data.WriteInt32(1);
465     OHOS::MessageParcel reply;
466     OHOS::MessageOption option;
467     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
468     EXPECT_EQ(ret, OHOS::ERR_NONE);
469     SLOGI("OnRemoteRequest016 end!");
470 }
471 
472 /**
473  * @tc.name: OnRemoteRequest017
474  * @tc.desc: Test OnRemoteRequest
475  * @tc.type: FUNC
476  */
477 static HWTEST_F(AVSessionServiceStubPerTest, OnRemoteRequest017, TestSize.Level1)
478 {
479     SLOGI("OnRemoteRequest017 begin!");
480     uint32_t code = 14;
481     AVSessionServiceStubPerDemo avsessionservicestub;
482     OHOS::MessageParcel data;
483     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
484     data.WriteString("test");
485     OHOS::MessageParcel reply;
486     OHOS::MessageOption option;
487     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
488     EXPECT_EQ(ret, OHOS::ERR_NONE);
489     SLOGI("OnRemoteRequest017 end!");
490 }
491 
492 /**
493  * @tc.name: OnRemoteRequest018
494  * @tc.desc: Test OnRemoteRequest
495  * @tc.type: FUNC
496  */
497 static HWTEST_F(AVSessionServiceStubPerTest, OnRemoteRequest018, TestSize.Level1)
498 {
499     SLOGI("OnRemoteRequest018 begin!");
500     uint32_t code = 15;
501     AVSessionServiceStubPerDemo avsessionservicestub;
502     OHOS::MessageParcel data;
503     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
504     data.WriteString("test");
505     OHOS::MessageParcel reply;
506     OHOS::MessageOption option;
507     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
508     EXPECT_EQ(ret, OHOS::ERR_NONE);
509     SLOGI("OnRemoteRequest018 end!");
510 }
511 
512 /**
513  * @tc.name: OnRemoteRequest019
514  * @tc.desc: Test OnRemoteRequest
515  * @tc.type: FUNC
516  */
517 static HWTEST_F(AVSessionServiceStubPerTest, OnRemoteRequest019, TestSize.Level1)
518 {
519     SLOGI("OnRemoteRequest019 begin!");
520     uint32_t code = 16;
521     AVSessionServiceStubPerDemo avsessionservicestub;
522     OHOS::MessageParcel data;
523     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
524     data.WriteString("test");
525     OHOS::MessageParcel reply;
526     OHOS::MessageOption option;
527     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
528     EXPECT_EQ(ret, OHOS::ERR_NONE);
529     SLOGI("OnRemoteRequest019 end!");
530 }
531 
532 #ifndef CASTPLUS_CAST_ENGINE_ENABLE
533 /**
534  * @tc.name: OnRemoteRequest020
535  * @tc.desc: Test OnRemoteRequest
536  * @tc.type: FUNC
537  */
538 static HWTEST_F(AVSessionServiceStubPerTest, OnRemoteRequest020, TestSize.Level1)
539 {
540     SLOGI("OnRemoteRequest020 begin!");
541     uint32_t code = 17;
542     AVSessionServiceStubPerDemo avsessionservicestub;
543     OHOS::MessageParcel data;
544     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
545     data.WriteString("test");
546     data.WriteBool(true);
547     OHOS::MessageParcel reply;
548     OHOS::MessageOption option;
549     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
550     EXPECT_EQ(ret, OHOS::ERR_NONE);
551     SLOGI("OnRemoteRequest020 end!");
552 }
553 
554 /**
555  * @tc.name: OnRemoteRequest021
556  * @tc.desc: Test OnRemoteRequest
557  * @tc.type: FUNC
558  */
559 static HWTEST_F(AVSessionServiceStubPerTest, OnRemoteRequest021, TestSize.Level1)
560 {
561     SLOGI("OnRemoteRequest021 begin!");
562     uint32_t code = 18;
563     AVSessionServiceStubPerDemo avsessionservicestub;
564     OHOS::MessageParcel data;
565     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
566     data.WriteString("test");
567     data.WriteBool(true);
568     OHOS::MessageParcel reply;
569     OHOS::MessageOption option;
570     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
571     EXPECT_EQ(ret, OHOS::ERR_NONE);
572     SLOGI("OnRemoteRequest021 end!");
573 }
574 
575 /**
576  * @tc.name: OnRemoteRequest022
577  * @tc.desc: Test OnRemoteRequest
578  * @tc.type: FUNC
579  */
580 static HWTEST_F(AVSessionServiceStubPerTest, OnRemoteRequest022, TestSize.Level1)
581 {
582     SLOGI("OnRemoteRequest022 begin!");
583     uint32_t code = 19;
584     AVSessionServiceStubPerDemo avsessionservicestub;
585     OHOS::MessageParcel data;
586     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
587     data.WriteString("test");
588     data.WriteBool(true);
589     OHOS::MessageParcel reply;
590     OHOS::MessageOption option;
591     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
592     EXPECT_EQ(ret, OHOS::ERR_NONE);
593     SLOGI("OnRemoteRequest022 end!");
594 }
595 #endif
596 /**
597  * @tc.name: OnRemoteRequest023
598  * @tc.desc: Test OnRemoteRequest
599  * @tc.type: FUNC
600  */
601 static HWTEST_F(AVSessionServiceStubPerTest, OnRemoteRequest023, TestSize.Level1)
602 {
603     SLOGI("OnRemoteRequest023 begin!");
604     uint32_t code = 20;
605     AVSessionServiceStubPerDemo avsessionservicestub;
606     OHOS::MessageParcel data;
607     data.WriteInterfaceToken(IAVSessionService::GetDescriptor());
608     data.WriteString("test");
609     OHOS::MessageParcel reply;
610     OHOS::MessageOption option;
611     int ret = avsessionservicestub.OnRemoteRequest(code, data, reply, option);
612     EXPECT_EQ(ret, OHOS::ERR_NONE);
613     SLOGI("OnRemoteRequest023 end!");
614 }