• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 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 "audio_capturer_session_unit_test.h"
17 using namespace testing::ext;
18 
19 namespace OHOS {
20 namespace AudioStandard {
21 
22 /**
23  * @tc.name  : Test AudioCapturerSession.
24  * @tc.number: AudioCapturerSession_001
25  * @tc.desc  : Test AudioCapturerSession::ReloadSourceForEffect()
26  */
27 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_001, TestSize.Level1)
28 {
29     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
30     EXPECT_NE(audioCapturerSession, nullptr);
31 
32     AudioEnhancePropertyArray oldPropertyArray;
33     AudioEnhancePropertyArray newPropertyArray;
34 
35     audioCapturerSession->audioEcManager_.isMicRefFeatureEnable_ = false;
36 
37     audioCapturerSession->ReloadSourceForEffect(oldPropertyArray, newPropertyArray);
38 }
39 
40 /**
41  * @tc.name  : Test AudioCapturerSession.
42  * @tc.number: AudioCapturerSession_002
43  * @tc.desc  : Test udioCapturerSession::ReloadSourceForEffect()
44  */
45 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_002, TestSize.Level1)
46 {
47     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
48     EXPECT_NE(audioCapturerSession, nullptr);
49 
50     AudioEnhancePropertyArray oldPropertyArray;
51     AudioEnhancePropertyArray newPropertyArray;
52 
53     audioCapturerSession->audioEcManager_.isMicRefFeatureEnable_ = true;
54 
55     audioCapturerSession->ReloadSourceForEffect(oldPropertyArray, newPropertyArray);
56 }
57 
58 /**
59  * @tc.name  : Test AudioCapturerSession.
60  * @tc.number: AudioCapturerSession_003
61  * @tc.desc  : Test udioCapturerSession::ReloadSourceForEffect()
62  */
63 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_003, TestSize.Level1)
64 {
65     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
66     EXPECT_NE(audioCapturerSession, nullptr);
67 
68     AudioEnhancePropertyArray oldPropertyArray;
69     AudioEnhancePropertyArray newPropertyArray;
70 
71     audioCapturerSession->audioEcManager_.isMicRefFeatureEnable_ = true;
72     audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_WAKEUP;
73 
74     audioCapturerSession->ReloadSourceForEffect(oldPropertyArray, newPropertyArray);
75 }
76 
77 /**
78  * @tc.name  : Test AudioCapturerSession.
79  * @tc.number: AudioCapturerSession_004
80  * @tc.desc  : Test udioCapturerSession::ReloadSourceForEffect()
81  */
82 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_004, TestSize.Level1)
83 {
84     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
85     EXPECT_NE(audioCapturerSession, nullptr);
86 
87     AudioEnhancePropertyArray oldPropertyArray;
88     AudioEnhancePropertyArray newPropertyArray;
89 
90     audioCapturerSession->audioEcManager_.isMicRefFeatureEnable_ = true;
91     audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_MIC;
92 
93     audioCapturerSession->ReloadSourceForEffect(oldPropertyArray, newPropertyArray);
94 }
95 
96 /**
97  * @tc.name  : Test AudioCapturerSession.
98  * @tc.number: AudioCapturerSession_005
99  * @tc.desc  : Test udioCapturerSession::ReloadSourceForEffect()
100  */
101 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_005, TestSize.Level1)
102 {
103     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
104     EXPECT_NE(audioCapturerSession, nullptr);
105 
106     AudioEnhancePropertyArray oldPropertyArray;
107     AudioEnhancePropertyArray newPropertyArray;
108 
109     audioCapturerSession->audioEcManager_.isMicRefFeatureEnable_ = true;
110     audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_MIC;
111 
112     audioCapturerSession->ReloadSourceForEffect(oldPropertyArray, newPropertyArray);
113 }
114 
115 /**
116  * @tc.name  : Test AudioCapturerSession.
117  * @tc.number: AudioCapturerSession_006
118  * @tc.desc  : Test udioCapturerSession::ReloadSourceForEffect()
119  */
120 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_006, TestSize.Level1)
121 {
122     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
123     EXPECT_NE(audioCapturerSession, nullptr);
124 
125     AudioEnhancePropertyArray oldPropertyArray;
126     AudioEnhancePropertyArray newPropertyArray;
127 
128     audioCapturerSession->audioEcManager_.isMicRefFeatureEnable_ = true;
129     audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_VOICE_COMMUNICATION;
130 
131     audioCapturerSession->ReloadSourceForEffect(oldPropertyArray, newPropertyArray);
132 }
133 
134 /**
135  * @tc.name  : Test AudioCapturerSession.
136  * @tc.number: AudioCapturerSession_007
137  * @tc.desc  : Test udioCapturerSession::ReloadSourceForEffect()
138  */
139 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_007, TestSize.Level1)
140 {
141     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
142     EXPECT_NE(audioCapturerSession, nullptr);
143 
144     AudioEnhancePropertyArray oldPropertyArray;
145     AudioEnhancePropertyArray newPropertyArray;
146 
147     oldPropertyArray.property = {{"record", "PNR"}, {"voip_up", "PNR"}};
148     newPropertyArray.property = {{"record", "ABC"}, {"voip_up", "ABC"}};
149 
150     audioCapturerSession->audioEcManager_.isMicRefFeatureEnable_ = true;
151     audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_VOICE_COMMUNICATION;
152 
153     audioCapturerSession->ReloadSourceForEffect(oldPropertyArray, newPropertyArray);
154 }
155 
156 /**
157  * @tc.name  : Test AudioCapturerSession.
158  * @tc.number: AudioCapturerSession_008
159  * @tc.desc  : Test udioCapturerSession::ReloadSourceForEffect()
160  */
161 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_008, TestSize.Level1)
162 {
163     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
164     EXPECT_NE(audioCapturerSession, nullptr);
165 
166     AudioEnhancePropertyArray oldPropertyArray;
167     AudioEnhancePropertyArray newPropertyArray;
168 
169     oldPropertyArray.property = {{"record", "PNR"}, {"voip_up", "PNR"}};
170     newPropertyArray.property = {{"record", "ABC"}, {"voip_up", "PNR"}};
171 
172     audioCapturerSession->audioEcManager_.isMicRefFeatureEnable_ = true;
173     audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_VOICE_COMMUNICATION;
174 
175     audioCapturerSession->ReloadSourceForEffect(oldPropertyArray, newPropertyArray);
176 }
177 
178 /**
179  * @tc.name  : Test AudioCapturerSession.
180  * @tc.number: AudioCapturerSession_009
181  * @tc.desc  : Test udioCapturerSession::ReloadSourceForEffect()
182  */
183 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_009, TestSize.Level1)
184 {
185     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
186     EXPECT_NE(audioCapturerSession, nullptr);
187 
188     AudioEnhancePropertyArray oldPropertyArray;
189     AudioEnhancePropertyArray newPropertyArray;
190 
191     oldPropertyArray.property = {{"record", "PNR"}, {"voip_up", "PNR"}};
192     newPropertyArray.property = {{"record", "PNR"}, {"voip_up", "PNR"}};
193 
194     audioCapturerSession->audioEcManager_.isMicRefFeatureEnable_ = true;
195     audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_VOICE_COMMUNICATION;
196 
197     audioCapturerSession->ReloadSourceForEffect(oldPropertyArray, newPropertyArray);
198 }
199 
200 /**
201  * @tc.name  : Test AudioCapturerSession.
202  * @tc.number: AudioCapturerSession_010
203  * @tc.desc  : Test udioCapturerSession::ReloadSourceForEffect()
204  */
205 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_010, TestSize.Level1)
206 {
207     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
208     EXPECT_NE(audioCapturerSession, nullptr);
209 
210     AudioEffectPropertyArrayV3 oldPropertyArray;
211     AudioEffectPropertyArrayV3 newPropertyArray;
212 
213     oldPropertyArray.property = {{"record", "PNR"}, {"voip_up", "PNR"}};
214     newPropertyArray.property = {{"record", "PNR"}, {"voip_up", "PNR"}};
215 
216     audioCapturerSession->audioEcManager_.isMicRefFeatureEnable_ = true;
217     audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_VOICE_COMMUNICATION;
218 
219     audioCapturerSession->ReloadSourceForEffect(oldPropertyArray, newPropertyArray);
220 }
221 
222 /**
223  * @tc.name  : Test AudioCapturerSession.
224  * @tc.number: AudioCapturerSession_011
225  * @tc.desc  : Test udioCapturerSession::ReloadSourceForEffect()
226  */
227 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_011, TestSize.Level1)
228 {
229     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
230     EXPECT_NE(audioCapturerSession, nullptr);
231 
232     AudioEffectPropertyArrayV3 oldPropertyArray;
233     AudioEffectPropertyArrayV3 newPropertyArray;
234 
235     oldPropertyArray.property = {{"record", "PNR"}, {"voip_up", "PNR"}};
236     newPropertyArray.property = {{"record", "ABC"}, {"voip_up", "PNR"}};
237 
238     audioCapturerSession->audioEcManager_.isMicRefFeatureEnable_ = true;
239     audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_VOICE_COMMUNICATION;
240 
241     audioCapturerSession->ReloadSourceForEffect(oldPropertyArray, newPropertyArray);
242 }
243 
244 /**
245  * @tc.name  : Test AudioCapturerSession.
246  * @tc.number: AudioCapturerSession_012
247  * @tc.desc  : Test udioCapturerSession::ReloadSourceForEffect()
248  */
249 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_012, TestSize.Level1)
250 {
251     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
252     EXPECT_NE(audioCapturerSession, nullptr);
253 
254     AudioEffectPropertyArrayV3 oldPropertyArray;
255     AudioEffectPropertyArrayV3 newPropertyArray;
256 
257     oldPropertyArray.property = {{"record", "PNR"}, {"voip_up", "PNR"}};
258     newPropertyArray.property = {{"record", "ABC"}, {"voip_up", "ABC"}};
259 
260     audioCapturerSession->audioEcManager_.isMicRefFeatureEnable_ = true;
261     audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_VOICE_COMMUNICATION;
262 
263     audioCapturerSession->ReloadSourceForEffect(oldPropertyArray, newPropertyArray);
264 }
265 
266 /**
267  * @tc.name  : Test AudioCapturerSession.
268  * @tc.number: AudioCapturerSession_013
269  * @tc.desc  : Test udioCapturerSession::ReloadSourceForDeviceChange()
270  */
271 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_013, TestSize.Level1)
272 {
273     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
274     EXPECT_NE(audioCapturerSession, nullptr);
275 
276     AudioDeviceDescriptor inputDevice;
277     AudioDeviceDescriptor outputDevice;
278     std::string caller;
279 
280     audioCapturerSession->audioEcManager_.isEcFeatureEnable_ = true;
281     audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_WAKEUP;
282 
283     audioCapturerSession->ReloadSourceForDeviceChange(inputDevice, outputDevice, caller);
284 }
285 
286 /**
287  * @tc.name  : Test AudioCapturerSession.
288  * @tc.number: AudioCapturerSession_014
289  * @tc.desc  : Test udioCapturerSession::ReloadSourceForDeviceChange()
290  */
291 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_014, TestSize.Level1)
292 {
293     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
294     EXPECT_NE(audioCapturerSession, nullptr);
295 
296     AudioDeviceDescriptor inputDevice;
297     AudioDeviceDescriptor outputDevice;
298     std::string caller;
299 
300     audioCapturerSession->audioEcManager_.isEcFeatureEnable_ = true;
301     audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_MIC;
302 
303     audioCapturerSession->ReloadSourceForDeviceChange(inputDevice, outputDevice, caller);
304 }
305 
306 /**
307  * @tc.name  : Test AudioCapturerSession.
308  * @tc.number: AudioCapturerSession_015
309  * @tc.desc  : Test udioCapturerSession::ReloadSourceForDeviceChange()
310  */
311 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_015, TestSize.Level1)
312 {
313     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
314     EXPECT_NE(audioCapturerSession, nullptr);
315 
316     AudioDeviceDescriptor inputDevice;
317     AudioDeviceDescriptor outputDevice;
318     std::string caller;
319 
320     audioCapturerSession->audioEcManager_.isEcFeatureEnable_ = true;
321     audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_VOICE_COMMUNICATION;
322 
323     audioCapturerSession->ReloadSourceForDeviceChange(inputDevice, outputDevice, caller);
324 }
325 
326 /**
327  * @tc.name  : Test AudioCapturerSession.
328  * @tc.number: AudioCapturerSession_016
329  * @tc.desc  : Test udioCapturerSession::ReloadSourceForDeviceChange()
330  */
331 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_016, TestSize.Level1)
332 {
333     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
334     EXPECT_NE(audioCapturerSession, nullptr);
335 
336     AudioDeviceDescriptor inputDevice;
337     inputDevice.deviceType_ = DEVICE_TYPE_DEFAULT;
338     AudioDeviceDescriptor outputDevice;
339     std::string caller;
340 
341     audioCapturerSession->audioEcManager_.isEcFeatureEnable_ = true;
342     audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_VOICE_COMMUNICATION;
343 
344     audioCapturerSession->ReloadSourceForDeviceChange(inputDevice, outputDevice, caller);
345 }
346 
347 /**
348  * @tc.name  : Test AudioCapturerSession.
349  * @tc.number: AudioCapturerSession_017
350  * @tc.desc  : Test AudioCapturerSession::IsVoipDeviceChanged()
351  */
352 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_017, TestSize.Level1)
353 {
354     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
355     EXPECT_NE(audioCapturerSession, nullptr);
356 
357     AudioDeviceDescriptor inputDevice;
358     AudioDeviceDescriptor outputDevice;
359 
360     auto ret = audioCapturerSession->IsVoipDeviceChanged(inputDevice, outputDevice);
361     EXPECT_EQ(ret, true);
362 }
363 
364 /**
365  * @tc.name  : Test AudioCapturerSession.
366  * @tc.number: AudioCapturerSession_018
367  * @tc.desc  : Test AudioCapturerSession::FillWakeupStreamPropInfo()
368  */
369 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_018, TestSize.Level1)
370 {
371     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
372     EXPECT_NE(audioCapturerSession, nullptr);
373 
374     AudioStreamInfo streamInfo;
375     std::shared_ptr<AdapterPipeInfo> pipeInfo = nullptr;
376     AudioModuleInfo audioModuleInfo;
377 
378     auto ret = audioCapturerSession->FillWakeupStreamPropInfo(streamInfo, pipeInfo, audioModuleInfo);
379     EXPECT_EQ(ret, false);
380 }
381 
382 /**
383  * @tc.name  : Test AudioCapturerSession.
384  * @tc.number: AudioCapturerSession_019
385  * @tc.desc  : Test AudioCapturerSession::FillWakeupStreamPropInfo()
386  */
387 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_019, TestSize.Level1)
388 {
389     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
390     EXPECT_NE(audioCapturerSession, nullptr);
391 
392     AudioStreamInfo streamInfo;
393     std::shared_ptr<AdapterPipeInfo> pipeInfo = std::make_shared<AdapterPipeInfo>();
394     EXPECT_NE(pipeInfo, nullptr);
395     AudioModuleInfo audioModuleInfo;
396 
397     auto ret = audioCapturerSession->FillWakeupStreamPropInfo(streamInfo, pipeInfo, audioModuleInfo);
398     EXPECT_EQ(ret, false);
399 }
400 
401 /**
402  * @tc.name  : Test AudioCapturerSession.
403  * @tc.number: AudioCapturerSession_020
404  * @tc.desc  : Test AudioCapturerSession::GetInstance()
405  */
406 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_020, TestSize.Level1)
407 {
408     shared_ptr<AudioA2dpOffloadManager> audioA2dpOffloadManager = nullptr;
409     {
410         auto& audioCapturerSession = AudioCapturerSession::GetInstance();
411 
412         audioA2dpOffloadManager = make_shared<AudioA2dpOffloadManager>();
413         audioCapturerSession.Init(audioA2dpOffloadManager);
414         audioCapturerSession.SetConfigParserFlag();
415 
416         audioCapturerSession.DeInit();
417     }
418     EXPECT_EQ(audioA2dpOffloadManager.use_count(), 1);
419 }
420 
421 /**
422  * @tc.name  : Test AudioCapturerSession.
423  * @tc.number: AudioCapturerSession_021
424  * @tc.desc  : Test AudioCapturerSession::OnCapturerSessionAdded()
425  */
426 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_021, TestSize.Level1)
427 {
428     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
429     EXPECT_NE(audioCapturerSession, nullptr);
430 
431     SessionInfo sessionInfo;
432     sessionInfo.sourceType = SOURCE_TYPE_MIC;
433     sessionInfo.rate = 44100;
434     sessionInfo.channels = 2;
435     AudioStreamInfo streamInfo;
436     audioCapturerSession->SetConfigParserFlag();
437 
438     auto &audioVolumeManager = AudioVolumeManager::GetInstance();
439     audioVolumeManager.SetDefaultDeviceLoadFlag(true);
440 
441 
442     uint64_t sessionID = 1;
443     audioCapturerSession->OnCapturerSessionRemoved(sessionID);
444 
445     auto ret = audioCapturerSession->OnCapturerSessionAdded(sessionID, sessionInfo, streamInfo);
446     EXPECT_EQ(ret, SUCCESS);
447 }
448 
449 /**
450  * @tc.name  : Test AudioCapturerSession.
451  * @tc.number: AudioCapturerSession_022
452  * @tc.desc  : Test AudioCapturerSession::OnCapturerSessionAdded()
453  */
454 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_022, TestSize.Level1)
455 {
456     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
457     EXPECT_NE(audioCapturerSession, nullptr);
458 
459     SessionInfo sessionInfo;
460     AudioStreamInfo streamInfo;
461 
462     uint64_t sessionID = 1;
463 
464     auto ret = audioCapturerSession->OnCapturerSessionAdded(sessionID, sessionInfo, streamInfo);
465     EXPECT_NE(ret, SUCCESS);
466 }
467 
468 /**
469  * @tc.name  : Test AudioCapturerSession.
470  * @tc.number: AudioCapturerSession_023
471  * @tc.desc  : Test AudioCapturerSession::SetWakeUpAudioCapturerFromAudioServer()
472  */
473 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_023, TestSize.Level1)
474 {
475     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
476     EXPECT_NE(audioCapturerSession, nullptr);
477 
478     AudioStreamInfo streamInfo;
479     AudioProcessConfig config;
480     config.streamInfo = streamInfo;
481 
482     auto ret = audioCapturerSession->SetWakeUpAudioCapturerFromAudioServer(config);
483     EXPECT_NE(ret, SUCCESS);
484 }
485 
486 /**
487  * @tc.name  : Test AudioCapturerSession.
488  * @tc.number: AudioCapturerSession_024
489  * @tc.desc  : Test AudioCapturerSession::CloseWakeUpAudioCapturer()
490  */
491 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_024, TestSize.Level1)
492 {
493     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
494     EXPECT_NE(audioCapturerSession, nullptr);
495 
496     auto ret = audioCapturerSession->CloseWakeUpAudioCapturer();
497     EXPECT_NE(ret, SUCCESS);
498 }
499 
500 /**
501  * @tc.name  : Test AudioCapturerSession.
502  * @tc.number: AudioCapturerSession_025
503  * @tc.desc  : Test ReloadSourceForDeviceChange() for valid source and device
504  */
505 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_025, TestSize.Level1)
506 {
507     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
508     EXPECT_NE(audioCapturerSession, nullptr);
509 
510     AudioDeviceDescriptor inputDevice;
511     inputDevice.deviceType_ = DEVICE_TYPE_MIC;
512     AudioDeviceDescriptor outputDevice;
513     std::string caller = "testCase";
514 
515     const uint64_t testSessionId = 99;
516     audioCapturerSession->audioEcManager_.isEcFeatureEnable_ = true;
517     audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_MIC;
518     audioCapturerSession->audioEcManager_.sessionIdUsedToOpenSource_ = testSessionId;
519 
520     audioCapturerSession->ReloadSourceForDeviceChange(inputDevice, outputDevice, caller);
521     EXPECT_EQ(audioCapturerSession->audioEcManager_.GetOpenedNormalSourceSessionId(), testSessionId);
522 }
523 
524 /**
525  * @tc.name  : Test AudioCapturerSession.
526  * @tc.number: AudioCapturerSession_026
527  * @tc.desc  : Test ReloadSourceForDeviceChange() for valid source and device
528  */
529 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_026, TestSize.Level1)
530 {
531     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
532     EXPECT_NE(audioCapturerSession, nullptr);
533 
534     uint32_t sessionId = 0;
535     SessionOperation operation = SESSION_OPERATION_START;
536     audioCapturerSession->ReloadCaptureSession(sessionId, operation);
537     EXPECT_EQ(audioCapturerSession->ReloadCaptureSession(sessionId, operation), ERROR);
538 }
539 
540 /**
541  * @tc.name  : Test AudioCapturerSession.
542  * @tc.number: AudioCapturerSession_027
543  * @tc.desc  : Test ReloadSourceForDeviceChange() for inputDeviceForReload default
544  */
545 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_027, TestSize.Level1)
546 {
547     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
548     EXPECT_NE(audioCapturerSession, nullptr);
549 
550     AudioDeviceDescriptor inputDevice;
551     inputDevice.deviceType_ = DEVICE_TYPE_MIC;
552     AudioDeviceDescriptor outputDevice;
553     std::string caller = "testCase";
554 
555     const uint64_t testSessionId = 99;
556     audioCapturerSession->audioEcManager_.isEcFeatureEnable_ = true;
557     audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_MIC;
558     audioCapturerSession->audioEcManager_.sessionIdUsedToOpenSource_ = testSessionId;
559     audioCapturerSession->inputDeviceForReload_.deviceType_ = DEVICE_TYPE_DEFAULT;
560 
561     audioCapturerSession->ReloadSourceForDeviceChange(inputDevice, outputDevice, caller);
562     EXPECT_EQ(audioCapturerSession->inputDeviceForReload_.deviceType_, DEVICE_TYPE_MIC);
563 }
564 
565 /**
566  * @tc.name  : Test AudioCapturerSession.
567  * @tc.number: AudioCapturerSession_028
568  * @tc.desc  : Test ReloadSourceForDeviceChange() for inputDeviceForReload_ valid
569  */
570 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_028, TestSize.Level1)
571 {
572     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
573     EXPECT_NE(audioCapturerSession, nullptr);
574 
575     AudioDeviceDescriptor inputDevice;
576     inputDevice.deviceType_ = DEVICE_TYPE_MIC;
577     AudioDeviceDescriptor outputDevice;
578     std::string caller = "testCase";
579 
580     const uint64_t testSessionId = 99;
581     audioCapturerSession->audioEcManager_.isEcFeatureEnable_ = true;
582     audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_MIC;
583     audioCapturerSession->audioEcManager_.sessionIdUsedToOpenSource_ = testSessionId;
584     audioCapturerSession->inputDeviceForReload_.deviceType_ = DEVICE_TYPE_MIC;
585 
586     audioCapturerSession->ReloadSourceForDeviceChange(inputDevice, outputDevice, caller);
587     EXPECT_EQ(audioCapturerSession->inputDeviceForReload_.deviceType_, DEVICE_TYPE_MIC);
588 }
589 
590 /**
591  * @tc.name  : Test AudioCapturerSession.
592  * @tc.number: AudioCapturerSession_032
593  * @tc.desc  : Test ReloadCaptureSessionSoftLink
594  */
595 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_032, TestSize.Level1)
596 {
597     auto audioCapturerSession = std::make_shared<AudioCapturerSession>();
598     EXPECT_NE(audioCapturerSession, nullptr);
599     auto pipeManager = AudioPipeManager::GetPipeManager();
600     EXPECT_NE(pipeManager, nullptr);
601 
602     auto pipeInfoOne = std::make_shared<AudioPipeInfo>();
603     pipeInfoOne->name_ = "test_output_one";
604     pipeInfoOne->adapterName_ = "test_one";
605     pipeManager->AddAudioPipeInfo(pipeInfoOne);
606 
607     auto pipeInfoTwo = std::make_shared<AudioPipeInfo>();
608     pipeInfoTwo->name_ = "test_output_two";
609     pipeInfoTwo->adapterName_ = "test_two";
610     pipeInfoTwo->pipeRole_ = AudioPipeRole::PIPE_ROLE_OUTPUT;
611     std::shared_ptr<AudioStreamDescriptor> streamDescriptor = std::make_shared<AudioStreamDescriptor>();
612     streamDescriptor->sessionId_ = 0;
613     pipeInfoTwo->streamDescriptors_.push_back(streamDescriptor);
614     pipeManager->AddAudioPipeInfo(pipeInfoTwo);
615 
616     auto pipeInfoThree = std::make_shared<AudioPipeInfo>();
617     pipeInfoThree->name_ = "test_input_three";
618     pipeInfoThree->adapterName_ = "primary";
619     pipeInfoThree->pipeRole_ = AudioPipeRole::PIPE_ROLE_INPUT;
620     pipeInfoThree->routeFlag_ = AUDIO_INPUT_FLAG_NORMAL;
621     std::shared_ptr<AudioStreamDescriptor> streamDescriptorOne = std::make_shared<AudioStreamDescriptor>();
622     streamDescriptorOne->sessionId_ = 1;
623     pipeInfoThree->streamDescriptors_.push_back(streamDescriptorOne);
624     std::shared_ptr<AudioStreamDescriptor> streamDescriptorTwo = std::make_shared<AudioStreamDescriptor>();
625     streamDescriptorTwo->sessionId_ = 2;
626     pipeInfoThree->streamDescriptors_.push_back(streamDescriptorTwo);
627     streamDescriptorTwo->streamStatus_ = AudioStreamStatus::STREAM_STATUS_STARTED;
628     std::shared_ptr<AudioStreamDescriptor> streamDescriptorThree = std::make_shared<AudioStreamDescriptor>();
629     streamDescriptorThree->sessionId_ = 3;
630     pipeInfoThree->streamDescriptors_.push_back(streamDescriptorThree);
631     pipeInfoThree->softLinkFlag_ = true;
632     pipeManager->AddAudioPipeInfo(pipeInfoThree);
633 
634     SessionInfo sessionInfoTwo;
635     sessionInfoTwo.sourceType = SourceType::SOURCE_TYPE_VOICE_RECOGNITION;
636     SessionInfo sessionInfoThree;
637     sessionInfoThree.sourceType = SourceType::SOURCE_TYPE_VOICE_CALL;
638     audioCapturerSession->sessionWithNormalSourceType_[2] = sessionInfoTwo;
639     audioCapturerSession->sessionWithNormalSourceType_[3] = sessionInfoThree;
640 
641     auto ret = audioCapturerSession->ReloadCaptureSessionSoftLink();
642     EXPECT_EQ(ret, SUCCESS);
643 
644     auto ioRet = AudioIOHandleMap::GetInstance().ClosePortAndEraseIOHandle("test");
645     EXPECT_EQ(ioRet, SUCCESS);
646 
647     auto pipeRet = pipeManager->GetUnusedRecordPipe();
648     EXPECT_EQ(pipeRet.size(), 0);
649 }
650 } // namespace AudioStandard
651 } // namespace OHOS
652