• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include <gtest/gtest.h>
17 
18 #include "audio_service_log.h"
19 #include "audio_errors.h"
20 #include "audio_system_manager.h"
21 
22 using namespace testing::ext;
23 
24 namespace OHOS {
25 namespace AudioStandard {
26 
27 const int32_t TEST_RET_NUM = 0;
28 
29 class AudioSystemManagerUnitTest : public testing::Test {
30 public:
31     static void SetUpTestCase(void);
32     static void TearDownTestCase(void);
33     void SetUp();
34     void TearDown();
35 };
36 
37 class AudioManagerAppVolumeChangeCallbackTest : public AudioManagerAppVolumeChangeCallback {
38 public:
OnAppVolumeChangedForUid(int32_t appUid,const VolumeEvent & event)39     void OnAppVolumeChangedForUid(int32_t appUid, const VolumeEvent &event) override {}
OnSelfAppVolumeChanged(const VolumeEvent & event)40     void OnSelfAppVolumeChanged(const VolumeEvent &event) override {}
41 };
42 
43 /**
44  * @tc.name  : Test GetMaxVolume API
45  * @tc.type  : FUNC
46  * @tc.number: GetMaxVolume_001
47  * @tc.desc  : Test GetMaxVolume interface.
48  */
49 HWTEST(AudioSystemManagerUnitTest, GetMaxVolume_001, TestSize.Level1)
50 {
51     AUDIO_INFO_LOG("AudioSystemManagerUnitTest GetMaxVolume_001 start");
52     int32_t result = AudioSystemManager::GetInstance()->GetMaxVolume(STREAM_ALL);
53     AUDIO_INFO_LOG("AudioSystemManagerUnitTest GetMaxVolume_001 result1:%{public}d", result);
54     EXPECT_GT(result, TEST_RET_NUM);
55     result = AudioSystemManager::GetInstance()->GetMaxVolume(STREAM_ULTRASONIC);
56     AUDIO_INFO_LOG("AudioSystemManagerUnitTest GetMaxVolume_001 result2:%{public}d", result);
57     EXPECT_GT(result, TEST_RET_NUM);
58 }
59 
60 /**
61  * @tc.name  : Test GetMinVolume API
62  * @tc.type  : FUNC
63  * @tc.number: GetMinVolume_001
64  * @tc.desc  : Test GetMinVolume interface.
65  */
66 HWTEST(AudioSystemManagerUnitTest, GetMinVolume_001, TestSize.Level1)
67 {
68     AUDIO_INFO_LOG("AudioSystemManagerUnitTest GetMinVolume_001 start");
69     int32_t result = AudioSystemManager::GetInstance()->GetMinVolume(STREAM_ALL);
70     AUDIO_INFO_LOG("AudioSystemManagerUnitTest GetMinVolume_001 result1:%{public}d", result);
71     EXPECT_EQ(result, TEST_RET_NUM);
72     result = AudioSystemManager::GetInstance()->GetMinVolume(STREAM_ULTRASONIC);
73     AUDIO_INFO_LOG("AudioSystemManagerUnitTest GetMinVolume_001 result2:%{public}d", result);
74     EXPECT_EQ(result, TEST_RET_NUM);
75 }
76 
77 /**
78  * @tc.name  : Test IsStreamMute API
79  * @tc.type  : FUNC
80  * @tc.number: IsStreamMute_001
81  * @tc.desc  : Test IsStreamMute interface.
82  */
83 HWTEST(AudioSystemManagerUnitTest, IsStreamMute_001, TestSize.Level1)
84 {
85     AUDIO_INFO_LOG("AudioSystemManagerUnitTest IsStreamMute_001 start");
86     bool result = AudioSystemManager::GetInstance()->IsStreamMute(STREAM_MUSIC);
87     AUDIO_INFO_LOG("AudioSystemManagerUnitTest IsStreamMute_001 result1:%{public}d", result);
88     EXPECT_EQ(result, false);
89 
90     result = AudioSystemManager::GetInstance()->IsStreamMute(STREAM_RING);
91     AUDIO_INFO_LOG("AudioSystemManagerUnitTest IsStreamMute_001 result2:%{public}d", result);
92     EXPECT_EQ(result, false);
93 
94     result = AudioSystemManager::GetInstance()->IsStreamMute(STREAM_NOTIFICATION);
95     AUDIO_INFO_LOG("AudioSystemManagerUnitTest IsStreamMute_001 result3:%{public}d", result);
96     EXPECT_EQ(result, false);
97 }
98 
99 /**
100  * @tc.name  : Test IsStreamActive API
101  * @tc.type  : FUNC
102  * @tc.number: IsStreamActive_002
103  * @tc.desc  : Test IsStreamActive interface.
104  */
105 HWTEST(AudioSystemManagerUnitTest, IsStreamActive_002, TestSize.Level1)
106 {
107     AUDIO_INFO_LOG("AudioSystemManagerUnitTest IsStreamActive_002 start");
108     bool result = AudioSystemManager::GetInstance()->IsStreamActive(STREAM_MUSIC);
109     AUDIO_INFO_LOG("AudioSystemManagerUnitTest IsStreamActive_002 result1:%{public}d", result);
110     EXPECT_EQ(result, false);
111 
112     result = AudioSystemManager::GetInstance()->IsStreamActive(STREAM_ULTRASONIC);
113     AUDIO_INFO_LOG("AudioSystemManagerUnitTest IsStreamActive_002 result2:%{public}d", result);
114     EXPECT_EQ(result, false);
115 
116     result = AudioSystemManager::GetInstance()->IsStreamActive(STREAM_ALL);
117     AUDIO_INFO_LOG("AudioSystemManagerUnitTest IsStreamActive_002 result3:%{public}d", result);
118     EXPECT_EQ(result, false);
119 }
120 
121 /**
122  * @tc.name  : Test GetSelfBundleName API
123  * @tc.type  : FUNC
124  * @tc.number: GetSelfBundleName_001
125  * @tc.desc  : Test GetSelfBundleName interface.
126  */
127 HWTEST(AudioSystemManagerUnitTest, GetSelfBundleName_001, TestSize.Level1)
128 {
129     AUDIO_INFO_LOG("AudioSystemManagerUnitTest GetSelfBundleName_001 start");
130     std::string bundleName = AudioSystemManager::GetInstance()->GetSelfBundleName();
131     AUDIO_INFO_LOG("AudioSystemManagerUnitTest GetSelfBundleName_001 bundleName:%{public}s", bundleName.c_str());
132     EXPECT_EQ(bundleName, "");
133 }
134 
135 /**
136  * @tc.name  : Test GetPinValueFromType API
137  * @tc.type  : FUNC
138  * @tc.number: GetPinValueFromType_001
139  * @tc.desc  : Test GetPinValueFromType interface.
140  */
141 HWTEST(AudioSystemManagerUnitTest, GetPinValueFromType_001, TestSize.Level1)
142 {
143     AUDIO_INFO_LOG("AudioSystemManagerUnitTest GetPinValueFromType_001 start");
144     AudioPin pinValue = AudioSystemManager::GetInstance()->GetPinValueFromType(DEVICE_TYPE_DP, INPUT_DEVICE);
145     AUDIO_INFO_LOG("AudioSystemManagerUnitTest ->GetPinValueFromType_001() pinValue:%{public}d", pinValue);
146     EXPECT_NE(pinValue, AUDIO_PIN_NONE);
147 }
148 
149 /**
150  * @tc.name  : Test GetPinValueFromType API
151  * @tc.type  : FUNC
152  * @tc.number: GetPinValueFromType_002
153  * @tc.desc  : Test GetPinValueFromType interface.
154  */
155 HWTEST(AudioSystemManagerUnitTest, GetPinValueFromType_002, TestSize.Level1)
156 {
157     AUDIO_INFO_LOG("AudioSystemManagerUnitTest GetPinValueFromType_002 start");
158     AudioPin pinValue = AudioSystemManager::GetInstance()->GetPinValueFromType(DEVICE_TYPE_HDMI, OUTPUT_DEVICE);
159     AUDIO_INFO_LOG("AudioSystemManagerUnitTest ->GetPinValueFromType_002() pinValue:%{public}d", pinValue);
160     EXPECT_NE(pinValue, AUDIO_PIN_NONE);
161 }
162 
163 /**
164  * @tc.name  : Test RegisterWakeupSourceCallback API
165  * @tc.type  : FUNC
166  * @tc.number: RegisterWakeupSourceCallback_001
167  * @tc.desc  : Test RegisterWakeupSourceCallback interface.
168  */
169 HWTEST(AudioSystemManagerUnitTest, RegisterWakeupSourceCallback_001, TestSize.Level1)
170 {
171     AUDIO_INFO_LOG("AudioSystemManagerUnitTest RegisterWakeupSourceCallback_001 start");
172     int32_t result = AudioSystemManager::GetInstance()->RegisterWakeupSourceCallback();
173     AUDIO_INFO_LOG("AudioSystemManagerUnitTest ->RegisterWakeupSourceCallback_001() result:%{public}d", result);
174     EXPECT_NE(result, ERROR);
175 }
176 
177 /**
178 * @tc.name   : Test ConfigDistributedRoutingRole API
179 * @tc.number : ConfigDistributedRoutingRoleTest_001
180 * @tc.desc   : Test ConfigDistributedRoutingRole interface, when descriptor is nullptr.
181 */
182 HWTEST(AudioSystemManagerUnitTest, ConfigDistributedRoutingRoleTest_001, TestSize.Level1)
183 {
184     AUDIO_INFO_LOG("AudioSystemManagerUnitTest ConfigDistributedRoutingRoleTest_001 start");
185     CastType castType = CAST_TYPE_ALL;
186     int32_t result = AudioSystemManager::GetInstance()->ConfigDistributedRoutingRole(nullptr, castType);
187     AUDIO_INFO_LOG("AudioSystemManagerUnitTest ConfigDistributedRoutingRoleTest_001() result:%{public}d", result);
188     EXPECT_EQ(result, ERR_INVALID_PARAM);
189 }
190 
191 /**
192  * @tc.name   : Test ExcludeOutputDevices API
193  * @tc.number : ExcludeOutputDevicesTest_001
194  * @tc.desc   : Test ExcludeOutputDevices interface, when audioDeviceDescriptors is valid.
195  */
196 HWTEST(AudioSystemManagerUnitTest, ExcludeOutputDevicesTest_001, TestSize.Level1)
197 {
198     AUDIO_INFO_LOG("AudioSystemManagerUnitTest ExcludeOutputDevicesTest_001 start");
199     AudioDeviceUsage audioDevUsage = MEDIA_OUTPUT_DEVICES;
200     std::vector<std::shared_ptr<AudioDeviceDescriptor>> audioDeviceDescriptors;
201     std::shared_ptr<AudioDeviceDescriptor> audioDevDesc = std::make_shared<AudioDeviceDescriptor>();
202     audioDevDesc->deviceType_ = DEVICE_TYPE_BLUETOOTH_A2DP;
203     audioDevDesc->networkId_ = LOCAL_NETWORK_ID;
204     audioDevDesc->deviceRole_ = DeviceRole::OUTPUT_DEVICE;
205     audioDevDesc->macAddress_ = "00:00:00:00:00:00";
206     audioDeviceDescriptors.push_back(audioDevDesc);
207     int32_t result = AudioSystemManager::GetInstance()->ExcludeOutputDevices(audioDevUsage, audioDeviceDescriptors);
208     AUDIO_INFO_LOG("AudioSystemManagerUnitTest ExcludeOutputDevicesTest_001() result:%{public}d", result);
209     EXPECT_EQ(result, SUCCESS);
210 }
211 
212 /**
213  * @tc.name   : Test ExcludeOutputDevices API
214  * @tc.number : ExcludeOutputDevicesTest_002
215  * @tc.desc   : Test ExcludeOutputDevices interface, when audioDeviceDescriptors is valid.
216  */
217 HWTEST(AudioSystemManagerUnitTest, ExcludeOutputDevicesTest_002, TestSize.Level1)
218 {
219     AUDIO_INFO_LOG("AudioSystemManagerUnitTest ExcludeOutputDevicesTest_002 start");
220     AudioDeviceUsage audioDevUsage = CALL_OUTPUT_DEVICES;
221     std::vector<std::shared_ptr<AudioDeviceDescriptor>> audioDeviceDescriptors;
222     std::shared_ptr<AudioDeviceDescriptor> audioDevDesc = std::make_shared<AudioDeviceDescriptor>();
223     audioDevDesc->deviceType_ = DEVICE_TYPE_BLUETOOTH_SCO;
224     audioDevDesc->networkId_ = LOCAL_NETWORK_ID;
225     audioDevDesc->deviceRole_ = DeviceRole::OUTPUT_DEVICE;
226     audioDevDesc->macAddress_ = "00:00:00:00:00:00";
227     audioDeviceDescriptors.push_back(audioDevDesc);
228     int32_t result = AudioSystemManager::GetInstance()->ExcludeOutputDevices(audioDevUsage, audioDeviceDescriptors);
229     AUDIO_INFO_LOG("AudioSystemManagerUnitTest ExcludeOutputDevicesTest_001() result:%{public}d", result);
230     EXPECT_EQ(result, SUCCESS);
231 }
232 
233 /**
234  * @tc.name   : Test UnexcludeOutputDevices API
235  * @tc.number : UnexcludeOutputDevicesTest_001
236  * @tc.desc   : Test UnexcludeOutputDevices interface, when audioDeviceDescriptors is valid.
237  */
238 HWTEST(AudioSystemManagerUnitTest, UnexcludeOutputDevicesTest_001, TestSize.Level1)
239 {
240     AUDIO_INFO_LOG("AudioSystemManagerUnitTest UnexcludeOutputDevicesTest_001 start");
241     AudioDeviceUsage audioDevUsage = MEDIA_OUTPUT_DEVICES;
242     std::vector<std::shared_ptr<AudioDeviceDescriptor>> audioDeviceDescriptors;
243     std::shared_ptr<AudioDeviceDescriptor> audioDevDesc = std::make_shared<AudioDeviceDescriptor>();
244     audioDevDesc->deviceType_ = DEVICE_TYPE_BLUETOOTH_A2DP;
245     audioDevDesc->networkId_ = LOCAL_NETWORK_ID;
246     audioDevDesc->deviceRole_ = DeviceRole::OUTPUT_DEVICE;
247     audioDevDesc->macAddress_ = "00:00:00:00:00:00";
248     audioDeviceDescriptors.push_back(audioDevDesc);
249     AudioSystemManager::GetInstance()->ExcludeOutputDevices(audioDevUsage, audioDeviceDescriptors);
250     int32_t result = AudioSystemManager::GetInstance()->UnexcludeOutputDevices(audioDevUsage, audioDeviceDescriptors);
251     AUDIO_INFO_LOG("AudioSystemManagerUnitTest UnexcludeOutputDevicesTest_001() result:%{public}d", result);
252     EXPECT_EQ(result, SUCCESS);
253 }
254 
255 /**
256  * @tc.name   : Test UnexcludeOutputDevices API
257  * @tc.number : UnexcludeOutputDevicesTest_002
258  * @tc.desc   : Test UnexcludeOutputDevices interface, when audioDeviceDescriptors is empty.
259  */
260 HWTEST(AudioSystemManagerUnitTest, UnexcludeOutputDevicesTest_002, TestSize.Level1)
261 {
262     AUDIO_INFO_LOG("AudioSystemManagerUnitTest UnexcludeOutputDevicesTest_002 start");
263     AudioDeviceUsage audioDevUsage = CALL_OUTPUT_DEVICES;
264     std::vector<std::shared_ptr<AudioDeviceDescriptor>> audioDeviceDescriptors;
265     std::shared_ptr<AudioDeviceDescriptor> audioDevDesc = std::make_shared<AudioDeviceDescriptor>();
266     audioDevDesc->deviceType_ = DEVICE_TYPE_BLUETOOTH_SCO;
267     audioDevDesc->networkId_ = LOCAL_NETWORK_ID;
268     audioDevDesc->deviceRole_ = DeviceRole::OUTPUT_DEVICE;
269     audioDevDesc->macAddress_ = "00:00:00:00:00:00";
270     audioDeviceDescriptors.push_back(audioDevDesc);
271     AudioSystemManager::GetInstance()->ExcludeOutputDevices(audioDevUsage, audioDeviceDescriptors);
272     int32_t result = AudioSystemManager::GetInstance()->UnexcludeOutputDevices(audioDevUsage);
273     AUDIO_INFO_LOG("AudioSystemManagerUnitTest UnexcludeOutputDevicesTest_002() result:%{public}d", result);
274     EXPECT_EQ(result, SUCCESS);
275 }
276 
277 /**
278  * @tc.name   : Test GetExcludedDevices API
279  * @tc.number : GetExcludedDevicesTest_001
280  * @tc.desc   : Test GetExcludedDevices interface.
281  */
282 HWTEST(AudioSystemManagerUnitTest, GetExcludedDevicesTest_001, TestSize.Level1)
283 {
284     AUDIO_INFO_LOG("AudioSystemManagerUnitTest GetExcludedDevicesTest_001 start");
285     AudioDeviceUsage audioDevUsage = MEDIA_OUTPUT_DEVICES;
286     std::vector<std::shared_ptr<AudioDeviceDescriptor>> audioDeviceDescriptors =
287         AudioSystemManager::GetInstance()->GetExcludedDevices(audioDevUsage);
288     AUDIO_INFO_LOG("AudioSystemManagerUnitTest GetExcludedDevicesTest_001() audioDeviceDescriptors.size:%{public}zu",
289         audioDeviceDescriptors.size());
290     EXPECT_EQ(audioDeviceDescriptors.size(), 0);
291 }
292 
293 /**
294  * @tc.name   : Test GetExcludedDevices API
295  * @tc.number : GetExcludedDevicesTest_002
296  * @tc.desc   : Test GetExcludedDevices interface.
297  */
298 HWTEST(AudioSystemManagerUnitTest, GetExcludedDevicesTest_002, TestSize.Level1)
299 {
300     AUDIO_INFO_LOG("AudioSystemManagerUnitTest GetExcludedDevicesTest_002 start");
301     AudioDeviceUsage audioDevUsage = CALL_OUTPUT_DEVICES;
302     std::vector<std::shared_ptr<AudioDeviceDescriptor>> audioDeviceDescriptors =
303         AudioSystemManager::GetInstance()->GetExcludedDevices(audioDevUsage);
304     AUDIO_INFO_LOG("AudioSystemManagerUnitTest GetExcludedDevicesTest_002() audioDeviceDescriptors.size:%{public}zu",
305         audioDeviceDescriptors.size());
306     EXPECT_EQ(audioDeviceDescriptors.size(), 0);
307 }
308 
309 /**
310 * @tc.name   : Test SetSelfAppVolume API
311 * @tc.number : SetAppVolume_001
312 * @tc.desc   : Test SetSelfAppVolume interface
313 */
314 HWTEST(AudioSystemManagerUnitTest, SetSelfAppVolume_001, TestSize.Level1)
315 {
316     AUDIO_INFO_LOG("AudioSystemManagerUnitTest SetSelfAppVolume_001 start");
317     int volume = 10;
318     int32_t result = AudioSystemManager::GetInstance()->SetSelfAppVolume(volume);
319     AUDIO_INFO_LOG("AudioSystemManagerUnitTest SetSelfAppVolume_001 end result:%{public}d", result);
320     EXPECT_EQ(result, TEST_RET_NUM);
321 }
322 
323 /**
324 * @tc.name   : Test GetSelfAppVolume API
325 * @tc.number : GetSelfAppVolume_001
326 * @tc.desc   : Test GetSelfAppVolume interface
327 */
328 HWTEST(AudioSystemManagerUnitTest, GetSelfAppVolume_001, TestSize.Level1)
329 {
330     AUDIO_INFO_LOG("AudioSystemManagerUnitTest GetSelfAppVolume_001 start");
331     int volume = 10;
332     int32_t result = AudioSystemManager::GetInstance()->SetSelfAppVolume(volume);
333     AUDIO_INFO_LOG("AudioSystemManagerUnitTest SetSelfAppVolume end result:%{public}d", result);
334     EXPECT_EQ(result, TEST_RET_NUM);
335     result = AudioSystemManager::GetInstance()->GetSelfAppVolume();
336     AUDIO_INFO_LOG("AudioSystemManagerUnitTest GetSelfAppVolume_001 end result:%{public}d", result);
337     EXPECT_GT(result, TEST_RET_NUM);
338 }
339 
340 /**
341 * @tc.name   : Test SetSelfAppVolumeCallback API
342 * @tc.number : SetSelfAppVolumeCallback_001
343 * @tc.desc   : Test SetSelfAppVolumeCallback interface
344 */
345 HWTEST(AudioSystemManagerUnitTest, SetSelfAppVolumeCallback_001, TestSize.Level1)
346 {
347     AUDIO_INFO_LOG("AudioSystemManagerUnitTest SetSelfAppVolumeCallback_001 start");
348     std::shared_ptr<AudioManagerAppVolumeChangeCallback> callback = nullptr;
349     int32_t result = AudioSystemManager::GetInstance()->SetSelfAppVolumeCallback(callback);
350     AUDIO_INFO_LOG("AudioSystemManagerUnitTest SetSelfAppVolumeCallback end result:%{public}d", result);
351     EXPECT_NE(result, TEST_RET_NUM);
352     result = AudioSystemManager::GetInstance()->UnsetSelfAppVolumeCallback(callback);
353     AUDIO_INFO_LOG("AudioSystemManagerUnitTest UnsetAppVolumeCallback end result:%{public}d", result);
354     EXPECT_NE(result, TEST_RET_NUM);
355 }
356 
357 /**
358 * @tc.name   : Test SetSelfAppVolumeCallback API
359 * @tc.number : SetSelfAppVolumeCallback_002
360 * @tc.desc   : Test SetSelfAppVolumeCallback interface
361 */
362 HWTEST(AudioSystemManagerUnitTest, SetSelfAppVolumeCallback_002, TestSize.Level1)
363 {
364     AUDIO_INFO_LOG("AudioSystemManagerUnitTest SetSelfAppVolumeCallback_002 start");
365     std::shared_ptr<AudioManagerAppVolumeChangeCallback> callback =
366         std::make_shared<AudioManagerAppVolumeChangeCallbackTest>();
367     int32_t result = AudioSystemManager::GetInstance()->SetSelfAppVolumeCallback(callback);
368     AUDIO_INFO_LOG("AudioSystemManagerUnitTest SetSelfAppVolumeCallback1 end result:%{public}d", result);
369     EXPECT_EQ(result, TEST_RET_NUM);
370     result = AudioSystemManager::GetInstance()->SetSelfAppVolumeCallback(callback);
371     AUDIO_INFO_LOG("AudioSystemManagerUnitTest SetSelfAppVolumeCallback2 end result:%{public}d", result);
372     EXPECT_EQ(result, TEST_RET_NUM);
373     result = AudioSystemManager::GetInstance()->UnsetSelfAppVolumeCallback(callback);
374     AUDIO_INFO_LOG("AudioSystemManagerUnitTest UnsetSelfAppVolumeCallback end result:%{public}d", result);
375     EXPECT_EQ(result, TEST_RET_NUM);
376 }
377 
378 /**
379 * @tc.name   : Test SetSelfAppVolumeCallback API
380 * @tc.number : SetSelfAppVolumeCallback_003
381 * @tc.desc   : Test SetSelfAppVolumeCallback interface
382 */
383 HWTEST(AudioSystemManagerUnitTest, SetSelfAppVolumeCallback_003, TestSize.Level1)
384 {
385     AUDIO_INFO_LOG("AudioSystemManagerUnitTest SetSelfAppVolumeCallback_003 start");
386     std::shared_ptr<AudioManagerAppVolumeChangeCallback> callback1 =
387         std::make_shared<AudioManagerAppVolumeChangeCallbackTest>();
388     std::shared_ptr<AudioManagerAppVolumeChangeCallback> callback2 =
389         std::make_shared<AudioManagerAppVolumeChangeCallbackTest>();
390     int32_t result = AudioSystemManager::GetInstance()->SetSelfAppVolumeCallback(callback1);
391     AUDIO_INFO_LOG("AudioSystemManagerUnitTest SetSelfAppVolumeCallback1 end result:%{public}d", result);
392     EXPECT_EQ(result, TEST_RET_NUM);
393     result = AudioSystemManager::GetInstance()->SetSelfAppVolumeCallback(callback2);
394     AUDIO_INFO_LOG("AudioSystemManagerUnitTest SetSelfAppVolumeCallback2 end result:%{public}d", result);
395     EXPECT_EQ(result, TEST_RET_NUM);
396     result = AudioSystemManager::GetInstance()->UnsetSelfAppVolumeCallback(callback2);
397     AUDIO_INFO_LOG("AudioSystemManagerUnitTest UnsetSelfAppVolumeCallback end result:%{public}d", result);
398     EXPECT_EQ(result, TEST_RET_NUM);
399 }
400 
401 /**
402 * @tc.name   : Test SetSelfAppVolumeCallback API
403 * @tc.number : SetSelfAppVolumeCallback_004
404 * @tc.desc   : Test SetSelfAppVolumeCallback interface
405 */
406 HWTEST(AudioSystemManagerUnitTest, SetSelfAppVolumeCallback_004, TestSize.Level1)
407 {
408     AUDIO_INFO_LOG("AudioSystemManagerUnitTest SetSelfAppVolumeCallback_004 start");
409     std::shared_ptr<AudioManagerAppVolumeChangeCallback> callback =
410         std::make_shared<AudioManagerAppVolumeChangeCallbackTest>();
411     int32_t result = AudioSystemManager::GetInstance()->SetSelfAppVolumeCallback(callback);
412     AUDIO_INFO_LOG("AudioSystemManagerUnitTest SetSelfAppVolumeCallback1 end result:%{public}d", result);
413     EXPECT_EQ(result, TEST_RET_NUM);
414     result = AudioSystemManager::GetInstance()->UnsetSelfAppVolumeCallback(callback);
415     AUDIO_INFO_LOG("AudioSystemManagerUnitTest UnsetSelfAppVolumeCallback end result:%{public}d", result);
416     EXPECT_EQ(result, TEST_RET_NUM);
417 }
418 
419 /**
420 * @tc.name   : Test SetSelfAppVolumeCallback API
421 * @tc.number : SetSelfAppVolumeCallback_005
422 * @tc.desc   : Test SetSelfAppVolumeCallback interface
423 */
424 HWTEST(AudioSystemManagerUnitTest, SetSelfAppVolumeCallback_005, TestSize.Level1)
425 {
426     AUDIO_INFO_LOG("AudioSystemManagerUnitTest SetSelfAppVolumeCallback_005 start");
427     std::shared_ptr<AudioManagerAppVolumeChangeCallback> callback =
428         std::make_shared<AudioManagerAppVolumeChangeCallbackTest>();
429     int32_t result = AudioSystemManager::GetInstance()->SetSelfAppVolumeCallback(callback);
430     AUDIO_INFO_LOG("AudioSystemManagerUnitTest SetSelfAppVolumeCallback1 end result:%{public}d", result);
431     EXPECT_EQ(result, TEST_RET_NUM);
432     result = AudioSystemManager::GetInstance()->UnsetSelfAppVolumeCallback(nullptr);
433     AUDIO_INFO_LOG("AudioSystemManagerUnitTest UnsetSelfAppVolumeCallback end result:%{public}d", result);
434     EXPECT_EQ(result, TEST_RET_NUM);
435 }
436 } // namespace AudioStandard
437 } // namespace OHOS