• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023-2025 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 <thread>
17 #include <gtest/gtest.h>
18 #include "audio_utils.h"
19 #include "parameter.h"
20 #include "audio_channel_blend.h"
21 #include "volume_ramp.h"
22 #include "audio_speed.h"
23 #include "audio_errors.h"
24 
25 using namespace testing::ext;
26 using namespace std;
27 namespace OHOS {
28 namespace AudioStandard {
29 
30 class AudioUtilsProUnitTest : public testing::Test {
31 public:
32     static void SetUpTestCase(void);
33     static void TearDownTestCase(void);
34     void SetUp();
35     void TearDown();
36 };
37 
SetUpTestCase(void)38 void AudioUtilsProUnitTest::SetUpTestCase(void)
39 {
40     // input testsuit setup step,setup invoked before all testcases
41 }
42 
TearDownTestCase(void)43 void AudioUtilsProUnitTest::TearDownTestCase(void)
44 {
45     // input testsuit teardown step,teardown invoked after all testcases
46 }
47 
SetUp(void)48 void AudioUtilsProUnitTest::SetUp(void)
49 {
50     // input testcase setup step,setup invoked before each testcases
51 }
52 
TearDown(void)53 void AudioUtilsProUnitTest::TearDown(void)
54 {
55     // input testcase teardown step,teardown invoked after each testcases
56 }
57 
58 /**
59 * @tc.name  : Test SwitchStreamUtil API
60 * @tc.type  : FUNC
61 * @tc.number: SwitchStreamUtil_001
62 * @tc.desc  : Test SwitchStreamUtil::InsertSwitchStreamRecord().
63 */
64 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_001, TestSize.Level1)
65 {
66     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_PREPARED};
67 
68     SwitchState targetState = SwitchState::SWITCH_STATE_WAITING;
69 
70     auto ret = SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
71     EXPECT_EQ(ret, true);
72 
73     ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
74     EXPECT_EQ(ret, true);
75 }
76 
77 /**
78 * @tc.name  : Test SwitchStreamUtil API
79 * @tc.type  : FUNC
80 * @tc.number: SwitchStreamUtil_002
81 * @tc.desc  : Test SwitchStreamUtil::InsertSwitchStreamRecord().
82 */
83 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_002, TestSize.Level1)
84 {
85     SwitchStreamInfo info = {0, 0, 0, 0, 0, CAPTURER_PREPARED};
86 
87     SwitchState targetState = SwitchState::SWITCH_STATE_WAITING;
88 
89     auto ret = SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
90     EXPECT_EQ(ret, true);
91 }
92 
93 /**
94 * @tc.name  : Test SwitchStreamUtil API
95 * @tc.type  : FUNC
96 * @tc.number: SwitchStreamUtil_003
97 * @tc.desc  : Test SwitchStreamUtil::IsSwitchStreamSwitching().
98 */
99 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_003, TestSize.Level1)
100 {
101     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_PREPARED};
102     SwitchState targetState = SwitchState::SWITCH_STATE_WAITING;
103 
104     SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
105 
106     SwitchStreamInfo info2 = {0, 1, 0, 0, 0, CAPTURER_PREPARED};
107     SwitchState targetState2 = SwitchState::SWITCH_STATE_CREATED;
108 
109     auto ret = SwitchStreamUtil::IsSwitchStreamSwitching(info2, targetState2);
110     EXPECT_EQ(ret, true);
111 
112     ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
113     EXPECT_EQ(ret, true);
114 }
115 
116 /**
117 * @tc.name  : Test SwitchStreamUtil API
118 * @tc.type  : FUNC
119 * @tc.number: SwitchStreamUtil_004
120 * @tc.desc  : Test SwitchStreamUtil::IsSwitchStreamSwitching().
121 */
122 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_004, TestSize.Level1)
123 {
124     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_RUNNING};
125     SwitchState targetState = SwitchState::SWITCH_STATE_CREATED;
126 
127     SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
128 
129     SwitchStreamInfo info2 = {0, 1, 0, 0, 0, CAPTURER_RUNNING};
130     SwitchState targetState2 = SwitchState::SWITCH_STATE_STARTED;
131 
132     auto ret = SwitchStreamUtil::IsSwitchStreamSwitching(info2, targetState2);
133     EXPECT_EQ(ret, true);
134 
135     ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
136     EXPECT_EQ(ret, true);
137 }
138 
139 /**
140 * @tc.name  : Test SwitchStreamUtil API
141 * @tc.type  : FUNC
142 * @tc.number: SwitchStreamUtil_005
143 * @tc.desc  : Test SwitchStreamUtil::IsSwitchStreamSwitching().
144 */
145 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_005, TestSize.Level1)
146 {
147     SwitchStreamInfo info = {0, 2, 0, 0, 0, CAPTURER_RUNNING};
148     SwitchState targetState = SwitchState::SWITCH_STATE_CREATED;
149 
150     SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
151 
152     SwitchStreamInfo info2 = {0, 1, 0, 0, 0, CAPTURER_RUNNING};
153     SwitchState targetState2 = SwitchState::SWITCH_STATE_STARTED;
154 
155     auto ret = SwitchStreamUtil::IsSwitchStreamSwitching(info2, targetState2);
156     EXPECT_EQ(ret, false);
157 
158     ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
159     EXPECT_EQ(ret, true);
160 }
161 
162 /**
163 * @tc.name  : Test SwitchStreamUtil API
164 * @tc.type  : FUNC
165 * @tc.number: SwitchStreamUtil_006
166 * @tc.desc  : Test SwitchStreamUtil::IsSwitchStreamSwitching().
167 */
168 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_006, TestSize.Level1)
169 {
170     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_RUNNING};
171     SwitchState targetState = SwitchState::SWITCH_STATE_CREATED;
172 
173     SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
174 
175     SwitchStreamInfo info2 = {0, 1, 0, 0, 0, CAPTURER_RUNNING};
176     SwitchState targetState2 = SwitchState::SWITCH_STATE_CREATED;
177 
178     auto ret = SwitchStreamUtil::IsSwitchStreamSwitching(info2, targetState2);
179     EXPECT_EQ(ret, false);
180 
181     ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
182     EXPECT_EQ(ret, true);
183 }
184 
185 /**
186 * @tc.name  : Test SwitchStreamUtil API
187 * @tc.type  : FUNC
188 * @tc.number: SwitchStreamUtil_007
189 * @tc.desc  : Test SwitchStreamUtil::IsSwitchStreamSwitching().
190 */
191 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_007, TestSize.Level1)
192 {
193     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_RUNNING};
194     SwitchState targetState = SwitchState::SWITCH_STATE_WAITING;
195 
196     SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
197 
198     SwitchStreamInfo info2 = {0, 1, 0, 0, 0, CAPTURER_RUNNING};
199     SwitchState targetState2 = SwitchState::SWITCH_STATE_CREATED;
200 
201     auto ret = SwitchStreamUtil::IsSwitchStreamSwitching(info2, targetState2);
202     EXPECT_EQ(ret, false);
203 
204     ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
205     EXPECT_EQ(ret, true);
206 }
207 
208 /**
209 * @tc.name  : Test SwitchStreamUtil API
210 * @tc.type  : FUNC
211 * @tc.number: SwitchStreamUtil_008
212 * @tc.desc  : Test SwitchStreamUtil::IsSwitchStreamSwitching().
213 */
214 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_008, TestSize.Level1)
215 {
216     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_RUNNING};
217     SwitchState targetState = SwitchState::SWITCH_STATE_WAITING;
218 
219     SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
220 
221     SwitchStreamInfo info2 = {0, 1, 0, 0, 0, CAPTURER_RUNNING};
222     SwitchState targetState2 = SwitchState::SWITCH_STATE_STARTED;
223 
224     auto ret = SwitchStreamUtil::IsSwitchStreamSwitching(info2, targetState2);
225     EXPECT_EQ(ret, false);
226 
227     ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
228     EXPECT_EQ(ret, true);
229 }
230 
231 /**
232 * @tc.name  : Test SwitchStreamUtil API
233 * @tc.type  : FUNC
234 * @tc.number: SwitchStreamUtil_009
235 * @tc.desc  : Test SwitchStreamUtil::IsSwitchStreamSwitching().
236 */
237 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_009, TestSize.Level1)
238 {
239     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_PREPARED};
240     SwitchState targetState = SwitchState::SWITCH_STATE_CREATED;
241 
242     SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
243 
244     SwitchStreamInfo info2 = {0, 1, 0, 0, 0, CAPTURER_PREPARED};
245     SwitchState targetState2 = SwitchState::SWITCH_STATE_STARTED;
246 
247     auto ret = SwitchStreamUtil::IsSwitchStreamSwitching(info2, targetState2);
248     EXPECT_EQ(ret, false);
249 
250     ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
251     EXPECT_EQ(ret, true);
252 }
253 
254 /**
255 * @tc.name  : Test SwitchStreamUtil API
256 * @tc.type  : FUNC
257 * @tc.number: SwitchStreamUtil_010
258 * @tc.desc  : Test SwitchStreamUtil::TimeoutThreadHandleTimeoutRecord().
259 */
260 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_010, TestSize.Level1)
261 {
262     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_PREPARED};
263     SwitchState targetState = SwitchState::SWITCH_STATE_CREATED;
264 
265     SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
266 
267     SwitchStreamInfo info2 = {0, 1, 0, 0, 0, CAPTURER_PREPARED};
268     SwitchState targetState2 = SwitchState::SWITCH_STATE_STARTED;
269 
270     SwitchStreamUtil::TimeoutThreadHandleTimeoutRecord(info2, targetState2);
271 
272     auto ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
273     EXPECT_EQ(ret, true);
274 }
275 
276 /**
277 * @tc.name  : Test SwitchStreamUtil API
278 * @tc.type  : FUNC
279 * @tc.number: SwitchStreamUtil_011
280 * @tc.desc  : Test SwitchStreamUtil::TimeoutThreadHandleTimeoutRecord().
281 */
282 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_011, TestSize.Level1)
283 {
284     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_RUNNING};
285     SwitchState targetState = SwitchState::SWITCH_STATE_CREATED;
286 
287     SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
288 
289     SwitchStreamInfo info2 = {0, 1, 0, 0, 0, CAPTURER_PREPARED};
290     SwitchState targetState2 = SwitchState::SWITCH_STATE_STARTED;
291 
292     SwitchStreamUtil::TimeoutThreadHandleTimeoutRecord(info2, targetState2);
293 
294     auto ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
295     EXPECT_EQ(ret, true);
296 }
297 
298 /**
299 * @tc.name  : Test SwitchStreamUtil API
300 * @tc.type  : FUNC
301 * @tc.number: SwitchStreamUtil_012
302 * @tc.desc  : Test SwitchStreamUtil::RemoveSwitchStreamRecord().
303 */
304 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_012, TestSize.Level1)
305 {
306     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_RUNNING};
307     SwitchState targetState = SwitchState::SWITCH_STATE_CREATED;
308 
309     SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
310 
311     SwitchStreamInfo info2 = {0, 1, 0, 0, 0, CAPTURER_PREPARED};
312     SwitchState targetState2 = SwitchState::SWITCH_STATE_STARTED;
313 
314     auto ret = SwitchStreamUtil::RemoveSwitchStreamRecord(info2, targetState2);
315     EXPECT_EQ(ret, true);
316 
317     ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
318     EXPECT_EQ(ret, true);
319 }
320 
321 /**
322 * @tc.name  : Test SwitchStreamUtil API
323 * @tc.type  : FUNC
324 * @tc.number: SwitchStreamUtil_013
325 * @tc.desc  : Test SwitchStreamUtil::RemoveSwitchStreamRecord().
326 */
327 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_013, TestSize.Level1)
328 {
329     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_RUNNING};
330     SwitchState targetState = SwitchState::SWITCH_STATE_CREATED;
331 
332     SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
333 
334     auto ret = SwitchStreamUtil::RemoveSwitchStreamRecord(info, targetState);
335     EXPECT_EQ(ret, true);
336 }
337 
338 /**
339 * @tc.name  : Test SwitchStreamUtil API
340 * @tc.type  : FUNC
341 * @tc.number: SwitchStreamUtil_014
342 * @tc.desc  : Test SwitchStreamUtil::RemoveAllRecordBySessionId().
343 */
344 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_014, TestSize.Level1)
345 {
346     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_RUNNING};
347     SwitchState targetState = SwitchState::SWITCH_STATE_CREATED;
348 
349     SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
350 
351     SwitchStreamInfo info2 = {1, 1, 0, 0, 0, CAPTURER_PREPARED};
352     SwitchState targetState2 = SwitchState::SWITCH_STATE_STARTED;
353 
354     SwitchStreamUtil::InsertSwitchStreamRecord(info2, targetState2);
355 
356     auto ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
357     EXPECT_EQ(ret, true);
358 
359     ret = SwitchStreamUtil::RemoveAllRecordBySessionId(1);
360     EXPECT_EQ(ret, true);
361 }
362 
363 /**
364 * @tc.name  : Test SwitchStreamUtil API
365 * @tc.type  : FUNC
366 * @tc.number: SwitchStreamUtil_015
367 * @tc.desc  : Test SwitchStreamUtil::HandleStartedSwitchInfoInRecord().
368 */
369 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_015, TestSize.Level1)
370 {
371     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_RUNNING};
372     SwitchState targetState = SwitchState::SWITCH_STATE_CREATED;
373 
374     SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
375 
376     SwitchStreamInfo info2 = {0, 1, 0, 0, 0, CAPTURER_RUNNING};
377     SwitchState targetState2 = SwitchState::SWITCH_STATE_STARTED;
378 
379     auto ret = SwitchStreamUtil::HandleStartedSwitchInfoInRecord(info2, targetState2);
380     EXPECT_EQ(ret, true);
381 
382     ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
383     EXPECT_EQ(ret, true);
384 }
385 
386 /**
387 * @tc.name  : Test SwitchStreamUtil API
388 * @tc.type  : FUNC
389 * @tc.number: SwitchStreamUtil_016
390 * @tc.desc  : Test SwitchStreamUtil::HandleStartedSwitchInfoInRecord().
391 */
392 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_016, TestSize.Level1)
393 {
394     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_PREPARED};
395     SwitchState targetState = SwitchState::SWITCH_STATE_CREATED;
396 
397     SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
398 
399     SwitchStreamInfo info2 = {0, 1, 0, 0, 0, CAPTURER_PREPARED};
400     SwitchState targetState2 = SwitchState::SWITCH_STATE_STARTED;
401 
402     auto ret = SwitchStreamUtil::HandleStartedSwitchInfoInRecord(info2, targetState2);
403     EXPECT_EQ(ret, true);
404 
405     ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
406     EXPECT_EQ(ret, true);
407 }
408 
409 /**
410 * @tc.name  : Test SwitchStreamUtil API
411 * @tc.type  : FUNC
412 * @tc.number: SwitchStreamUtil_017
413 * @tc.desc  : Test SwitchStreamUtil::HandleStartedSwitchInfoInRecord().
414 */
415 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_017, TestSize.Level1)
416 {
417     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_PREPARED};
418     SwitchState targetState = SwitchState::SWITCH_STATE_STARTED;
419 
420     SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
421 
422     SwitchStreamInfo info2 = {0, 1, 0, 0, 0, CAPTURER_PREPARED};
423     SwitchState targetState2 = SwitchState::SWITCH_STATE_STARTED;
424 
425     auto ret = SwitchStreamUtil::HandleStartedSwitchInfoInRecord(info2, targetState2);
426     EXPECT_EQ(ret, true);
427 
428     ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
429     EXPECT_EQ(ret, true);
430 }
431 
432 /**
433 * @tc.name  : Test SwitchStreamUtil API
434 * @tc.type  : FUNC
435 * @tc.number: SwitchStreamUtil_018
436 * @tc.desc  : Test SwitchStreamUtil::HandleSwitchInfoInRecord().
437 */
438 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_018, TestSize.Level1)
439 {
440     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_INVALID};
441     SwitchState targetState = SwitchState::SWITCH_STATE_STARTED;
442 
443     SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
444 
445     SwitchStreamInfo info2 = {0, 1, 0, 0, 0, CAPTURER_INVALID};
446     SwitchState targetState2 = SwitchState::SWITCH_STATE_STARTED;
447 
448     auto ret = SwitchStreamUtil::HandleSwitchInfoInRecord(info2, targetState2);
449     EXPECT_EQ(ret, true);
450 
451     ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
452     EXPECT_EQ(ret, true);
453 }
454 
455 /**
456 * @tc.name  : Test SwitchStreamUtil API
457 * @tc.type  : FUNC
458 * @tc.number: SwitchStreamUtil_019
459 * @tc.desc  : Test SwitchStreamUtil::HandleSwitchInfoInRecord().
460 */
461 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_019, TestSize.Level1)
462 {
463     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_NEW};
464     SwitchState targetState = SwitchState::SWITCH_STATE_CREATED;
465 
466     SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
467 
468     SwitchStreamInfo info2 = {0, 1, 0, 0, 0, CAPTURER_NEW};
469     SwitchState targetState2 = SwitchState::SWITCH_STATE_CREATED;
470 
471     auto ret = SwitchStreamUtil::HandleSwitchInfoInRecord(info2, targetState2);
472     EXPECT_EQ(ret, true);
473 
474     ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
475     EXPECT_EQ(ret, true);
476 }
477 
478 /**
479 * @tc.name  : Test SwitchStreamUtil API
480 * @tc.type  : FUNC
481 * @tc.number: SwitchStreamUtil_020
482 * @tc.desc  : Test SwitchStreamUtil::HandleSwitchInfoInRecord().
483 */
484 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_020, TestSize.Level1)
485 {
486     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_NEW};
487     SwitchState targetState = SwitchState::SWITCH_STATE_FINISHED;
488 
489     SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
490 
491     SwitchStreamInfo info2 = {0, 1, 0, 0, 0, CAPTURER_NEW};
492     SwitchState targetState2 = SwitchState::SWITCH_STATE_FINISHED;
493 
494     auto ret = SwitchStreamUtil::HandleSwitchInfoInRecord(info2, targetState2);
495     EXPECT_EQ(ret, true);
496 
497     ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
498     EXPECT_EQ(ret, true);
499 }
500 
501 /**
502 * @tc.name  : Test SwitchStreamUtil API
503 * @tc.type  : FUNC
504 * @tc.number: SwitchStreamUtil_021
505 * @tc.desc  : Test SwitchStreamUtil::HandleCreatedSwitchInfoInRecord().
506 */
507 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_021, TestSize.Level1)
508 {
509     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_PREPARED};
510     SwitchState targetState = SwitchState::SWITCH_STATE_WAITING;
511 
512     SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
513 
514     SwitchStreamInfo info2 = {0, 1, 0, 0, 0, CAPTURER_PREPARED};
515     SwitchState targetState2 = SwitchState::SWITCH_STATE_WAITING;
516 
517     auto ret = SwitchStreamUtil::HandleCreatedSwitchInfoInRecord(info2, targetState2);
518     EXPECT_EQ(ret, true);
519 
520     ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
521     EXPECT_EQ(ret, true);
522 }
523 
524 /**
525 * @tc.name  : Test SwitchStreamUtil API
526 * @tc.type  : FUNC
527 * @tc.number: SwitchStreamUtil_022
528 * @tc.desc  : Test SwitchStreamUtil::HandleCreatedSwitchInfoInRecord().
529 */
530 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_022, TestSize.Level1)
531 {
532     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_NEW};
533     SwitchState targetState = SwitchState::SWITCH_STATE_WAITING;
534 
535     SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
536 
537     SwitchStreamInfo info2 = {0, 1, 0, 0, 0, CAPTURER_NEW};
538     SwitchState targetState2 = SwitchState::SWITCH_STATE_WAITING;
539 
540     auto ret = SwitchStreamUtil::HandleCreatedSwitchInfoInRecord(info2, targetState2);
541     EXPECT_EQ(ret, true);
542 
543     ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
544     EXPECT_EQ(ret, true);
545 }
546 
547 /**
548 * @tc.name  : Test SwitchStreamUtil API
549 * @tc.type  : FUNC
550 * @tc.number: SwitchStreamUtil_023
551 * @tc.desc  : Test SwitchStreamUtil::HandleCreatedSwitchInfoInRecord().
552 */
553 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_023, TestSize.Level1)
554 {
555     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_NEW};
556     SwitchState targetState = SwitchState::SWITCH_STATE_TIMEOUT;
557 
558     SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
559 
560     SwitchStreamInfo info2 = {0, 1, 0, 0, 0, CAPTURER_NEW};
561     SwitchState targetState2 = SwitchState::SWITCH_STATE_TIMEOUT;
562 
563     auto ret = SwitchStreamUtil::HandleCreatedSwitchInfoInRecord(info2, targetState2);
564     EXPECT_EQ(ret, true);
565 
566     ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
567     EXPECT_EQ(ret, true);
568 }
569 
570 /**
571 * @tc.name  : Test SwitchStreamUtil API
572 * @tc.type  : FUNC
573 * @tc.number: SwitchStreamUtil_024
574 * @tc.desc  : Test SwitchStreamUtil::UpdateSwitchStreamRecord().
575 */
576 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_024, TestSize.Level1)
577 {
578     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_NEW};
579     SwitchState targetState = SwitchState::SWITCH_STATE_TIMEOUT;
580 
581     SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
582 
583     SwitchStreamInfo info2 = {0, 2, 0, 0, 0, CAPTURER_NEW};
584     SwitchState targetState2 = SwitchState::SWITCH_STATE_TIMEOUT;
585 
586     auto ret = SwitchStreamUtil::UpdateSwitchStreamRecord(info2, targetState2);
587     EXPECT_EQ(ret, true);
588 
589     ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
590     EXPECT_EQ(ret, true);
591 }
592 
593 /**
594 * @tc.name  : Test SwitchStreamUtil API
595 * @tc.type  : FUNC
596 * @tc.number: SwitchStreamUtil_025
597 * @tc.desc  : Test SwitchStreamUtil::UpdateSwitchStreamRecord().
598 */
599 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_025, TestSize.Level1)
600 {
601     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_NEW};
602     SwitchState targetState = SwitchState::SWITCH_STATE_TIMEOUT;
603 
604     SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
605 
606     SwitchStreamInfo info2 = {0, 2, 0, 0, 0, CAPTURER_NEW};
607     SwitchState targetState2 = SwitchState::SWITCH_STATE_WAITING;
608 
609     auto ret = SwitchStreamUtil::UpdateSwitchStreamRecord(info2, targetState2);
610     EXPECT_EQ(ret, true);
611 
612     ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
613     EXPECT_EQ(ret, true);
614 }
615 
616 /**
617 * @tc.name  : Test SwitchStreamUtil API
618 * @tc.type  : FUNC
619 * @tc.number: SwitchStreamUtil_026
620 * @tc.desc  : Test SwitchStreamUtil::UpdateSwitchStreamRecord().
621 */
622 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_026, TestSize.Level1)
623 {
624     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_NEW};
625     SwitchState targetState = SwitchState::SWITCH_STATE_TIMEOUT;
626 
627     SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
628 
629     SwitchStreamInfo info2 = {0, 1, 0, 0, 0, CAPTURER_NEW};
630     SwitchState targetState2 = SwitchState::SWITCH_STATE_WAITING;
631 
632     auto ret = SwitchStreamUtil::UpdateSwitchStreamRecord(info2, targetState2);
633     EXPECT_EQ(ret, false);
634 
635     ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
636     EXPECT_EQ(ret, true);
637 }
638 
639 /**
640 * @tc.name  : Test SwitchStreamUtil API
641 * @tc.type  : FUNC
642 * @tc.number: SwitchStreamUtil_027
643 * @tc.desc  : Test SwitchStreamUtil::UpdateSwitchStreamRecord().
644 */
645 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_027, TestSize.Level1)
646 {
647     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_NEW};
648     SwitchState targetState = SwitchState::SWITCH_STATE_FINISHED;
649 
650     SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
651 
652     SwitchStreamInfo info2 = {0, 1, 0, 0, 0, CAPTURER_NEW};
653     SwitchState targetState2 = SwitchState::SWITCH_STATE_CREATED;
654 
655     auto ret = SwitchStreamUtil::UpdateSwitchStreamRecord(info2, targetState2);
656     EXPECT_EQ(ret, false);
657 
658     ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
659     EXPECT_EQ(ret, true);
660 }
661 
662 #ifdef TEMP_DISABLE
663 /**
664 * @tc.name  : Test SwitchStreamUtil API
665 * @tc.type  : FUNC
666 * @tc.number: SwitchStreamUtil_028
667 * @tc.desc  : Test SwitchStreamUtil::UpdateSwitchStreamRecord().
668 */
669 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_028, TestSize.Level1)
670 {
671     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_NEW};
672     SwitchState targetState = SwitchState::SWITCH_STATE_WAITING;
673 
674     SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
675 
676     SwitchStreamInfo info2 = {0, 1, 0, 0, 0, CAPTURER_NEW};
677     SwitchState targetState2 = SwitchState::SWITCH_STATE_STARTED;
678 
679     auto ret = SwitchStreamUtil::UpdateSwitchStreamRecord(info2, targetState2);
680     EXPECT_EQ(ret, true);
681 
682     ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
683     EXPECT_EQ(ret, true);
684 }
685 
686 /**
687 * @tc.name  : Test SwitchStreamUtil API
688 * @tc.type  : FUNC
689 * @tc.number: SwitchStreamUtil_029
690 * @tc.desc  : Test SwitchStreamUtil::UpdateSwitchStreamRecord().
691 */
692 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_029, TestSize.Level1)
693 {
694     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_NEW};
695     SwitchState targetState = SwitchState::SWITCH_STATE_WAITING;
696 
697     SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
698 
699     SwitchStreamInfo info2 = {0, 1, 0, 0, 0, CAPTURER_NEW};
700     SwitchState targetState2 = SwitchState::SWITCH_STATE_TIMEOUT;
701 
702     auto ret = SwitchStreamUtil::UpdateSwitchStreamRecord(info2, targetState2);
703     EXPECT_EQ(ret, false);
704 
705     ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
706     EXPECT_EQ(ret, true);
707 }
708 #endif
709 
710 /**
711  * @tc.name  : Test HandleSwitchInfoInRecord API
712  * @tc.type  : FUNC
713  * @tc.number: HandleSwitchInfoInRecord_030
714  * @tc.desc  : Test SwitchStreamUtil::HandleSwitchInfoInRecord().
715  */
716 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_030, TestSize.Level1)
717 {
718     SwitchStreamInfo info = {0, 1, 0, 0, 0, CAPTURER_STOPPED};
719     SwitchState targetState = SwitchState::SWITCH_STATE_WAITING;
720 
721     auto ret = SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
722     EXPECT_EQ(ret, true);
723 
724     SwitchStreamInfo info2 = {0, 1, 0, 0, 0, CAPTURER_STOPPED};
725     SwitchStreamInfo info3 = {0, 1, 0, 0, 0, CAPTURER_PAUSED};
726     SwitchStreamInfo info4 = {0, 1, 0, 0, 0, CAPTURER_RELEASED};
727     SwitchStreamInfo info5 = {0, 1, 0, 0, 0, CAPTURER_INVALID};
728     SwitchState targetState2 = SwitchState::SWITCH_STATE_WAITING;
729 
730     ret = SwitchStreamUtil::HandleSwitchInfoInRecord(info2, targetState2);
731     EXPECT_EQ(ret, true);
732 
733     ret = SwitchStreamUtil::HandleSwitchInfoInRecord(info3, targetState2);
734     EXPECT_EQ(ret, true);
735 
736     ret = SwitchStreamUtil::HandleSwitchInfoInRecord(info4, targetState2);
737     EXPECT_EQ(ret, true);
738 
739     ret = SwitchStreamUtil::HandleSwitchInfoInRecord(info5, targetState2);
740     EXPECT_EQ(ret, true);
741 
742     ret = SwitchStreamUtil::RemoveAllRecordBySessionId(0);
743     EXPECT_EQ(ret, true);
744 }
745 
746 /**
747  * @tc.name  : Test HandleSwitchInfoInRecord API
748  * @tc.type  : FUNC
749  * @tc.number: HandleSwitchInfoInRecord_031
750  * @tc.desc  : Test InsertSwitchStreamRecord branch when in List.
751  */
752 HWTEST(AudioUtilsProUnitTest, SwitchStreamUtil_031, TestSize.Level1)
753 {
754     SwitchStreamInfo info = {0, 1041, 0, 0, 0, CAPTURER_PREPARED};
755     SwitchState targetState = SwitchState::SWITCH_STATE_WAITING;
756 
757     auto ret = SwitchStreamUtil::InsertSwitchStreamRecord(info, targetState);
758     EXPECT_EQ(ret, true);
759 }
760 } // namespace AudioStandard
761 } // namespace OHOS