• 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_general_manager_unit_test.h"
17 
18 using namespace testing::ext;
19 
20 namespace OHOS {
21 namespace AudioStandard {
22 static int32_t NUM_1 = 1;
23 static int32_t NUM_2 = 2;
24 static int32_t NUM_64 = 64;
25 
SetUpTestCase(void)26 void AudioGeneralManagerUnitTest::SetUpTestCase(void) {}
TearDownTestCase(void)27 void AudioGeneralManagerUnitTest::TearDownTestCase(void) {}
SetUp(void)28 void AudioGeneralManagerUnitTest::SetUp(void) {}
TearDown(void)29 void AudioGeneralManagerUnitTest::TearDown(void) {}
30 
31 /**
32 * @tc.name  : Test AudioGeneralManager.
33 * @tc.number: AudioGeneralManager_001.
34 * @tc.desc  : Test AudioGeneralManager::RegisterFocusInfoChangeCallback()
35 */
36 HWTEST(AudioGeneralManagerUnitTest, AudioGeneralManager_001, TestSize.Level1)
37 {
38     auto audioGeneralManagerPtr = AudioGeneralManager::GetInstance();
39     EXPECT_NE(audioGeneralManagerPtr, nullptr);
40 
41     std::shared_ptr<AudioFocusInfoChangeCallback> callback = std::make_shared<AudioFocusInfoChangeCallbackTest>();
42     EXPECT_NE(callback, nullptr);
43 
44     audioGeneralManagerPtr->audioFocusInfoCallback_ = nullptr;
45     auto ret = audioGeneralManagerPtr->RegisterFocusInfoChangeCallback(callback);
46     EXPECT_EQ(ret, SUCCESS);
47 }
48 
49 /**
50 * @tc.name  : Test AudioGeneralManager.
51 * @tc.number: AudioGeneralManager_002.
52 * @tc.desc  : Test AudioGeneralManager::RegisterFocusInfoChangeCallback()
53 */
54 HWTEST(AudioGeneralManagerUnitTest, AudioGeneralManager_002, TestSize.Level1)
55 {
56     auto audioGeneralManagerPtr = AudioGeneralManager::GetInstance();
57     EXPECT_NE(audioGeneralManagerPtr, nullptr);
58 
59     std::shared_ptr<AudioFocusInfoChangeCallback> callback = std::make_shared<AudioFocusInfoChangeCallbackTest>();
60     EXPECT_NE(callback, nullptr);
61 
62     audioGeneralManagerPtr->audioFocusInfoCallback_ = std::make_shared<AudioFocusInfoChangeCallbackImpl>();
63     EXPECT_NE(audioGeneralManagerPtr->audioFocusInfoCallback_, nullptr);
64 
65     auto ret = audioGeneralManagerPtr->RegisterFocusInfoChangeCallback(callback);
66     EXPECT_EQ(ret, SUCCESS);
67 }
68 
69 /**
70 * @tc.name  : Test AudioGeneralManager.
71 * @tc.number: AudioGeneralManager_003
72 * @tc.desc  : Test AudioGeneralManager::GetVolume()
73 */
74 HWTEST(AudioGeneralManagerUnitTest, AudioGeneralManager_003, TestSize.Level1)
75 {
76     auto audioGeneralManagerPtr = AudioGeneralManager::GetInstance();
77     EXPECT_NE(audioGeneralManagerPtr, nullptr);
78 
79     AudioVolumeType volumeType = AudioVolumeType::STREAM_MUSIC;
80 
81     auto ret = audioGeneralManagerPtr->GetVolume(volumeType);
82     EXPECT_NE(ret, SUCCESS);
83 }
84 
85 /**
86 * @tc.name  : Test AudioGeneralManager.
87 * @tc.number: AudioGeneralManager_004
88 * @tc.desc  : Test AudioGeneralManager::GetVolume()
89 */
90 HWTEST(AudioGeneralManagerUnitTest, AudioGeneralManager_004, TestSize.Level1)
91 {
92     auto audioGeneralManagerPtr = AudioGeneralManager::GetInstance();
93     EXPECT_NE(audioGeneralManagerPtr, nullptr);
94 
95     AudioVolumeType volumeType = AudioVolumeType::STREAM_ULTRASONIC;
96 
97     auto ret = audioGeneralManagerPtr->GetVolume(volumeType);
98     EXPECT_NE(ret, SUCCESS);
99 }
100 
101 /**
102 * @tc.name  : Test AudioGeneralManager.
103 * @tc.number: AudioGeneralManager_005
104 * @tc.desc  : Test AudioGeneralManager::GetVolume()
105 */
106 HWTEST(AudioGeneralManagerUnitTest, AudioGeneralManager_005, TestSize.Level1)
107 {
108     auto audioGeneralManagerPtr = AudioGeneralManager::GetInstance();
109     EXPECT_NE(audioGeneralManagerPtr, nullptr);
110 
111     AudioVolumeType volumeType = AudioVolumeType::STREAM_TTS;
112 
113     auto ret = audioGeneralManagerPtr->GetVolume(volumeType);
114     EXPECT_NE(ret, SUCCESS);
115 }
116 
117 /**
118 * @tc.name  : Test AudioGeneralManager.
119 * @tc.number: AudioGeneralManager_006
120 * @tc.desc  : Test AudioGeneralManager::UnregisterVolumeKeyEventCallback()
121 */
122 HWTEST(AudioGeneralManagerUnitTest, AudioGeneralManager_006, TestSize.Level1)
123 {
124     auto audioGeneralManagerPtr = AudioGeneralManager::GetInstance();
125     EXPECT_NE(audioGeneralManagerPtr, nullptr);
126 
127     int32_t clientPid = 0;
128     std::shared_ptr<VolumeKeyEventCallback> callback = nullptr;
129 
130     auto ret = audioGeneralManagerPtr->UnregisterVolumeKeyEventCallback(clientPid, callback);
131     EXPECT_EQ(ret, SUCCESS);
132 }
133 
134 /**
135 * @tc.name  : Test AudioGeneralManager.
136 * @tc.number: AudioGeneralManager_007
137 * @tc.desc  : Test AudioGeneralManager::GetMaxVolume()
138 */
139 HWTEST(AudioGeneralManagerUnitTest, AudioGeneralManager_007, TestSize.Level1)
140 {
141     auto audioGeneralManagerPtr = AudioGeneralManager::GetInstance();
142     EXPECT_NE(audioGeneralManagerPtr, nullptr);
143 
144     AudioVolumeType volumeType = AudioVolumeType::STREAM_ALL;
145 
146     auto ret = audioGeneralManagerPtr->GetMaxVolume(volumeType);
147     EXPECT_NE(ret, SUCCESS);
148 }
149 
150 /**
151 * @tc.name  : Test AudioGeneralManager.
152 * @tc.number: AudioGeneralManager_008
153 * @tc.desc  : Test AudioGeneralManager::GetMaxVolume()
154 */
155 HWTEST(AudioGeneralManagerUnitTest, AudioGeneralManager_008, TestSize.Level1)
156 {
157     auto audioGeneralManagerPtr = AudioGeneralManager::GetInstance();
158     EXPECT_NE(audioGeneralManagerPtr, nullptr);
159 
160     AudioVolumeType volumeType = AudioVolumeType::STREAM_ULTRASONIC;
161 
162     auto ret = audioGeneralManagerPtr->GetMaxVolume(volumeType);
163     EXPECT_NE(ret, SUCCESS);
164 }
165 
166 /**
167 * @tc.name  : Test AudioGeneralManager.
168 * @tc.number: AudioGeneralManager_009
169 * @tc.desc  : Test AudioGeneralManager::GetMaxVolume()
170 */
171 HWTEST(AudioGeneralManagerUnitTest, AudioGeneralManager_009, TestSize.Level1)
172 {
173     auto audioGeneralManagerPtr = AudioGeneralManager::GetInstance();
174     EXPECT_NE(audioGeneralManagerPtr, nullptr);
175 
176     AudioVolumeType volumeType = AudioVolumeType::STREAM_TTS;
177 
178     auto ret = audioGeneralManagerPtr->GetMaxVolume(volumeType);
179     EXPECT_NE(ret, SUCCESS);
180 }
181 
182 /**
183 * @tc.name  : Test AudioGeneralManager.
184 * @tc.number: AudioGeneralManager_010
185 * @tc.desc  : Test AudioGeneralManager::UnregisterFocusInfoChangeCallback()
186 */
187 HWTEST(AudioGeneralManagerUnitTest, AudioGeneralManager_010, TestSize.Level1)
188 {
189     auto audioGeneralManagerPtr = AudioGeneralManager::GetInstance();
190     EXPECT_NE(audioGeneralManagerPtr, nullptr);
191 
192     std::shared_ptr<AudioFocusInfoChangeCallback> callback = std::make_shared<AudioFocusInfoChangeCallbackImpl>();
193     EXPECT_NE(callback, nullptr);
194 
195     auto ret = audioGeneralManagerPtr->UnregisterFocusInfoChangeCallback(callback);
196     EXPECT_EQ(ret, SUCCESS);
197 }
198 
199 /**
200 * @tc.name  : Test AudioGeneralManager.
201 * @tc.number: AudioGeneralManager_011
202 * @tc.desc  : Test AudioGeneralManager::UnregisterFocusInfoChangeCallback()
203 */
204 HWTEST(AudioGeneralManagerUnitTest, AudioGeneralManager_011, TestSize.Level1)
205 {
206     auto audioGeneralManagerPtr = AudioGeneralManager::GetInstance();
207     EXPECT_NE(audioGeneralManagerPtr, nullptr);
208 
209     std::shared_ptr<AudioFocusInfoChangeCallback> callback = nullptr;
210 
211     auto ret = audioGeneralManagerPtr->UnregisterFocusInfoChangeCallback(callback);
212     EXPECT_EQ(ret, SUCCESS);
213 }
214 
215 /**
216 * @tc.name  : Test AudioGeneralManager.
217 * @tc.number: AudioGeneralManager_012
218 * @tc.desc  : Test AudioGeneralManager::SelectOutputDevice()
219 */
220 HWTEST(AudioGeneralManagerUnitTest, AudioGeneralManager_012, TestSize.Level1)
221 {
222     auto audioGeneralManagerPtr = AudioGeneralManager::GetInstance();
223     EXPECT_NE(audioGeneralManagerPtr, nullptr);
224 
225     auto audioDeviceDescriptor = std::make_shared<AudioDeviceDescriptor>(DEVICE_TYPE_NONE,
226         OUTPUT_DEVICE, 0, 0, REMOTE_NETWORK_ID);
227 
228     std::vector<std::shared_ptr<AudioDeviceDescriptor>> audioDeviceDescriptors = {audioDeviceDescriptor};
229 
230     auto ret = audioGeneralManagerPtr->SelectOutputDevice(audioDeviceDescriptors);
231     EXPECT_EQ(ret, ERR_INVALID_PARAM);
232 }
233 
234 /**
235 * @tc.name  : Test AudioGeneralManager.
236 * @tc.number: AudioGeneralManager_013
237 * @tc.desc  : Test AudioGeneralManager::SelectOutputDevice()
238 */
239 HWTEST(AudioGeneralManagerUnitTest, AudioGeneralManager_013, TestSize.Level1)
240 {
241     auto audioGeneralManagerPtr = AudioGeneralManager::GetInstance();
242     EXPECT_NE(audioGeneralManagerPtr, nullptr);
243 
244     auto audioDeviceDescriptor = std::make_shared<AudioDeviceDescriptor>(DEVICE_TYPE_NONE,
245         OUTPUT_DEVICE, 0, 0, REMOTE_NETWORK_ID);
246 
247     std::vector<std::shared_ptr<AudioDeviceDescriptor>> audioDeviceDescriptors = {audioDeviceDescriptor};
248 
249     auto ret = audioGeneralManagerPtr->SelectOutputDevice(audioDeviceDescriptors);
250     EXPECT_EQ(ret, ERR_INVALID_PARAM);
251 }
252 
253 /**
254 * @tc.name  : Test AudioGeneralManager.
255 * @tc.number: AudioGeneralManager_014
256 * @tc.desc  : Test AudioGeneralManager::SelectOutputDevice()
257 */
258 HWTEST(AudioGeneralManagerUnitTest, AudioGeneralManager_014, TestSize.Level1)
259 {
260     auto audioGeneralManagerPtr = AudioGeneralManager::GetInstance();
261     EXPECT_NE(audioGeneralManagerPtr, nullptr);
262 
263     std::string str(NUM_64, 'A');
264     EXPECT_EQ(str.size(), NUM_64);
265 
266     auto audioDeviceDescriptor = std::make_shared<AudioDeviceDescriptor>(DEVICE_TYPE_NONE,
267         OUTPUT_DEVICE, 0, 0, str);
268 
269     std::vector<std::shared_ptr<AudioDeviceDescriptor>> audioDeviceDescriptors = {audioDeviceDescriptor};
270 
271     auto ret = audioGeneralManagerPtr->SelectOutputDevice(audioDeviceDescriptors);
272     EXPECT_EQ(ret, SUCCESS);
273 }
274 
275 /**
276 * @tc.name  : Test AudioGeneralManager.
277 * @tc.number: AudioGeneralManager_015
278 * @tc.desc  : Test AudioGeneralManager::SelectOutputDevice()
279 */
280 HWTEST(AudioGeneralManagerUnitTest, AudioGeneralManager_015, TestSize.Level1)
281 {
282     auto audioGeneralManagerPtr = AudioGeneralManager::GetInstance();
283     EXPECT_NE(audioGeneralManagerPtr, nullptr);
284 
285     auto audioDeviceDescriptor = std::make_shared<AudioDeviceDescriptor>(DEVICE_TYPE_NONE,
286         OUTPUT_DEVICE, 0, 0, LOCAL_NETWORK_ID);
287 
288     std::vector<std::shared_ptr<AudioDeviceDescriptor>> audioDeviceDescriptors = {audioDeviceDescriptor};
289 
290     auto ret = audioGeneralManagerPtr->SelectOutputDevice(audioDeviceDescriptors);
291     EXPECT_EQ(ret, SUCCESS);
292 }
293 
294 /**
295 * @tc.name  : Test AudioGeneralManager.
296 * @tc.number: AudioGeneralManager_016
297 * @tc.desc  : Test AudioFocusInfoChangeCallbackImpl::SaveCallback()
298 */
299 HWTEST(AudioGeneralManagerUnitTest, AudioGeneralManager_016, TestSize.Level1)
300 {
301     auto audioFocusInfoChangeCallbackImpl = std::make_shared<AudioFocusInfoChangeCallbackImpl>();
302     EXPECT_NE(audioFocusInfoChangeCallbackImpl, nullptr);
303 
304     auto callback = std::make_shared<AudioFocusInfoChangeCallbackImpl>();
305     EXPECT_NE(callback, nullptr);
306 
307     audioFocusInfoChangeCallbackImpl->callbackList_.push_back(callback);
308 
309     audioFocusInfoChangeCallbackImpl->SaveCallback(callback);
310     EXPECT_EQ(audioFocusInfoChangeCallbackImpl->callbackList_.size(), NUM_1);
311 }
312 
313 /**
314 * @tc.name  : Test AudioGeneralManager.
315 * @tc.number: AudioGeneralManager_017
316 * @tc.desc  : Test AudioFocusInfoChangeCallbackImpl::SaveCallback()
317 */
318 HWTEST(AudioGeneralManagerUnitTest, AudioGeneralManager_017, TestSize.Level1)
319 {
320     auto audioFocusInfoChangeCallbackImpl = std::make_shared<AudioFocusInfoChangeCallbackImpl>();
321     EXPECT_NE(audioFocusInfoChangeCallbackImpl, nullptr);
322 
323     auto callback = std::make_shared<AudioFocusInfoChangeCallbackImpl>();
324     EXPECT_NE(callback, nullptr);
325 
326     auto callback2 = std::make_shared<AudioFocusInfoChangeCallbackImpl>();
327     EXPECT_NE(callback2, nullptr);
328 
329     EXPECT_NE(callback, callback2);
330 
331     audioFocusInfoChangeCallbackImpl->callbackList_.push_back(callback);
332 
333     audioFocusInfoChangeCallbackImpl->SaveCallback(callback2);
334     EXPECT_EQ(audioFocusInfoChangeCallbackImpl->callbackList_.size(), NUM_2);
335 }
336 } // namespace AudioStandard
337 } // namespace OHOS