• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #include <gtest/gtest.h>
17 #include <gmock/gmock.h>
18 #include "ipc_stream_in_server.h"
19 #include <memory>
20 #include "ipc_stream_stub.h"
21 #include "audio_info.h"
22 #include "audio_process_config.h"
23 #include "renderer_in_server.h"
24 #include "capturer_in_server.h"
25 #include <cinttypes>
26 #include "audio_service_log.h"
27 #include "audio_errors.h"
28 #include "ipc_stream.h"
29 #include "message_parcel.h"
30 #include "parcel.h"
31 
32 using namespace testing::ext;
33 
34 namespace OHOS {
35 namespace AudioStandard {
36 class IpcStreamStubUnitTest : public testing::Test {
37 public:
38     static void SetUpTestCase(void);
39     static void TearDownTestCase(void);
40     void SetUp();
41     void TearDown();
42 };
43 
44 class RemoteObjectTestStub : public IRemoteObject {
45 public:
RemoteObjectTestStub()46     RemoteObjectTestStub() : IRemoteObject(u"IRemoteObject") {}
GetObjectRefCount()47     int32_t GetObjectRefCount() { return 0; };
SendRequest(uint32_t code,MessageParcel & data,MessageParcel & reply,MessageOption & option)48     int SendRequest(uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) { return 0; };
AddDeathRecipient(const sptr<DeathRecipient> & recipient)49     bool AddDeathRecipient(const sptr<DeathRecipient> &recipient) { return true; };
RemoveDeathRecipient(const sptr<DeathRecipient> & recipient)50     bool RemoveDeathRecipient(const sptr<DeathRecipient> &recipient) { return true; };
Dump(int fd,const std::vector<std::u16string> & args)51     int Dump(int fd, const std::vector<std::u16string> &args) { return 0; };
52 
53     DECLARE_INTERFACE_DESCRIPTOR(u"RemoteObjectTestStub");
54 };
55 
SetUpTestCase(void)56 void IpcStreamStubUnitTest::SetUpTestCase(void)
57 {
58     // input testsuit setup step,setup invoked before all testcases
59 }
60 
TearDownTestCase(void)61 void IpcStreamStubUnitTest::TearDownTestCase(void)
62 {
63     // input testsuit teardown step,teardown invoked after all testcases
64 }
65 
SetUp(void)66 void IpcStreamStubUnitTest::SetUp(void)
67 {
68     // input testcase setup step,setup invoked before each testcases
69 }
70 
TearDown(void)71 void IpcStreamStubUnitTest::TearDown(void)
72 {
73     // input testcase teardown step,teardown invoked after each testcases
74 }
75 
76 constexpr int32_t DEFAULT_STREAM_ID = 10;
77 
InitProcessConfig()78 static AudioProcessConfig InitProcessConfig()
79 {
80     AudioProcessConfig config;
81     config.appInfo.appUid = DEFAULT_STREAM_ID;
82     config.appInfo.appPid = DEFAULT_STREAM_ID;
83     config.streamInfo.format = SAMPLE_S32LE;
84     config.streamInfo.samplingRate = SAMPLE_RATE_48000;
85     config.streamInfo.channels = STEREO;
86     config.streamInfo.channelLayout = AudioChannelLayout::CH_LAYOUT_STEREO;
87     config.audioMode = AudioMode::AUDIO_MODE_PLAYBACK;
88     config.streamType = AudioStreamType::STREAM_MUSIC;
89     config.deviceType = DEVICE_TYPE_USB_HEADSET;
90     return config;
91 }
92 
93 /**
94  * @tc.name  : Test IpcStreamStub API
95  * @tc.type  : FUNC
96  * @tc.number: IpcStreamStub_001
97  * @tc.desc  : Test IpcStreamStub::OnMiddleCodeRemoteRequest.
98  */
99 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_001, TestSize.Level1)
100 {
101     AudioProcessConfig config = InitProcessConfig();
102     int32_t ret = 0;
103     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
104 
105     EXPECT_NE(ptrIpcStreamStub, nullptr);
106 
107     MessageParcel data;
108     MessageParcel reply;
109     MessageOption option;
110 
111     auto result = ptrIpcStreamStub->OnMiddleCodeRemoteRequest(IpcStream::IpcStreamMsg::ON_GET_RATE,
112         data, reply, option);
113     EXPECT_EQ(result, AUDIO_OK);
114 }
115 
116 /**
117  * @tc.name  : Test IpcStreamStub API
118  * @tc.type  : FUNC
119  * @tc.number: IpcStreamStub_002
120  * @tc.desc  : Test IpcStreamStub::OnMiddleCodeRemoteRequest.
121  */
122 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_002, TestSize.Level1)
123 {
124     AudioProcessConfig config = InitProcessConfig();
125     int32_t ret = 0;
126     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
127 
128     EXPECT_NE(ptrIpcStreamStub, nullptr);
129 
130     MessageParcel data;
131     MessageParcel reply;
132     MessageOption option;
133 
134     auto result = ptrIpcStreamStub->OnMiddleCodeRemoteRequest(IpcStream::IpcStreamMsg::ON_SET_LOWPOWER_VOLUME,
135         data, reply, option);
136     EXPECT_EQ(result, AUDIO_OK);
137 }
138 
139 /**
140  * @tc.name  : Test IpcStreamStub API
141  * @tc.type  : FUNC
142  * @tc.number: IpcStreamStub_003
143  * @tc.desc  : Test IpcStreamStub::OnMiddleCodeRemoteRequest.
144  */
145 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_003, TestSize.Level1)
146 {
147     AudioProcessConfig config = InitProcessConfig();
148     int32_t ret = 0;
149     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
150 
151     EXPECT_NE(ptrIpcStreamStub, nullptr);
152 
153     MessageParcel data;
154     MessageParcel reply;
155     MessageOption option;
156 
157     auto result = ptrIpcStreamStub->OnMiddleCodeRemoteRequest(IpcStream::IpcStreamMsg::ON_GET_LOWPOWER_VOLUME,
158         data, reply, option);
159     EXPECT_EQ(result, AUDIO_OK);
160 }
161 
162 /**
163  * @tc.name  : Test IpcStreamStub API
164  * @tc.type  : FUNC
165  * @tc.number: IpcStreamStub_004
166  * @tc.desc  : Test IpcStreamStub::OnMiddleCodeRemoteRequest.
167  */
168 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_004, TestSize.Level1)
169 {
170     AudioProcessConfig config = InitProcessConfig();
171     int32_t ret = 0;
172     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
173 
174     EXPECT_NE(ptrIpcStreamStub, nullptr);
175 
176     MessageParcel data;
177     MessageParcel reply;
178     MessageOption option;
179 
180     auto result = ptrIpcStreamStub->OnMiddleCodeRemoteRequest(IpcStream::IpcStreamMsg::ON_SET_EFFECT_MODE,
181         data, reply, option);
182     EXPECT_EQ(result, AUDIO_OK);
183 }
184 
185 /**
186  * @tc.name  : Test IpcStreamStub API
187  * @tc.type  : FUNC
188  * @tc.number: IpcStreamStub_005
189  * @tc.desc  : Test IpcStreamStub::OnMiddleCodeRemoteRequest.
190  */
191 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_005, TestSize.Level1)
192 {
193     AudioProcessConfig config = InitProcessConfig();
194     int32_t ret = 0;
195     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
196 
197     EXPECT_NE(ptrIpcStreamStub, nullptr);
198 
199     MessageParcel data;
200     MessageParcel reply;
201     MessageOption option;
202 
203     auto result = ptrIpcStreamStub->OnMiddleCodeRemoteRequest(IpcStream::IpcStreamMsg::ON_GET_EFFECT_MODE,
204         data, reply, option);
205     EXPECT_EQ(result, AUDIO_OK);
206 }
207 
208 /**
209  * @tc.name  : Test IpcStreamStub API
210  * @tc.type  : FUNC
211  * @tc.number: IpcStreamStub_006
212  * @tc.desc  : Test IpcStreamStub::OnMiddleCodeRemoteRequest.
213  */
214 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_006, TestSize.Level1)
215 {
216     AudioProcessConfig config = InitProcessConfig();
217     int32_t ret = 0;
218     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
219 
220     EXPECT_NE(ptrIpcStreamStub, nullptr);
221 
222     MessageParcel data;
223     MessageParcel reply;
224     MessageOption option;
225 
226     auto result = ptrIpcStreamStub->OnMiddleCodeRemoteRequest(IpcStream::IpcStreamMsg::ON_SET_PRIVACY_TYPE,
227         data, reply, option);
228     EXPECT_EQ(result, AUDIO_OK);
229 }
230 
231 /**
232  * @tc.name  : Test IpcStreamStub API
233  * @tc.type  : FUNC
234  * @tc.number: IpcStreamStub_007
235  * @tc.desc  : Test IpcStreamStub::OnMiddleCodeRemoteRequest.
236  */
237 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_007, TestSize.Level1)
238 {
239     AudioProcessConfig config = InitProcessConfig();
240     int32_t ret = 0;
241     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
242 
243     EXPECT_NE(ptrIpcStreamStub, nullptr);
244 
245     MessageParcel data;
246     MessageParcel reply;
247     MessageOption option;
248 
249     auto result = ptrIpcStreamStub->OnMiddleCodeRemoteRequest(IpcStream::IpcStreamMsg::ON_GET_PRIVACY_TYPE,
250         data, reply, option);
251     EXPECT_EQ(result, AUDIO_OK);
252 }
253 
254 /**
255  * @tc.name  : Test IpcStreamStub API
256  * @tc.type  : FUNC
257  * @tc.number: IpcStreamStub_008
258  * @tc.desc  : Test IpcStreamStub::OnMiddleCodeRemoteRequest.
259  */
260 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_008, TestSize.Level1)
261 {
262     AudioProcessConfig config = InitProcessConfig();
263     int32_t ret = 0;
264     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
265 
266     EXPECT_NE(ptrIpcStreamStub, nullptr);
267 
268     MessageParcel data;
269     MessageParcel reply;
270     MessageOption option;
271 
272     auto result = ptrIpcStreamStub->OnMiddleCodeRemoteRequest(IpcStream::IpcStreamMsg::ON_SET_OFFLOAD_MODE,
273         data, reply, option);
274     EXPECT_EQ(result, AUDIO_OK);
275 }
276 
277 /**
278  * @tc.name  : Test IpcStreamStub API
279  * @tc.type  : FUNC
280  * @tc.number: IpcStreamStub_009
281  * @tc.desc  : Test IpcStreamStub::OnMiddleCodeRemoteRequest.
282  */
283 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_009, TestSize.Level1)
284 {
285     AudioProcessConfig config = InitProcessConfig();
286     int32_t ret = 0;
287     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
288 
289     EXPECT_NE(ptrIpcStreamStub, nullptr);
290 
291     MessageParcel data;
292     MessageParcel reply;
293     MessageOption option;
294 
295     auto result = ptrIpcStreamStub->OnMiddleCodeRemoteRequest(IpcStream::IpcStreamMsg::ON_UNSET_OFFLOAD_MODE,
296         data, reply, option);
297     EXPECT_EQ(result, AUDIO_OK);
298 }
299 
300 /**
301  * @tc.name  : Test IpcStreamStub API
302  * @tc.type  : FUNC
303  * @tc.number: IpcStreamStub_010
304  * @tc.desc  : Test IpcStreamStub::OnMiddleCodeRemoteRequest.
305  */
306 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_010, TestSize.Level1)
307 {
308     AudioProcessConfig config = InitProcessConfig();
309     int32_t ret = 0;
310     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
311 
312     EXPECT_NE(ptrIpcStreamStub, nullptr);
313 
314     MessageParcel data;
315     MessageParcel reply;
316     MessageOption option;
317 
318     auto result = ptrIpcStreamStub->
319         OnMiddleCodeRemoteRequest(IpcStream::IpcStreamMsg::ON_GET_OFFLOAD_APPROXIMATELY_CACHE_TIME,
320             data, reply, option);
321     EXPECT_EQ(result, AUDIO_OK);
322 }
323 
324 /**
325  * @tc.name  : Test IpcStreamStub API
326  * @tc.type  : FUNC
327  * @tc.number: IpcStreamStub_012
328  * @tc.desc  : Test IpcStreamStub::OnMiddleCodeRemoteRequest.
329  */
330 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_012, TestSize.Level1)
331 {
332     AudioProcessConfig config = InitProcessConfig();
333     int32_t ret = 0;
334     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
335 
336     EXPECT_NE(ptrIpcStreamStub, nullptr);
337 
338     MessageParcel data;
339     MessageParcel reply;
340     MessageOption option;
341 
342     auto result = ptrIpcStreamStub->
343         OnMiddleCodeRemoteRequest(IpcStream::IpcStreamMsg::ON_UPDATE_SPATIALIZATION_STATE,
344             data, reply, option);
345     EXPECT_EQ(result, AUDIO_OK);
346 }
347 
348 /**
349  * @tc.name  : Test IpcStreamStub API
350  * @tc.type  : FUNC
351  * @tc.number: IpcStreamStub_013
352  * @tc.desc  : Test IpcStreamStub::OnMiddleCodeRemoteRequest.
353  */
354 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_013, TestSize.Level1)
355 {
356     AudioProcessConfig config = InitProcessConfig();
357     int32_t ret = 0;
358     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
359 
360     EXPECT_NE(ptrIpcStreamStub, nullptr);
361 
362     MessageParcel data;
363     MessageParcel reply;
364     MessageOption option;
365 
366     auto result = ptrIpcStreamStub->
367         OnMiddleCodeRemoteRequest(IpcStream::IpcStreamMsg::ON_GET_STREAM_MANAGER_TYPE,
368             data, reply, option);
369     EXPECT_EQ(result, AUDIO_OK);
370 }
371 
372 /**
373  * @tc.name  : Test IpcStreamStub API
374  * @tc.type  : FUNC
375  * @tc.number: IpcStreamStub_014
376  * @tc.desc  : Test IpcStreamStub::OnMiddleCodeRemoteRequest.
377  */
378 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_014, TestSize.Level1)
379 {
380     AudioProcessConfig config = InitProcessConfig();
381     int32_t ret = 0;
382     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
383 
384     EXPECT_NE(ptrIpcStreamStub, nullptr);
385 
386     MessageParcel data;
387     MessageParcel reply;
388     MessageOption option;
389 
390     auto result = ptrIpcStreamStub->
391         OnMiddleCodeRemoteRequest(IpcStream::IpcStreamMsg::ON_SET_SILENT_MODE_AND_MIX_WITH_OTHERS,
392             data, reply, option);
393     EXPECT_EQ(result, AUDIO_OK);
394 }
395 
396 /**
397  * @tc.name  : Test IpcStreamStub API
398  * @tc.type  : FUNC
399  * @tc.number: IpcStreamStub_015
400  * @tc.desc  : Test IpcStreamStub::OnMiddleCodeRemoteRequest.
401  */
402 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_015, TestSize.Level1)
403 {
404     AudioProcessConfig config = InitProcessConfig();
405     int32_t ret = 0;
406     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
407 
408     EXPECT_NE(ptrIpcStreamStub, nullptr);
409 
410     MessageParcel data;
411     MessageParcel reply;
412     MessageOption option;
413 
414     auto result = ptrIpcStreamStub->
415         OnMiddleCodeRemoteRequest(IpcStream::IpcStreamMsg::ON_SET_CLIENT_VOLUME,
416             data, reply, option);
417     EXPECT_EQ(result, AUDIO_OK);
418 }
419 
420 /**
421  * @tc.name  : Test IpcStreamStub API
422  * @tc.type  : FUNC
423  * @tc.number: IpcStreamStub_016
424  * @tc.desc  : Test IpcStreamStub::OnMiddleCodeRemoteRequest.
425  */
426 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_016, TestSize.Level1)
427 {
428     AudioProcessConfig config = InitProcessConfig();
429     int32_t ret = 0;
430     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
431 
432     EXPECT_NE(ptrIpcStreamStub, nullptr);
433 
434     MessageParcel data;
435     MessageParcel reply;
436     MessageOption option;
437 
438     auto result = ptrIpcStreamStub->
439         OnMiddleCodeRemoteRequest(IpcStream::IpcStreamMsg::ON_SET_MUTE,
440             data, reply, option);
441     EXPECT_EQ(result, AUDIO_OK);
442 }
443 
444 /**
445  * @tc.name  : Test IpcStreamStub API
446  * @tc.type  : FUNC
447  * @tc.number: IpcStreamStub_017
448  * @tc.desc  : Test IpcStreamStub::OnMiddleCodeRemoteRequest.
449  */
450 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_017, TestSize.Level1)
451 {
452     AudioProcessConfig config = InitProcessConfig();
453     int32_t ret = 0;
454     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
455 
456     EXPECT_NE(ptrIpcStreamStub, nullptr);
457 
458     MessageParcel data;
459     MessageParcel reply;
460     MessageOption option;
461 
462     auto result = ptrIpcStreamStub->
463         OnMiddleCodeRemoteRequest(IpcStream::IpcStreamMsg::ON_REGISTER_THREAD_PRIORITY,
464             data, reply, option);
465     EXPECT_EQ(result, AUDIO_OK);
466 }
467 
468 /**
469  * @tc.name  : Test IpcStreamStub API
470  * @tc.type  : FUNC
471  * @tc.number: IpcStreamStub_018
472  * @tc.desc  : Test IpcStreamStub::OnMiddleCodeRemoteRequest.
473  */
474 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_018, TestSize.Level1)
475 {
476     AudioProcessConfig config = InitProcessConfig();
477     int32_t ret = 0;
478     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
479 
480     EXPECT_NE(ptrIpcStreamStub, nullptr);
481 
482     MessageParcel data;
483     MessageParcel reply;
484     MessageOption option;
485 
486     auto result = ptrIpcStreamStub->
487         OnMiddleCodeRemoteRequest(IpcStream::IpcStreamMsg::IPC_STREAM_MAX_MSG,
488             data, reply, option);
489     EXPECT_NE(result, AUDIO_OK);
490 }
491 
492 /**
493  * @tc.name  : Test IpcStreamStub API
494  * @tc.type  : FUNC
495  * @tc.number: IpcStreamStub_019
496  * @tc.desc  : Test IpcStreamStub::OnRemoteRequest.
497  */
498 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_019, TestSize.Level1)
499 {
500     AudioProcessConfig config = InitProcessConfig();
501     int32_t ret = 0;
502     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
503 
504     EXPECT_NE(ptrIpcStreamStub, nullptr);
505 
506     MessageParcel data;
507     MessageParcel reply;
508     MessageOption option;
509 
510     auto result = ptrIpcStreamStub->
511         OnRemoteRequest(IpcStream::IpcStreamMsg::IPC_STREAM_MAX_MSG,
512             data, reply, option);
513     EXPECT_NE(result, AUDIO_OK);
514 }
515 
516 /**
517  * @tc.name  : Test IpcStreamStub API
518  * @tc.type  : FUNC
519  * @tc.number: IpcStreamStub_020
520  * @tc.desc  : Test IpcStreamStub::OnRemoteRequest.
521  */
522 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_020, TestSize.Level1)
523 {
524     AudioProcessConfig config = InitProcessConfig();
525     int32_t ret = 0;
526     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
527 
528     EXPECT_NE(ptrIpcStreamStub, nullptr);
529 
530     MessageParcel data;
531     MessageParcel reply;
532     MessageOption option;
533 
534     auto result = ptrIpcStreamStub->
535         OnRemoteRequest(IpcStream::IpcStreamMsg::ON_UPDATE_POSITION,
536             data, reply, option);
537     EXPECT_NE(result, AUDIO_OK);
538 }
539 
540 /**
541  * @tc.name  : Test IpcStreamStub API
542  * @tc.type  : FUNC
543  * @tc.number: IpcStreamStub_021
544  * @tc.desc  : Test IpcStreamStub::OnRemoteRequest.
545  */
546 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_021, TestSize.Level1)
547 {
548     AudioProcessConfig config = InitProcessConfig();
549     int32_t ret = 0;
550     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
551 
552     EXPECT_NE(ptrIpcStreamStub, nullptr);
553 
554     MessageParcel data;
555     MessageParcel reply;
556     MessageOption option;
557 
558     auto result = ptrIpcStreamStub->
559         OnRemoteRequest(IpcStream::IpcStreamMsg::OH_GET_AUDIO_TIME,
560             data, reply, option);
561     EXPECT_NE(result, AUDIO_OK);
562 }
563 
564 /**
565  * @tc.name  : Test IpcStreamStub API
566  * @tc.type  : FUNC
567  * @tc.number: IpcStreamStub_022
568  * @tc.desc  : Test IpcStreamStub::OnRemoteRequest.
569  */
570 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_022, TestSize.Level1)
571 {
572     AudioProcessConfig config = InitProcessConfig();
573     int32_t ret = 0;
574     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
575 
576     EXPECT_NE(ptrIpcStreamStub, nullptr);
577 
578     MessageParcel data;
579     MessageParcel reply;
580     MessageOption option;
581 
582     auto result = ptrIpcStreamStub->
583         OnRemoteRequest(IpcStream::IpcStreamMsg::ON_GET_LATENCY,
584             data, reply, option);
585     EXPECT_NE(result, AUDIO_OK);
586 }
587 
588 /**
589  * @tc.name  : Test IpcStreamStub API
590  * @tc.type  : FUNC
591  * @tc.number: IpcStreamStub_023
592  * @tc.desc  : Test IpcStreamStub::OnRemoteRequest.
593  */
594 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_023, TestSize.Level1)
595 {
596     AudioProcessConfig config = InitProcessConfig();
597     int32_t ret = 0;
598     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
599 
600     EXPECT_NE(ptrIpcStreamStub, nullptr);
601 
602     MessageParcel data;
603     MessageParcel reply;
604     MessageOption option;
605 
606     auto result = ptrIpcStreamStub->
607         OnRemoteRequest(IpcStream::IpcStreamMsg::ON_SET_RATE,
608             data, reply, option);
609     EXPECT_NE(result, AUDIO_OK);
610 }
611 
612 /**
613  * @tc.name  : Test IpcStreamStub API
614  * @tc.type  : FUNC
615  * @tc.number: IpcStreamStub_024
616  * @tc.desc  : Test IpcStreamStub::OnMiddleCodeRemoteRequest.
617  */
618 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_024, TestSize.Level1)
619 {
620     AudioProcessConfig config = InitProcessConfig();
621     int32_t ret = 0;
622     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
623 
624     EXPECT_NE(ptrIpcStreamStub, nullptr);
625 
626     MessageParcel data;
627     MessageParcel reply;
628     MessageOption option;
629 
630     auto result = ptrIpcStreamStub->OnMiddleCodeRemoteRequest(IpcStream::IpcStreamMsg::ON_SET_DUCK_FACTOR,
631         data, reply, option);
632     EXPECT_EQ(result, AUDIO_OK);
633 }
634 
635 /**
636  * @tc.name  : Test IpcStreamStub API
637  * @tc.type  : FUNC
638  * @tc.number: IpcStreamStub_025
639  * @tc.desc  : Test IpcStreamStub::OnMiddleCodeRemoteRequest.
640  */
641 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_025, TestSize.Level1)
642 {
643     AudioProcessConfig config = InitProcessConfig();
644     int32_t ret = 0;
645     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
646 
647     EXPECT_NE(ptrIpcStreamStub, nullptr);
648 
649     MessageParcel data;
650     MessageParcel reply;
651     MessageOption option;
652 
653     auto result = ptrIpcStreamStub->OnMiddleCodeRemoteRequest(IpcStream::IpcStreamMsg::ON_SET_DEFAULT_OUTPUT_DEVICE,
654         data, reply, option);
655     EXPECT_EQ(result, AUDIO_OK);
656 }
657 
658 /**
659  * @tc.name  : Test IpcStreamStub API
660  * @tc.type  : FUNC
661  * @tc.number: IpcStreamStub_026
662  * @tc.desc  : Test IpcStreamStub::OnRemoteRequest.
663  */
664 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_026, TestSize.Level1)
665 {
666     AudioProcessConfig config = InitProcessConfig();
667     int32_t ret = 0;
668     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
669 
670     EXPECT_NE(ptrIpcStreamStub, nullptr);
671 
672     MessageParcel data;
673     MessageParcel reply;
674     MessageOption option;
675 
676     auto result = ptrIpcStreamStub->
677         OnRemoteRequest(IpcStream::IpcStreamMsg::ON_REGISTER_STREAM_LISTENER,
678             data, reply, option);
679     EXPECT_NE(result, AUDIO_OK);
680 
681     result = ptrIpcStreamStub->OnRemoteRequest(IpcStream::IpcStreamMsg::ON_RESOLVE_BUFFER,
682             data, reply, option);
683     EXPECT_NE(result, AUDIO_OK);
684 
685     result = ptrIpcStreamStub->OnRemoteRequest(IpcStream::IpcStreamMsg::ON_GET_AUDIO_SESSIONID,
686         data, reply, option);
687     EXPECT_NE(result, AUDIO_OK);
688 
689     result = ptrIpcStreamStub->OnRemoteRequest(IpcStream::IpcStreamMsg::ON_START,
690         data, reply, option);
691     EXPECT_NE(result, AUDIO_OK);
692 
693     result = ptrIpcStreamStub->OnRemoteRequest(IpcStream::IpcStreamMsg::ON_STOP,
694         data, reply, option);
695     EXPECT_NE(result, AUDIO_OK);
696 
697     result = ptrIpcStreamStub->OnRemoteRequest(IpcStream::IpcStreamMsg::ON_RELEASE,
698         data, reply, option);
699     EXPECT_NE(result, AUDIO_OK);
700 
701     result = ptrIpcStreamStub->OnRemoteRequest(IpcStream::IpcStreamMsg::ON_FLUSH,
702         data, reply, option);
703     EXPECT_NE(result, AUDIO_OK);
704 }
705 
706 /**
707  * @tc.name  : Test IpcStreamStub API
708  * @tc.type  : FUNC
709  * @tc.number: IpcStreamStub_027
710  * @tc.desc  : Test IpcStreamStub::OnRemoteRequest.
711  */
712 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_027, TestSize.Level1)
713 {
714     AudioProcessConfig config = InitProcessConfig();
715     int32_t ret = 0;
716     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
717 
718     EXPECT_NE(ptrIpcStreamStub, nullptr);
719 
720     MessageParcel data;
721     MessageParcel reply;
722     MessageOption option;
723 
724     auto result = ptrIpcStreamStub->
725         OnRemoteRequest(IpcStream::IpcStreamMsg::ON_DRAIN,
726             data, reply, option);
727     EXPECT_NE(result, AUDIO_OK);
728 
729     result = ptrIpcStreamStub->OnRemoteRequest(IpcStream::IpcStreamMsg::ON_UPDATA_PLAYBACK_CAPTURER_CONFIG,
730             data, reply, option);
731     EXPECT_NE(result, AUDIO_OK);
732 
733     result = ptrIpcStreamStub->OnRemoteRequest(IpcStream::IpcStreamMsg::OH_GET_AUDIO_POSITION,
734         data, reply, option);
735     EXPECT_NE(result, AUDIO_OK);
736 
737     result = ptrIpcStreamStub->OnRemoteRequest(IpcStream::IpcStreamMsg::OH_GET_AUDIO_POSITION,
738         data, reply, option);
739     EXPECT_NE(result, AUDIO_OK);
740 }
741 
742 /**
743  * @tc.name  : Test IpcStreamStub API
744  * @tc.type  : FUNC
745  * @tc.number: IpcStreamStub_028
746  * @tc.desc  : Test IpcStreamStub::HandleRegisterStreamListener.
747  */
748 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_028, TestSize.Level1)
749 {
750     AudioProcessConfig config = InitProcessConfig();
751     int32_t ret = 0;
752     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
753     ASSERT_TRUE(ptrIpcStreamStub != nullptr);
754 
755     MessageParcel data;
756     MessageParcel reply;
757 
758     auto result = ptrIpcStreamStub->HandleRegisterStreamListener(data, reply);
759     EXPECT_EQ(result, AUDIO_INVALID_PARAM);
760 
761     sptr<IRemoteObject> impl = new RemoteObjectTestStub();
762     data.WriteRemoteObject(impl);
763     result = ptrIpcStreamStub->HandleRegisterStreamListener(data, reply);
764     EXPECT_EQ(result, AUDIO_OK);
765 }
766 
767 /**
768  * @tc.name  : Test IpcStreamStub API
769  * @tc.type  : FUNC
770  * @tc.number: IpcStreamStub_029
771  * @tc.desc  : Test IpcStreamStub::HandleResolveBuffer.
772  */
773 HWTEST(IpcStreamStubUnitTest, IpcStreamStub_029, TestSize.Level1)
774 {
775     AudioProcessConfig config = InitProcessConfig();
776     int32_t ret = 0;
777     sptr<IpcStreamInServer> ptrIpcStreamStub = IpcStreamInServer::Create(config, ret);
778     ASSERT_TRUE(ptrIpcStreamStub != nullptr);
779 
780     MessageParcel data;
781     MessageParcel reply;
782 
783     auto result = ptrIpcStreamStub->HandleResolveBuffer(data, reply);
784     EXPECT_EQ(result, AUDIO_OK);
785 }
786 } // namespace AudioStandard
787 } // namespace OHOS