• 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 <gtest/gtest.h>
17 #include "iservice_registry.h"
18 #include "system_ability_definition.h"
19 
20 #include "audio_service.h"
21 #include "audio_service_log.h"
22 #include "audio_errors.h"
23 #include "audio_system_manager.h"
24 
25 #include "audio_manager_proxy.h"
26 #include "audio_manager_listener_stub.h"
27 #include "audio_process_proxy.h"
28 #include "audio_process_in_client.h"
29 #include "fast_audio_stream.h"
30 
31 using namespace testing::ext;
32 
33 namespace OHOS {
34 namespace AudioStandard {
35 std::unique_ptr<AudioManagerProxy> audioManagerProxy;
36 std::shared_ptr<AudioProcessInClient> processClient_;
37 std::shared_ptr<FastAudioStream> fastAudioStream_;
38 const int32_t TEST_RET_NUM = 0;
39 const int32_t RENDERER_FLAGS = 0;
40 #ifdef HAS_FEATURE_INNERCAPTURER
41 const int32_t MEDIA_SERVICE_UID = 1013;
42 #endif
43 constexpr int32_t ERROR_62980101 = -62980101;
44 
45 
46 class AudioServiceUnitTest : public testing::Test {
47 public:
48     static void SetUpTestCase(void);
49     static void TearDownTestCase(void);
50     void SetUp();
51     void TearDown();
52 };
53 
54 class AudioParameterCallbackTest : public AudioParameterCallback {
OnAudioParameterChange(const std::string networkId,const AudioParamKey key,const std::string & condition,const std::string & value)55     virtual void OnAudioParameterChange(const std::string networkId, const AudioParamKey key,
56         const std::string& condition, const std::string& value) {}
57 };
58 
SetUpTestCase(void)59 void AudioServiceUnitTest::SetUpTestCase(void)
60 {
61     // input testsuit setup step,setup invoked before all testcases
62 }
63 
TearDownTestCase(void)64 void AudioServiceUnitTest::TearDownTestCase(void)
65 {
66     // input testsuit teardown step,teardown invoked after all testcases
67 }
68 
SetUp(void)69 void AudioServiceUnitTest::SetUp(void)
70 {
71     // input testcase setup step,setup invoked before each testcases
72 }
73 
TearDown(void)74 void AudioServiceUnitTest::TearDown(void)
75 {
76     // input testcase teardown step,teardown invoked after each testcases
77 }
78 
79 /**
80  * @tc.name  : Test AudioProcessProxy API
81  * @tc.type  : FUNC
82  * @tc.number: AudioProcessProxy_001
83  * @tc.desc  : Test AudioProcessProxy interface.
84  */
85 HWTEST(AudioServiceUnitTest, AudioProcessProxy_001, TestSize.Level1)
86 {
87     auto samgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
88     EXPECT_NE(nullptr, samgr);
89     sptr<IRemoteObject> object = samgr->GetSystemAbility(AUDIO_DISTRIBUTED_SERVICE_ID);
90     EXPECT_NE(nullptr, object);
91     std::unique_ptr<AudioProcessProxy> audioProcessProxy = std::make_unique<AudioProcessProxy>(object);
92 
93     int32_t ret = -1;
94     std::shared_ptr<OHAudioBuffer> buffer;
95     uint32_t spanSizeInFrame = 1000;
96     uint32_t totalSizeInFrame = spanSizeInFrame - 1;
97     uint32_t byteSizePerFrame = 1000;
98     buffer = OHAudioBuffer::CreateFromLocal(totalSizeInFrame, spanSizeInFrame, byteSizePerFrame);
99 
100     ret=audioProcessProxy->ResolveBuffer(buffer);
101     EXPECT_LT(ret, TEST_RET_NUM);
102 
103     ret = audioProcessProxy->Start();
104     EXPECT_LT(ret, TEST_RET_NUM);
105 
106     bool isFlush = true;
107     ret = audioProcessProxy->Pause(isFlush);
108     EXPECT_LT(ret, TEST_RET_NUM);
109 
110     ret = audioProcessProxy->Resume();
111     EXPECT_LT(ret, TEST_RET_NUM);
112 
113     ret = audioProcessProxy->Stop();
114     EXPECT_LT(ret, TEST_RET_NUM);
115 
116     ret = audioProcessProxy->RequestHandleInfo();
117     EXPECT_EQ(ret, SUCCESS);
118 
119     ret = audioProcessProxy->Release();
120     EXPECT_LT(ret, TEST_RET_NUM);
121 }
122 
123 /**
124  * @tc.name  : Test AudioManagerProxy API
125  * @tc.type  : FUNC
126  * @tc.number: AudioManagerProxy_001
127  * @tc.desc  : Test AudioManagerProxy interface.
128  */
129 HWTEST(AudioServiceUnitTest, AudioManagerProxy_001, TestSize.Level1)
130 {
131     int32_t ret = -1;
132 
133     auto samgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
134     EXPECT_NE(nullptr, samgr);
135     sptr<IRemoteObject> object = samgr->GetSystemAbility(AUDIO_DISTRIBUTED_SERVICE_ID);
136     EXPECT_NE(nullptr, object);
137 
138     audioManagerProxy = std::make_unique<AudioManagerProxy>(object);
139 
140     bool isMute = true;
141     ret = audioManagerProxy->SetMicrophoneMute(isMute);
142     if (ret == ERR_PERMISSION_DENIED) {
143         return ;
144     }
145     EXPECT_EQ(ret, SUCCESS);
146 
147     ret = audioManagerProxy->RegiestPolicyProvider(object);
148     EXPECT_EQ(SUCCESS, ret);
149 
150     EXPECT_TRUE(ret == ERROR_62980101 || ret == SUCCESS);
151 
152     bool result = audioManagerProxy->CreatePlaybackCapturerManager();
153     EXPECT_EQ(result, true);
154 
155     int32_t deviceType = 1;
156     std::string sinkName = "test";
157     audioManagerProxy->SetOutputDeviceSink(deviceType, sinkName);
158 }
159 
160 /**
161  * @tc.name  : Test AudioManagerProxy API
162  * @tc.type  : FUNC
163  * @tc.number: AudioManagerProxy_002
164  * @tc.desc  : Test AudioManagerProxy interface.
165  */
166 HWTEST(AudioServiceUnitTest, AudioManagerProxy_002, TestSize.Level1)
167 {
168     int32_t ret = -1;
169 
170     float volume = 0.1;
171     ret = audioManagerProxy->SetVoiceVolume(volume);
172 
173     const std::string networkId = "LocalDevice";
174     const AudioParamKey key = AudioParamKey::VOLUME;
175     AudioVolumeType volumeType =AudioVolumeType::STREAM_MEDIA;
176     int32_t groupId = 0;
177     std::string condition = "EVENT_TYPE=1;VOLUME_GROUP_ID=" + std::to_string(groupId) + ";AUDIO_VOLUME_TYPE="
178         + std::to_string(volumeType) + ";";
179     std::string value = std::to_string(volume);
180     audioManagerProxy->SetAudioParameter(networkId, key, condition, value);
181     const std::string retStr = audioManagerProxy->GetAudioParameter(networkId, key, condition);
182     EXPECT_NE(retStr, value);
183 
184     bool connected = true;
185     audioManagerProxy->NotifyDeviceInfo(networkId, connected);
186     ret = audioManagerProxy->CheckRemoteDeviceState(networkId, DeviceRole::OUTPUT_DEVICE, true);
187     EXPECT_LT(ret, TEST_RET_NUM);
188 }
189 
190 /**
191  * @tc.name  : Test AudioManagerProxy API
192  * @tc.type  : FUNC
193  * @tc.number: AudioManagerProxy_004
194  * @tc.desc  : Test AudioManagerProxy interface.
195  */
196 HWTEST(AudioServiceUnitTest, AudioManagerProxy_004, TestSize.Level1)
197 {
198     std::vector<Library> libraries;
199     Library library = {};
200     library.name = "testname";
201     library.path ="test.so";
202     libraries.push_back(library);
203 
204     std::vector<Effect> effects;
205     Effect effect = {};
206     effect.name = "test";
207     effect.libraryName = "test";
208     effects.push_back(effect);
209 
210     std::vector<Effect> successEffects;
211     bool ret = audioManagerProxy->LoadAudioEffectLibraries(libraries, effects, successEffects);
212     EXPECT_EQ(ret, false);
213 }
214 
215 /**
216  * @tc.name  : Test AudioManagerListenerStub API
217  * @tc.type  : FUNC
218  * @tc.number: AudioManagerListenerStub_001
219  * @tc.desc  : Test AudioManagerListenerStub interface.
220  */
221 HWTEST(AudioServiceUnitTest, AudioManagerListenerStub_001, TestSize.Level1)
222 {
223     std::unique_ptr<AudioManagerListenerStub> audioManagerListenerStub = std::make_unique<AudioManagerListenerStub>();
224 
225     const std::weak_ptr<AudioParameterCallback> callback = std::make_shared<AudioParameterCallbackTest>();
226     audioManagerListenerStub->SetParameterCallback(callback);
227     float volume = 0.1;
228     const std::string networkId = "LocalDevice";
229     const AudioParamKey key = AudioParamKey::VOLUME;
230     AudioVolumeType volumeType =AudioVolumeType::STREAM_MEDIA;
231     int32_t groupId = 0;
232     std::string condition = "EVENT_TYPE=1;VOLUME_GROUP_ID=" + std::to_string(groupId) + ";AUDIO_VOLUME_TYPE="
233         + std::to_string(volumeType) + ";";
234     std::string value = std::to_string(volume);
235     audioManagerListenerStub->OnAudioParameterChange(networkId, key, condition, value);
236     EXPECT_NE(value, "");
237 }
238 
239 
240 /**
241  * @tc.name  : Test AudioProcessInClientInner API
242  * @tc.type  : FUNC
243  * @tc.number: AudioProcessInClientInner_001
244  * @tc.desc  : Test AudioProcessInClientInner interface using unsupported parameters.
245  */
246 HWTEST(AudioServiceUnitTest, AudioProcessInClientInner_001, TestSize.Level1)
247 {
248     AudioProcessConfig config;
249     config.appInfo.appPid = getpid();
250     config.appInfo.appUid = getuid();
251 
252     config.audioMode = AUDIO_MODE_PLAYBACK;
253 
254     config.rendererInfo.contentType = CONTENT_TYPE_MUSIC;
255     config.rendererInfo.streamUsage = STREAM_USAGE_MEDIA;
256     config.rendererInfo.rendererFlags = RENDERER_FLAGS;
257 
258     config.streamInfo.channels = STEREO;
259     config.streamInfo.encoding = ENCODING_PCM;
260     config.streamInfo.format = SAMPLE_S16LE;
261     config.streamInfo.samplingRate = SAMPLE_RATE_64000;
262 
263     fastAudioStream_ = std::make_shared<FastAudioStream>(config.streamType,
264         AUDIO_MODE_PLAYBACK, config.appInfo.appUid);
265     processClient_ = AudioProcessInClient::Create(config, fastAudioStream_);
266     EXPECT_EQ(processClient_, nullptr);
267 }
268 
269 /**
270  * @tc.name  : Test AudioDeviceDescriptor API
271  * @tc.type  : FUNC
272  * @tc.number: AudioDeviceDescriptor_001
273  * @tc.desc  : Test AudioDeviceDescriptor interface.
274  */
275 HWTEST(AudioServiceUnitTest, AudioDeviceDescriptor_001, TestSize.Level1)
276 {
277     DeviceType type = DeviceType::DEVICE_TYPE_SPEAKER;
278     DeviceRole role = DeviceRole::OUTPUT_DEVICE;
279     int32_t interruptGroupId = 1;
280     int32_t volumeGroupId = 1;
281     std::string networkId = "LocalDevice";
282     std::shared_ptr<AudioDeviceDescriptor> audioDeviceDescriptor =
283         std::make_shared<AudioDeviceDescriptor>(type, role, interruptGroupId, volumeGroupId, networkId);
284     EXPECT_NE(audioDeviceDescriptor, nullptr);
285 
286     AudioDeviceDescriptor deviceDescriptor;
287     deviceDescriptor.deviceType_ = type;
288     deviceDescriptor.deviceRole_ = role;
289     audioDeviceDescriptor = std::make_shared<AudioDeviceDescriptor>(deviceDescriptor);
290     EXPECT_NE(audioDeviceDescriptor, nullptr);
291 
292     std::string deviceName = "";
293     std::string macAddress = "";
294     audioDeviceDescriptor->SetDeviceInfo(deviceName, macAddress);
295 
296     DeviceStreamInfo audioStreamInfo = {
297         SAMPLE_RATE_48000,
298         ENCODING_PCM,
299         SAMPLE_S16LE,
300         STEREO
301     };
302     int32_t channelMask = 1;
303     audioDeviceDescriptor->SetDeviceCapability(audioStreamInfo, channelMask);
304 
305     DeviceStreamInfo streamInfo = audioDeviceDescriptor->audioStreamInfo_;
306     EXPECT_EQ(streamInfo.channels, audioStreamInfo.channels);
307     EXPECT_EQ(streamInfo.encoding, audioStreamInfo.encoding);
308     EXPECT_EQ(streamInfo.format, audioStreamInfo.format);
309     EXPECT_EQ(streamInfo.samplingRate, audioStreamInfo.samplingRate);
310 }
311 
312 /**
313  * @tc.name  : Test UpdateMuteControlSet API
314  * @tc.type  : FUNC
315  * @tc.number: AudioServiceUpdateMuteControlSet_001
316  * @tc.desc  : Test UpdateMuteControlSet interface.
317  */
318 HWTEST(AudioServiceUnitTest, AudioServiceUpdateMuteControlSet_001, TestSize.Level1)
319 {
320     AudioService::GetInstance()->UpdateMuteControlSet(1, true);
321     AudioService::GetInstance()->UpdateMuteControlSet(MAX_STREAMID + 1, true);
322     AudioService::GetInstance()->UpdateMuteControlSet(MAX_STREAMID - 1, false);
323     AudioService::GetInstance()->UpdateMuteControlSet(MAX_STREAMID - 1, true);
324     AudioService::GetInstance()->UpdateMuteControlSet(MAX_STREAMID - 1, false);
325     AudioService::GetInstance()->UpdateMuteControlSet(MAX_STREAMID - 1, true);
326     AudioService::GetInstance()->RemoveIdFromMuteControlSet(MAX_STREAMID - 1);
327 }
328 
329 #ifdef HAS_FEATURE_INNERCAPTURER
330 /**
331  * @tc.name  : Test ShouldBeInnerCap API
332  * @tc.type  : FUNC
333  * @tc.number: AudioServiceShouldBeInnerCap_001
334  * @tc.desc  : Test ShouldBeInnerCap interface.
335  */
336 HWTEST(AudioServiceUnitTest, AudioServiceShouldBeInnerCap_001, TestSize.Level1)
337 {
338     AudioProcessConfig config = {};
339     config.privacyType = AudioPrivacyType::PRIVACY_TYPE_PUBLIC;
340     bool ret = AudioService::GetInstance()->ShouldBeInnerCap(config, 0);
341     EXPECT_FALSE(ret);
342     config.privacyType = AudioPrivacyType::PRIVACY_TYPE_PRIVATE;
343     ret = AudioService::GetInstance()->ShouldBeInnerCap(config, 0);
344     EXPECT_FALSE(ret);
345 }
346 
347 /**
348  * @tc.name  : Test ShouldBeDualTone API
349  * @tc.type  : FUNC
350  * @tc.number: AudioServiceShouldBeDualTone_001
351  * @tc.desc  : Test ShouldBeDualTone interface.
352  */
353 HWTEST(AudioServiceUnitTest, AudioServiceShouldBeDualTone_001, TestSize.Level1)
354 {
355     AudioProcessConfig config = {};
356     config.audioMode = AUDIO_MODE_RECORD;
357     config.rendererInfo.streamUsage = STREAM_USAGE_ALARM;
358     bool ret = AudioService::GetInstance()->ShouldBeDualTone(config);
359     EXPECT_FALSE(ret);
360     config.audioMode = AUDIO_MODE_PLAYBACK;
361     ret = AudioService::GetInstance()->ShouldBeDualTone(config);
362     EXPECT_FALSE(ret);
363 }
364 
365 /**
366  * @tc.name  : Test OnInitInnerCapList API
367  * @tc.type  : FUNC
368  * @tc.number: AudioServiceOnInitInnerCapList_001
369  * @tc.desc  : Test OnInitInnerCapList interface.
370  */
371 HWTEST(AudioServiceUnitTest, AudioServiceOnInitInnerCapList_001, TestSize.Level1)
372 {
373     int32_t floatRet = 0;
374 
375     AudioService::GetInstance()->OnInitInnerCapList(1);
376     AudioService::GetInstance()->ResetAudioEndpoint();
377     floatRet = AudioService::GetInstance()->GetMaxAmplitude(true);
378     EXPECT_EQ(0, floatRet);
379 
380     AudioProcessConfig config = {};
381     config.privacyType = AudioPrivacyType::PRIVACY_TYPE_PUBLIC;
382     AudioService::GetInstance()->GetAudioProcess(config);
383     AudioService::GetInstance()->OnInitInnerCapList(1);
384     AudioService::GetInstance()->workingConfig_.filterOptions.usages.emplace_back(STREAM_USAGE_MEDIA);
385     AudioService::GetInstance()->OnInitInnerCapList(1);
386 
387     AudioService::GetInstance()->workingConfig_.filterOptions.pids.emplace_back(1);
388     AudioService::GetInstance()->OnInitInnerCapList(1);
389     AudioService::GetInstance()->OnUpdateInnerCapList(1);
390     EXPECT_EQ(0, floatRet);
391     config = {};
392     config.privacyType = AudioPrivacyType::PRIVACY_TYPE_PRIVATE;
393     config.audioMode = AUDIO_MODE_RECORD;
394     AudioService::GetInstance()->GetAudioProcess(config);
395 
396     AudioService::GetInstance()->OnInitInnerCapList(1);
397     floatRet = AudioService::GetInstance()->GetMaxAmplitude(true);
398     EXPECT_EQ(0, floatRet);
399     floatRet = AudioService::GetInstance()->GetMaxAmplitude(false);
400     EXPECT_EQ(0, floatRet);
401     int32_t ret = AudioService::GetInstance()->EnableDualToneList(MAX_STREAMID - 1);
402     EXPECT_EQ(SUCCESS, ret);
403     ret = AudioService::GetInstance()->DisableDualToneList(MAX_STREAMID - 1);
404     EXPECT_EQ(SUCCESS, ret);
405     AudioService::GetInstance()->ResetAudioEndpoint();
406 }
407 
408 /**
409  * @tc.name  : Test IsEndpointTypeVoip API
410  * @tc.type  : FUNC
411  * @tc.number: AudioServiceIsEndpointTypeVoip_001
412  * @tc.desc  : Test IsEndpointTypeVoip interface.
413  */
414 HWTEST(AudioServiceUnitTest, AudioServiceIsEndpointTypeVoip_001, TestSize.Level1)
415 {
416     AudioProcessConfig config = {};
417     AudioDeviceDescriptor info(AudioDeviceDescriptor::DEVICE_INFO);
418     config.rendererInfo.streamUsage = STREAM_USAGE_INVALID;
419     config.capturerInfo.sourceType = SOURCE_TYPE_VOICE_COMMUNICATION;
420     config.rendererInfo.originalFlag = AUDIO_FLAG_VOIP_FAST;
421     bool ret = AudioService::GetInstance()->IsEndpointTypeVoip(config, info);
422     EXPECT_EQ(true, ret);
423 
424     config.capturerInfo.sourceType = SOURCE_TYPE_INVALID;
425     ret = AudioService::GetInstance()->IsEndpointTypeVoip(config, info);
426     EXPECT_FALSE(ret);
427 
428     config.rendererInfo.streamUsage = STREAM_USAGE_VIDEO_COMMUNICATION;
429     ret = AudioService::GetInstance()->IsEndpointTypeVoip(config, info);
430     EXPECT_TRUE(ret);
431 
432     config.rendererInfo.streamUsage = STREAM_USAGE_VOICE_COMMUNICATION;
433     ret = AudioService::GetInstance()->IsEndpointTypeVoip(config, info);
434     EXPECT_TRUE(ret);
435 }
436 
437 /**
438  * @tc.name  : Test GetCapturerBySessionID API
439  * @tc.type  : FUNC
440  * @tc.number: AudioServiceGetCapturerBySessionID_001
441  * @tc.desc  : Test GetCapturerBySessionID interface.
442  */
443 HWTEST(AudioServiceUnitTest, AudioServiceGetCapturerBySessionID_001, TestSize.Level1)
444 {
445     AudioProcessConfig config = {};
446     config.audioMode = AUDIO_MODE_RECORD;
447     config.streamInfo.channels = STEREO;
448     config.streamInfo.channelLayout = CH_LAYOUT_STEREO;
449     config.streamType = STREAM_MUSIC;
450 
451     int32_t result;
452     AudioService::GetInstance()->RemoveCapturer(-1);
453     sptr<OHOS::AudioStandard::IpcStreamInServer> server = AudioService::GetInstance()->GetIpcStream(config, result);
454     EXPECT_EQ(server, nullptr);
455 
456     auto ret = AudioService::GetInstance()->GetCapturerBySessionID(0);
457     EXPECT_EQ(nullptr, ret);
458 }
459 
460 /**
461  * @tc.name  : Test ShouldBeDualTone API
462  * @tc.type  : FUNC
463  * @tc.number: AudioServiceShouldBeDualTone_002
464  * @tc.desc  : Test ShouldBeDualTone interface.
465  */
466 HWTEST(AudioServiceUnitTest, AudioServiceShouldBeDualTone_002, TestSize.Level1)
467 {
468     AudioProcessConfig config = {};
469     config.audioMode = AUDIO_MODE_RECORD;
470     bool ret;
471     ret = AudioService::GetInstance()->ShouldBeDualTone(config);
472     EXPECT_EQ(ret, false);
473     config.audioMode = AUDIO_MODE_PLAYBACK;
474     config.rendererInfo.streamUsage = STREAM_USAGE_RINGTONE;
475     ret = AudioService::GetInstance()->ShouldBeDualTone(config);
476     EXPECT_FALSE(ret);
477 }
478 
479 /**
480  * @tc.name  : Test FilterAllFastProcess API
481  * @tc.type  : FUNC
482  * @tc.number: AudioServiceFilterAllFastProcess_001
483  * @tc.desc  : Test FilterAllFastProcess interface.
484  */
485 HWTEST(AudioServiceUnitTest, AudioServiceFilterAllFastProcess_001, TestSize.Level1)
486 {
487     int32_t floatRet = 0;
488     AudioService::GetInstance()->FilterAllFastProcess();
489     AudioService::GetInstance()->OnInitInnerCapList(1);
490     AudioService::GetInstance()->ResetAudioEndpoint();
491     floatRet = AudioService::GetInstance()->GetMaxAmplitude(true);
492     EXPECT_EQ(0, floatRet);
493 
494     AudioProcessConfig config = {};
495     config.privacyType = AudioPrivacyType::PRIVACY_TYPE_PUBLIC;
496     AudioService::GetInstance()->GetAudioProcess(config);
497     AudioService::GetInstance()->OnInitInnerCapList(1);
498     AudioService::GetInstance()->workingConfig_.filterOptions.usages.emplace_back(STREAM_USAGE_MEDIA);
499     AudioService::GetInstance()->OnInitInnerCapList(1);
500 
501     AudioService::GetInstance()->workingConfig_.filterOptions.pids.emplace_back(1);
502     AudioService::GetInstance()->OnInitInnerCapList(1);
503     AudioService::GetInstance()->OnUpdateInnerCapList(1);
504     EXPECT_EQ(0, floatRet);
505     AudioService::GetInstance()->FilterAllFastProcess();
506 }
507 
508 /**
509  * @tc.name  : Test GetDeviceInfoForProcess API
510  * @tc.type  : FUNC
511  * @tc.number: AudioServiceGetDeviceInfoForProcess_001
512  * @tc.desc  : Test GetDeviceInfoForProcess interface.
513  */
514 HWTEST(AudioServiceUnitTest, AudioServiceGetDeviceInfoForProcess_001, TestSize.Level1)
515 {
516     AudioProcessConfig config = {};
517     config.audioMode = AUDIO_MODE_PLAYBACK;
518     AudioDeviceDescriptor deviceinfo(AudioDeviceDescriptor::DEVICE_INFO);
519     deviceinfo = AudioService::GetInstance()->GetDeviceInfoForProcess(config);
520     EXPECT_NE(deviceinfo.deviceRole_, INPUT_DEVICE);
521     config.audioMode = AUDIO_MODE_RECORD;
522     deviceinfo = AudioService::GetInstance()->GetDeviceInfoForProcess(config);
523     EXPECT_NE(deviceinfo.deviceRole_, OUTPUT_DEVICE);
524 }
525 
526 /**
527  * @tc.name  : Test Dump API
528  * @tc.type  : FUNC
529  * @tc.number: AudioServiceDump_001
530  * @tc.desc  : Test Dump interface.
531  */
532 HWTEST(AudioServiceUnitTest, AudioServiceDump_001, TestSize.Level1)
533 {
534     int32_t floatRet = 0;
535     AudioService::GetInstance()->FilterAllFastProcess();
536     AudioService::GetInstance()->OnInitInnerCapList(1);
537     AudioService::GetInstance()->ResetAudioEndpoint();
538     floatRet = AudioService::GetInstance()->GetMaxAmplitude(true);
539     EXPECT_EQ(0, floatRet);
540 
541     AudioProcessConfig config = {};
542     config.privacyType = AudioPrivacyType::PRIVACY_TYPE_PUBLIC;
543     AudioService::GetInstance()->GetAudioProcess(config);
544     AudioService::GetInstance()->OnInitInnerCapList(1);
545     AudioService::GetInstance()->workingConfig_.filterOptions.usages.emplace_back(STREAM_USAGE_MEDIA);
546     AudioService::GetInstance()->OnInitInnerCapList(1);
547 
548     AudioService::GetInstance()->workingConfig_.filterOptions.pids.emplace_back(1);
549     AudioService::GetInstance()->OnInitInnerCapList(1);
550     AudioService::GetInstance()->OnUpdateInnerCapList(1);
551     EXPECT_EQ(0, floatRet);
552     std::string dumpString = "This is Dump string";
553     AudioService::GetInstance()->Dump(dumpString);
554 }
555 
556 /**
557  * @tc.name  : Test SetNonInterruptMute API
558  * @tc.type  : FUNC
559  * @tc.number: AudioServiceSetNonInterruptMute_001
560  * @tc.desc  : Test SetNonInterruptMute interface.
561  */
562 HWTEST(AudioServiceUnitTest, AudioServiceSetNonInterruptMute_001, TestSize.Level1)
563 {
564     int32_t floatRet = 0;
565     bool muteFlag = true;
566     uint32_t sessionId = 0;
567 
568     AudioService::GetInstance()->FilterAllFastProcess();
569     AudioService::GetInstance()->OnInitInnerCapList(1);
570     AudioService::GetInstance()->ResetAudioEndpoint();
571     AudioService::GetInstance()->SetNonInterruptMute(sessionId, muteFlag);
572     floatRet = AudioService::GetInstance()->GetMaxAmplitude(true);
573     EXPECT_EQ(0, floatRet);
574 
575     AudioProcessConfig config = {};
576     config.privacyType = AudioPrivacyType::PRIVACY_TYPE_PUBLIC;
577     AudioService::GetInstance()->GetAudioProcess(config);
578     AudioService::GetInstance()->OnInitInnerCapList(1);
579     AudioService::GetInstance()->workingConfig_.filterOptions.usages.emplace_back(STREAM_USAGE_MEDIA);
580     AudioService::GetInstance()->OnInitInnerCapList(1);
581 
582     AudioService::GetInstance()->workingConfig_.filterOptions.pids.emplace_back(1);
583     AudioService::GetInstance()->OnInitInnerCapList(1);
584     AudioService::GetInstance()->OnUpdateInnerCapList(1);
585     AudioService::GetInstance()->SetNonInterruptMute(MAX_STREAMID - 1, muteFlag);
586     EXPECT_EQ(0, floatRet);
587 }
588 
589 /**
590  * @tc.name  : Test OnProcessRelease API
591  * @tc.type  : FUNC
592  * @tc.number: AudioServiceOnProcessRelease_001
593  * @tc.desc  : Test OnProcessRelease interface.
594  */
595 HWTEST(AudioServiceUnitTest, AudioServiceOnProcessRelease_001, TestSize.Level1)
596 {
597     bool isSwitchStream = false;
598     int32_t floatRet = 0;
599     bool muteFlag = true;
600     uint32_t sessionId = 0;
601 
602     AudioService::GetInstance()->FilterAllFastProcess();
603     AudioService::GetInstance()->OnInitInnerCapList(1);
604     AudioService::GetInstance()->ResetAudioEndpoint();
605     AudioService::GetInstance()->SetNonInterruptMute(sessionId, muteFlag);
606     floatRet = AudioService::GetInstance()->GetMaxAmplitude(true);
607     EXPECT_EQ(0, floatRet);
608 
609     AudioProcessConfig config = {};
610     config.privacyType = AudioPrivacyType::PRIVACY_TYPE_PUBLIC;
611     AudioDeviceDescriptor deviceInfo(AudioDeviceDescriptor::DEVICE_INFO);
612     sptr<AudioProcessInServer> audioprocess =  AudioProcessInServer::Create(config, AudioService::GetInstance());
613     EXPECT_NE(audioprocess, nullptr);
614     audioprocess->Start();
615     AudioService::GetInstance()->GetAudioProcess(config);
616     AudioService::GetInstance()->OnInitInnerCapList(1);
617     AudioService::GetInstance()->workingConfig_.filterOptions.usages.emplace_back(STREAM_USAGE_MEDIA);
618     AudioService::GetInstance()->OnInitInnerCapList(1);
619 
620     AudioService::GetInstance()->workingConfig_.filterOptions.pids.emplace_back(1);
621     AudioService::GetInstance()->OnInitInnerCapList(1);
622     AudioService::GetInstance()->OnUpdateInnerCapList(1);
623 
624     int32_t ret = 0;
625     ret = AudioService::GetInstance()->OnProcessRelease(audioprocess, isSwitchStream);
626     EXPECT_EQ(ret, 0);
627 }
628 
629 /**
630  * @tc.name  : Test DelayCallReleaseEndpoint API
631  * @tc.type  : FUNC
632  * @tc.number: DelayCallReleaseEndpoint_001
633  * @tc.desc  : Test DelayCallReleaseEndpoint interface.
634  */
635 HWTEST(AudioServiceUnitTest, DelayCallReleaseEndpoint_001, TestSize.Level1)
636 {
637     std::string endpointName;
638     int32_t delayInMs = 1;
639     AudioService *audioService = AudioService::GetInstance();
640     audioService->DelayCallReleaseEndpoint(endpointName, delayInMs);
641 }
642 
643 /**
644  * @tc.name  : Test GetAudioEndpointForDevice API
645  * @tc.type  : FUNC
646  * @tc.number: GetAudioEndpointForDevice_001
647  * @tc.desc  : Test GetAudioEndpointForDevice interface.
648  */
649 HWTEST(AudioServiceUnitTest, GetAudioEndpointForDevice_001, TestSize.Level1)
650 {
651     AudioService *audioService = AudioService::GetInstance();
652     AudioProcessConfig clientConfig;
653     AudioDeviceDescriptor deviceInfo = audioService->GetDeviceInfoForProcess(clientConfig);
654     bool isVoipStream = true;
655     audioService->GetAudioEndpointForDevice(deviceInfo, clientConfig, isVoipStream);
656 }
657 
658 /**
659  * @tc.name  : Test Dump API
660  * @tc.type  : FUNC
661  * @tc.number: Dump_001
662  * @tc.desc  : Test Dump interface.
663  */
664 HWTEST(AudioServiceUnitTest, Dump_001, TestSize.Level1)
665 {
666     std::string dumpString = "abcdefg";
667     AudioService *audioService = AudioService::GetInstance();
668     audioService->Dump(dumpString);
669 
670     AudioProcessConfig processConfig;
671 
672     std::shared_ptr<StreamListenerHolder> streamListenerHolder =
673         std::make_shared<StreamListenerHolder>();
674 
675     std::weak_ptr<IStreamListener> streamListener = streamListenerHolder;
676 
677     std::shared_ptr<RendererInServer> rendererInServer =
678         std::make_shared<RendererInServer>(processConfig, streamListener);
679 
680     std::shared_ptr<RendererInServer> renderer = rendererInServer;
681 
682     audioService->InsertRenderer(1, renderer);
683     audioService->workingConfigs_[1];
684     audioService->Dump(dumpString);
685     audioService->RemoveRenderer(1);
686 }
687 
688 /**
689  * @tc.name  : Test GetMaxAmplitude API
690  * @tc.type  : FUNC
691  * @tc.number: GetMaxAmplitude_001
692  * @tc.desc  : Test GetMaxAmplitude interface.
693  */
694 HWTEST(AudioServiceUnitTest, GetMaxAmplitude_001, TestSize.Level1)
695 {
696     AudioService *audioService = AudioService::GetInstance();
697     int ret = audioService->GetMaxAmplitude(true);
698     EXPECT_EQ(0, ret);
699 }
700 
701 /**
702  * @tc.name  : Test GetCapturerBySessionID API
703  * @tc.type  : FUNC
704  * @tc.number: GetCapturerBySessionID_001
705  * @tc.desc  : Test GetCapturerBySessionID interface.
706  */
707 HWTEST(AudioServiceUnitTest, GetCapturerBySessionID_001, TestSize.Level1)
708 {
709     uint32_t sessionID = 2;
710     AudioService *audioService = AudioService::GetInstance();
711     std::shared_ptr<CapturerInServer> renderer = nullptr;
712     audioService->InsertCapturer(1, renderer);
713     std::shared_ptr<CapturerInServer> ret = audioService->GetCapturerBySessionID(sessionID);
714     EXPECT_EQ(nullptr, ret);
715     audioService->RemoveCapturer(1);
716 }
717 
718 /**
719  * @tc.name  : Test GetCapturerBySessionID API
720  * @tc.type  : FUNC
721  * @tc.number: GetCapturerBySessionID_002
722  * @tc.desc  : Test GetCapturerBySessionID interface.
723  */
724 HWTEST(AudioServiceUnitTest, GetCapturerBySessionID_002, TestSize.Level1)
725 {
726     AudioProcessConfig processConfig;
727 
728     std::shared_ptr<StreamListenerHolder> streamListenerHolder =
729         std::make_shared<StreamListenerHolder>();
730 
731     std::weak_ptr<IStreamListener> streamListener = streamListenerHolder;
732 
733     std::shared_ptr<CapturerInServer> capturerInServer =
734         std::make_shared<CapturerInServer>(processConfig, streamListener);
735 
736     std::shared_ptr<CapturerInServer> capturer = capturerInServer;
737     uint32_t sessionID = 1;
738     AudioService *audioService = AudioService::GetInstance();
739     std::shared_ptr<CapturerInServer> renderer = nullptr;
740     audioService->InsertCapturer(1, renderer);
741     std::shared_ptr<CapturerInServer> ret = audioService->GetCapturerBySessionID(sessionID);
742     EXPECT_EQ(nullptr, ret);
743     audioService->RemoveCapturer(1);
744 }
745 
746 /**
747  * @tc.name  : Test SetNonInterruptMute API
748  * @tc.type  : FUNC
749  * @tc.number: SetNonInterruptMute_001
750  * @tc.desc  : Test SetNonInterruptMute interface.
751  */
752 HWTEST(AudioServiceUnitTest, SetNonInterruptMute_001, TestSize.Level1)
753 {
754     AudioService *audioService = AudioService::GetInstance();
755     std::shared_ptr<RendererInServer> renderer = nullptr;
756     audioService->InsertRenderer(1, renderer);
757     audioService->SetNonInterruptMute(1, true);
758     audioService->RemoveRenderer(1);
759 }
760 
761 /**
762  * @tc.name  : Test SetNonInterruptMute API
763  * @tc.type  : FUNC
764  * @tc.number: SetNonInterruptMute_002
765  * @tc.desc  : Test SetNonInterruptMute interface.
766  */
767 HWTEST(AudioServiceUnitTest, SetNonInterruptMute_002, TestSize.Level1)
768 {
769     AudioProcessConfig processConfig;
770 
771     std::shared_ptr<StreamListenerHolder> streamListenerHolder =
772         std::make_shared<StreamListenerHolder>();
773 
774     std::weak_ptr<IStreamListener> streamListener = streamListenerHolder;
775 
776     std::shared_ptr<RendererInServer> rendererInServer =
777         std::make_shared<RendererInServer>(processConfig, streamListener);
778 
779     std::shared_ptr<RendererInServer> renderer = rendererInServer;
780 
781     AudioService *audioService = AudioService::GetInstance();
782     audioService->InsertRenderer(1, renderer);
783     audioService->SetNonInterruptMute(1, true);
784     audioService->RemoveRenderer(1);
785 }
786 
787 /**
788  * @tc.name  : Test SetNonInterruptMute API
789  * @tc.type  : FUNC
790  * @tc.number: SetNonInterruptMute_003
791  * @tc.desc  : Test SetNonInterruptMute interface.
792  */
793 HWTEST(AudioServiceUnitTest, SetNonInterruptMute_003, TestSize.Level1)
794 {
795     AudioService *audioService = AudioService::GetInstance();
796     std::shared_ptr<CapturerInServer> capturer = nullptr;
797     audioService->InsertCapturer(1, capturer);
798     audioService->SetNonInterruptMute(1, true);
799     audioService->RemoveCapturer(1);
800 }
801 
802 /**
803  * @tc.name  : Test SetNonInterruptMute API
804  * @tc.type  : FUNC
805  * @tc.number: SetNonInterruptMute_004
806  * @tc.desc  : Test SetNonInterruptMute interface.
807  */
808 HWTEST(AudioServiceUnitTest, SetNonInterruptMute_004, TestSize.Level1)
809 {
810     AudioProcessConfig processConfig;
811 
812     std::shared_ptr<StreamListenerHolder> streamListenerHolder =
813         std::make_shared<StreamListenerHolder>();
814 
815     std::weak_ptr<IStreamListener> streamListener = streamListenerHolder;
816 
817     std::shared_ptr<CapturerInServer> capturerInServer =
818         std::make_shared<CapturerInServer>(processConfig, streamListener);
819 
820     std::shared_ptr<CapturerInServer> capturer = capturerInServer;
821 
822     AudioService *audioService = AudioService::GetInstance();
823     audioService->InsertCapturer(1, capturer);
824     audioService->SetNonInterruptMute(1, true);
825     audioService->RemoveCapturer(1);
826 }
827 
828 /**
829  * @tc.name  : Test SetOffloadMode API
830  * @tc.type  : FUNC
831  * @tc.number: SetOffloadMode_001
832  * @tc.desc  : Test SetOffloadMode interface.
833  */
834 HWTEST(AudioServiceUnitTest, SetOffloadMode_001, TestSize.Level1)
835 {
836     uint32_t sessionId = 2;
837     int32_t state = 1;
838     bool isAppBack = true;
839     AudioService *audioService = AudioService::GetInstance();
840     std::shared_ptr<CapturerInServer> capturer = nullptr;
841     audioService->InsertCapturer(1, capturer);
842     int32_t ret = audioService->SetOffloadMode(sessionId, state, isAppBack);
843     EXPECT_EQ(ERR_INVALID_INDEX, ret);
844     audioService->RemoveCapturer(1);
845 }
846 
847 /**
848  * @tc.name  : Test CheckRenderSessionMuteState API
849  * @tc.type  : FUNC
850  * @tc.number: CheckRenderSessionMuteState_001
851  * @tc.desc  : Test CheckRenderSessionMuteState interface.
852  */
853 HWTEST(AudioServiceUnitTest, CheckRenderSessionMuteState_001, TestSize.Level1)
854 {
855     uint32_t sessionId = 2;
856     AudioService *audioService = AudioService::GetInstance();
857     audioService->UpdateMuteControlSet(sessionId, true);
858 
859     std::shared_ptr<RendererInServer> renderer = nullptr;
860     audioService->CheckRenderSessionMuteState(sessionId, renderer);
861 
862     std::shared_ptr<CapturerInServer> capturer = nullptr;
863     audioService->CheckCaptureSessionMuteState(sessionId, capturer);
864 
865     sptr<AudioProcessInServer> audioprocess = nullptr;
866     audioService->CheckFastSessionMuteState(sessionId, audioprocess);
867 
868     audioService->RemoveIdFromMuteControlSet(sessionId);
869     audioService->RemoveIdFromMuteControlSet(1);
870 
871     bool ret = audioService->IsExceedingMaxStreamCntPerUid(MEDIA_SERVICE_UID, 1, 0);
872     EXPECT_EQ(ret, true);
873     ret = audioService->IsExceedingMaxStreamCntPerUid(1, 1, 3);
874     EXPECT_EQ(ret, false);
875     int32_t mostAppUid = 1;
876     int32_t mostAppNum = 1;
877     audioService->GetCreatedAudioStreamMostUid(mostAppUid, mostAppNum);
878 }
879 
880 /**
881  * @tc.name  : Test CheckInnerCapForRenderer API
882  * @tc.type  : FUNC
883  * @tc.number: CheckInnerCapForRenderer_001
884  * @tc.desc  : Test CheckInnerCapForRenderer interface.
885  */
886 HWTEST(AudioServiceUnitTest, CheckInnerCapForRenderer_001, TestSize.Level1)
887 {
888     AudioService *audioService = AudioService::GetInstance();
889     AudioProcessConfig processConfig;
890 
891     std::shared_ptr<StreamListenerHolder> streamListenerHolder =
892         std::make_shared<StreamListenerHolder>();
893 
894     std::weak_ptr<IStreamListener> streamListener = streamListenerHolder;
895 
896     std::shared_ptr<RendererInServer> rendererInServer =
897         std::make_shared<RendererInServer>(processConfig, streamListener);
898 
899     std::shared_ptr<RendererInServer> renderer = rendererInServer;
900     audioService->CheckInnerCapForRenderer(1, renderer);
901     audioService->workingConfigs_[1];
902     audioService->CheckInnerCapForRenderer(1, renderer);
903     int32_t ret = audioService->OnCapturerFilterRemove(1, 1);
904     EXPECT_EQ(SUCCESS, ret);
905     audioService->workingConfigs_.clear();
906     ret = audioService->OnCapturerFilterRemove(1, 1);
907     EXPECT_EQ(SUCCESS, ret);
908 }
909 
910 /**
911  * @tc.name  : Test OnCapturerFilterChange API
912  * @tc.type  : FUNC
913  * @tc.number: OnCapturerFilterChange_001
914  * @tc.desc  : Test OnCapturerFilterChange interface.
915  */
916 HWTEST(AudioServiceUnitTest, OnCapturerFilterChange_001, TestSize.Level1)
917 {
918     AudioService *audioService = AudioService::GetInstance();
919     AudioPlaybackCaptureConfig newConfig;
920     int32_t ret = audioService->OnCapturerFilterChange(1, newConfig, 1);
921     EXPECT_EQ(ret, 0);
922     audioService->workingConfigs_[1];
923     ret = audioService->OnCapturerFilterChange(1, newConfig, 1);
924     EXPECT_EQ(ret, 0);
925     audioService->workingConfigs_.clear();
926 }
927 
928 /**
929  * @tc.name  : Test ShouldBeInnerCap API
930  * @tc.type  : FUNC
931  * @tc.number: ShouldBeInnerCap_001
932  * @tc.desc  : Test ShouldBeInnerCap interface.
933  */
934 HWTEST(AudioServiceUnitTest, ShouldBeInnerCap_001, TestSize.Level1)
935 {
936     AudioProcessConfig config = {};
937     config.privacyType = AudioPrivacyType::PRIVACY_TYPE_PUBLIC;
938     AudioService *audioService = AudioService::GetInstance();
939     int32_t ret = audioService->ShouldBeInnerCap(config, 0);
940     EXPECT_FALSE(ret);
941     audioService->workingConfig_.filterOptions.usages.push_back(STREAM_USAGE_MUSIC);
942     ret = audioService->ShouldBeInnerCap(config, 0);
943     EXPECT_FALSE(ret);
944     audioService->workingConfig_.filterOptions.pids.push_back(1);
945     ret = audioService->ShouldBeInnerCap(config, 0);
946     EXPECT_FALSE(ret);
947 }
948 #endif
949 
950 /**
951  * @tc.name  : Test DelayCallReleaseEndpoint API
952  * @tc.type  : FUNC
953  * @tc.number: DelayCallReleaseEndpoint_002
954  * @tc.desc  : Test DelayCallReleaseEndpoint interface.
955  */
956 HWTEST(AudioServiceUnitTest, DelayCallReleaseEndpoint_002, TestSize.Level1)
957 {
958     AudioService *audioService = AudioService::GetInstance();
959     std::string endpointName = "endpoint";
960     std::shared_ptr<AudioEndpoint> audioEndpoint = nullptr;
961     int32_t delayInMs = 1;
962     audioService->endpointList_[endpointName] = audioEndpoint;
963     audioService->DelayCallReleaseEndpoint(endpointName, delayInMs);
964 
965     AudioMode audioMode = AUDIO_MODE_PLAYBACK;
966     audioService->SetIncMaxRendererStreamCnt(audioMode);
967 
968     audioService->currentRendererStreamCnt_ = 0;
969     int32_t res = audioService->GetCurrentRendererStreamCnt();
970     EXPECT_EQ(res, 0);
971 }
972 
973 /**
974  * @tc.name  : Test CheckRenderSessionMuteState API
975  * @tc.type  : FUNC
976  * @tc.number: CheckRenderSessionMuteState_002
977  * @tc.desc  : Test CheckRenderSessionMuteState interface.
978  */
979 HWTEST(AudioServiceUnitTest, CheckRenderSessionMuteState_002, TestSize.Level1)
980 {
981     AudioProcessConfig processConfig;
982     uint32_t sessionId = 100001;
983     AudioService *audioService = AudioService::GetInstance();
984     audioService->UpdateMuteControlSet(sessionId, true);
985 
986     std::shared_ptr<StreamListenerHolder> streamListenerHolder =
987         std::make_shared<StreamListenerHolder>();
988 
989     std::weak_ptr<IStreamListener> streamListener = streamListenerHolder;
990     std::shared_ptr<RendererInServer> rendererInServer =
991         std::make_shared<RendererInServer>(processConfig, streamListener);
992     std::shared_ptr<RendererInServer> renderer = rendererInServer;
993     audioService->CheckRenderSessionMuteState(sessionId, renderer);
994 
995     audioService->RemoveIdFromMuteControlSet(sessionId);
996 
997     bool ret = audioService->IsExceedingMaxStreamCntPerUid(MEDIA_SERVICE_UID, 1, 0);
998     EXPECT_EQ(ret, true);
999     ret = audioService->IsExceedingMaxStreamCntPerUid(1, 1, 3);
1000     EXPECT_EQ(ret, false);
1001     int32_t mostAppUid = 1;
1002     int32_t mostAppNum = 1;
1003     audioService->GetCreatedAudioStreamMostUid(mostAppUid, mostAppNum);
1004 }
1005 /**
1006  * @tc.name  : Test CheckRenderSessionMuteState API
1007  * @tc.type  : FUNC
1008  * @tc.number: heckRenderSessionMuteState_003
1009  * @tc.desc  : Test CheckRenderSessionMuteState interface.
1010  */
1011 HWTEST(AudioServiceUnitTest, CheckRenderSessionMuteState_003, TestSize.Level1)
1012 {
1013     AudioProcessConfig processConfig;
1014     uint32_t sessionId = 100001;
1015     AudioService *audioService = AudioService::GetInstance();
1016     audioService->UpdateMuteControlSet(sessionId, true);
1017 
1018     std::shared_ptr<StreamListenerHolder> streamListenerHolder =
1019         std::make_shared<StreamListenerHolder>();
1020 
1021     std::weak_ptr<IStreamListener> streamListener = streamListenerHolder;
1022 
1023     std::shared_ptr<CapturerInServer> capturerInServer =
1024         std::make_shared<CapturerInServer>(processConfig, streamListener);
1025     std::shared_ptr<CapturerInServer> capturer = capturerInServer;
1026     audioService->CheckCaptureSessionMuteState(sessionId, capturer);
1027 
1028     audioService->RemoveIdFromMuteControlSet(sessionId);
1029 
1030     bool ret = audioService->IsExceedingMaxStreamCntPerUid(MEDIA_SERVICE_UID, 1, 0);
1031     EXPECT_EQ(ret, true);
1032     ret = audioService->IsExceedingMaxStreamCntPerUid(1, 1, 3);
1033     EXPECT_EQ(ret, false);
1034     int32_t mostAppUid = 1;
1035     int32_t mostAppNum = 1;
1036     audioService->GetCreatedAudioStreamMostUid(mostAppUid, mostAppNum);
1037 }
1038 /**
1039  * @tc.name  : Test CheckRenderSessionMuteState API
1040  * @tc.type  : FUNC
1041  * @tc.number: CheckRenderSessionMuteState_004
1042  * @tc.desc  : Test CheckRenderSessionMuteState interface.
1043  */
1044 HWTEST(AudioServiceUnitTest, CheckRenderSessionMuteState_004, TestSize.Level1)
1045 {
1046     AudioProcessConfig processConfig;
1047     uint32_t sessionId = 100001;
1048     AudioService *audioService = AudioService::GetInstance();
1049     audioService->UpdateMuteControlSet(sessionId, true);
1050 
1051     sptr<AudioProcessInServer> audioprocess = AudioProcessInServer::Create(processConfig, AudioService::GetInstance());;
1052     audioService->CheckFastSessionMuteState(sessionId, audioprocess);
1053 
1054     audioService->RemoveIdFromMuteControlSet(sessionId);
1055 
1056     bool ret = audioService->IsExceedingMaxStreamCntPerUid(MEDIA_SERVICE_UID, 1, 0);
1057     EXPECT_EQ(ret, true);
1058     ret = audioService->IsExceedingMaxStreamCntPerUid(1, 1, 3);
1059     EXPECT_EQ(ret, true);
1060     int32_t mostAppUid = 1;
1061     int32_t mostAppNum = 1;
1062     audioService->GetCreatedAudioStreamMostUid(mostAppUid, mostAppNum);
1063 }
1064 /**
1065  * @tc.name  : Test GetStandbyStatus API
1066  * @tc.type  : FUNC
1067  * @tc.number: GetStandbyStatus_001
1068  * @tc.desc  : Test GetStandbyStatus interface.
1069  */
1070 HWTEST(AudioServiceUnitTest, GetStandbyStatus_001, TestSize.Level1)
1071 {
1072     uint32_t sessionId = 100001;
1073     AudioService *audioService = AudioService::GetInstance();
1074     audioService->UpdateMuteControlSet(sessionId, true);
1075     bool isStandby = false;
1076     int64_t enterStandbyTime = 100000;
1077     int ret = audioService->GetStandbyStatus(sessionId, isStandby, enterStandbyTime);
1078     EXPECT_EQ(ret, ERR_INVALID_PARAM);
1079 }
1080 /**
1081  * @tc.name  : Test OnUpdateInnerCapList API
1082  * @tc.type  : FUNC
1083  * @tc.number: OnUpdateInnerCapList_001
1084  * @tc.desc  : Test OnUpdateInnerCapList interface.
1085  */
1086 HWTEST(AudioServiceUnitTest, OnUpdateInnerCapList_001, TestSize.Level1)
1087 {
1088     AudioService *audioService = AudioService::GetInstance();
1089     std::shared_ptr<RendererInServer> renderer = nullptr;
1090     std::vector<std::weak_ptr<RendererInServer>> rendererVector;
1091     rendererVector.push_back(renderer);
1092     int32_t innerCapId = 1;
1093     audioService->filteredRendererMap_.insert(std::make_pair(innerCapId, rendererVector));
1094     int32_t ret = audioService->OnUpdateInnerCapList(innerCapId);
1095     EXPECT_EQ(ret, SUCCESS);
1096 }
1097 /**
1098  * @tc.name  : Test DelayCallReleaseEndpoint API
1099  * @tc.type  : FUNC
1100  * @tc.number: DelayCallReleaseEndpoint_003
1101  * @tc.desc  : Test DelayCallReleaseEndpoint interface.
1102  */
1103 HWTEST(AudioServiceUnitTest, DelayCallReleaseEndpoint_003, TestSize.Level1)
1104 {
1105     AudioService *audioService = AudioService::GetInstance();
1106     audioService->currentRendererStreamCnt_ = 0;
1107     audioService->DelayCallReleaseEndpoint("endponit", 0);
1108 
1109     AudioMode audioMode = AUDIO_MODE_PLAYBACK;
1110     audioService->SetIncMaxRendererStreamCnt(audioMode);
1111     int32_t res = audioService->GetCurrentRendererStreamCnt();
1112     EXPECT_EQ(res, 1);
1113 }
1114 /**
1115  * @tc.name  : Test DelayCallReleaseEndpoint API
1116  * @tc.type  : FUNC
1117  * @tc.number: DelayCallReleaseEndpoint_004
1118  * @tc.desc  : Test DelayCallReleaseEndpoint interface.
1119  */
1120 HWTEST(AudioServiceUnitTest, DelayCallReleaseEndpoint_004, TestSize.Level1)
1121 {
1122     AudioService *audioService = AudioService::GetInstance();
1123     audioService->currentRendererStreamCnt_ = 0;
1124     audioService->releasingEndpointSet_.insert("endponit");
1125     audioService->DelayCallReleaseEndpoint("endponit", 1);
1126 
1127     AudioMode audioMode = AUDIO_MODE_PLAYBACK;
1128     audioService->SetIncMaxRendererStreamCnt(audioMode);
1129     int32_t res = audioService->GetCurrentRendererStreamCnt();
1130     EXPECT_EQ(res, 1);
1131 }
1132 /**
1133  * @tc.name  : Test EnableDualToneList API
1134  * @tc.type  : FUNC
1135  * @tc.number: EnableDualToneList_001
1136  * @tc.desc  : Test EnableDualToneList interface.
1137  */
1138 HWTEST(AudioServiceUnitTest, EnableDualToneList_001, TestSize.Level1)
1139 {
1140     AudioService *audioService = AudioService::GetInstance();
1141     std::shared_ptr<RendererInServer> renderer = nullptr;
1142     int32_t sessionId = 1;
1143     audioService->allRendererMap_.insert(std::make_pair(sessionId, renderer));
1144     int32_t ret = audioService->EnableDualToneList(sessionId);
1145     EXPECT_EQ(ret, SUCCESS);
1146 }
1147 /**
1148  * @tc.name  : Test DisableDualToneList API
1149  * @tc.type  : FUNC
1150  * @tc.number: DisableDualToneList_001
1151  * @tc.desc  : Test DisableDualToneList interface.
1152  */
1153 HWTEST(AudioServiceUnitTest, DisableDualToneList_001, TestSize.Level1)
1154 {
1155     AudioService *audioService = AudioService::GetInstance();
1156     std::shared_ptr<RendererInServer> renderer = nullptr;
1157     audioService->filteredDualToneRendererMap_.push_back(renderer);
1158     int32_t sessionId = 1;
1159     int32_t ret = audioService->DisableDualToneList(sessionId);
1160     EXPECT_EQ(ret, SUCCESS);
1161 }
1162 /**
1163  * @tc.name  : Test UpdateAudioSinkState API
1164  * @tc.type  : FUNC
1165  * @tc.number: UpdateAudioSinkState_001
1166  * @tc.desc  : Test UpdateAudioSinkState interface.
1167  */
1168 HWTEST(AudioServiceUnitTest, UpdateAudioSinkState_001, TestSize.Level1)
1169 {
1170     AudioService *audioService = AudioService::GetInstance();
1171     audioService->currentRendererStreamCnt_ = 0;
1172     audioService->UpdateAudioSinkState(1, false);
1173 
1174     AudioMode audioMode = AUDIO_MODE_PLAYBACK;
1175     audioService->SetIncMaxRendererStreamCnt(audioMode);
1176     int32_t res = audioService->GetCurrentRendererStreamCnt();
1177     EXPECT_EQ(res, 1);
1178 }
1179 /**
1180  * @tc.name  : Test UpdateAudioSinkState API
1181  * @tc.type  : FUNC
1182  * @tc.number: UpdateAudioSinkState_002
1183  * @tc.desc  : Test UpdateAudioSinkState interface.
1184  */
1185 HWTEST(AudioServiceUnitTest, UpdateAudioSinkState_002, TestSize.Level1)
1186 {
1187     AudioService *audioService = AudioService::GetInstance();
1188     audioService->currentRendererStreamCnt_ = 0;
1189     audioService->UpdateAudioSinkState(1, true);
1190 
1191     AudioMode audioMode = AUDIO_MODE_PLAYBACK;
1192     audioService->SetIncMaxRendererStreamCnt(audioMode);
1193     int32_t res = audioService->GetCurrentRendererStreamCnt();
1194     EXPECT_EQ(res, 1);
1195 }
1196 /**
1197  * @tc.name  : Test ShouldBeDualTone API
1198  * @tc.type  : FUNC
1199  * @tc.number: AudioServiceShouldBeDualTone_003
1200  * @tc.desc  : Test ShouldBeDualTone interface.
1201  */
1202 HWTEST(AudioServiceUnitTest, AudioServiceShouldBeDualTone_003, TestSize.Level1)
1203 {
1204     AudioProcessConfig config = {};
1205     config.audioMode = AUDIO_MODE_PLAYBACK;
1206     bool ret;
1207     ret = AudioService::GetInstance()->ShouldBeDualTone(config);
1208     EXPECT_EQ(ret, false);
1209     config.audioMode = AUDIO_MODE_PLAYBACK;
1210     config.rendererInfo.streamUsage = STREAM_USAGE_RINGTONE;
1211     ret = AudioService::GetInstance()->ShouldBeDualTone(config);
1212     EXPECT_FALSE(ret);
1213 }
1214 /**
1215  * @tc.name  : Test CheckHibernateState API
1216  * @tc.type  : FUNC
1217  * @tc.number: CheckHibernateState_001
1218  * @tc.desc  : Test CheckHibernateState interface.
1219  */
1220 HWTEST(AudioServiceUnitTest, CheckHibernateState_001, TestSize.Level1)
1221 {
1222     AudioService *audioService = AudioService::GetInstance();
1223     audioService->currentRendererStreamCnt_ = 0;
1224     audioService->CheckHibernateState(true);
1225 
1226     AudioMode audioMode = AUDIO_MODE_PLAYBACK;
1227     audioService->SetIncMaxRendererStreamCnt(audioMode);
1228     int32_t res = audioService->GetCurrentRendererStreamCnt();
1229     EXPECT_EQ(res, 1);
1230 }
1231 /**
1232  * @tc.name  : Test CheckHibernateState API
1233  * @tc.type  : FUNC
1234  * @tc.number: CheckHibernateState_002
1235  * @tc.desc  : Test CheckHibernateState interface.
1236  */
1237 HWTEST(AudioServiceUnitTest, CheckHibernateState_002, TestSize.Level1)
1238 {
1239     AudioService *audioService = AudioService::GetInstance();
1240     audioService->currentRendererStreamCnt_ = 0;
1241     audioService->CheckHibernateState(false);
1242 
1243     AudioMode audioMode = AUDIO_MODE_PLAYBACK;
1244     audioService->SetIncMaxRendererStreamCnt(audioMode);
1245     int32_t res = audioService->GetCurrentRendererStreamCnt();
1246     EXPECT_EQ(res, 1);
1247 }
1248 /**
1249  * @tc.name  : Test CheckHibernateState API
1250  * @tc.type  : FUNC
1251  * @tc.number: CheckHibernateState_003
1252  * @tc.desc  : Test CheckHibernateState interface.
1253  */
1254 HWTEST(AudioServiceUnitTest, CheckHibernateState_003, TestSize.Level1)
1255 {
1256     AudioService *audioService = AudioService::GetInstance();
1257     audioService->allRunningSinks_.insert(1);
1258     audioService->currentRendererStreamCnt_ = 0;
1259     audioService->CheckHibernateState(true);
1260 
1261     AudioMode audioMode = AUDIO_MODE_PLAYBACK;
1262     audioService->SetIncMaxRendererStreamCnt(audioMode);
1263     int32_t res = audioService->GetCurrentRendererStreamCnt();
1264     EXPECT_EQ(res, 1);
1265 }
1266 /**
1267  * @tc.name  : Test UnsetOffloadMode API
1268  * @tc.type  : FUNC
1269  * @tc.number: UnsetOffloadMode_001
1270  * @tc.desc  : Test UnsetOffloadMode interface.
1271  */
1272 HWTEST(AudioServiceUnitTest, UnsetOffloadMode_001, TestSize.Level1)
1273 {
1274     AudioService *audioService = AudioService::GetInstance();
1275     audioService->allRunningSinks_.insert(1);
1276     int ret = audioService->UnsetOffloadMode(1);
1277     EXPECT_EQ(ret, ERROR);
1278 }
1279 } // namespace AudioStandard
1280 } // namespace OHOS