• 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 <gtest/gtest.h>
17 #include "audio_usb_manager.h"
18 #include "audio_policy_service.h"
19 #include "audio_usb_manager_unit_test.h"
20 
21 using namespace testing::ext;
22 
23 namespace OHOS {
24 namespace AudioStandard {
25 
26 class DeviceStatusObserver : public IDeviceStatusObserver {
27 public:
OnDeviceStatusUpdated(DeviceType devType,bool isConnected,const std::string & macAddress,const std::string & deviceName,const AudioStreamInfo & streamInfo,DeviceRole role=DEVICE_ROLE_NONE,bool hasPair=false)28     void OnDeviceStatusUpdated(DeviceType devType, bool isConnected,
29         const std::string &macAddress, const std::string &deviceName,
30         const AudioStreamInfo &streamInfo, DeviceRole role = DEVICE_ROLE_NONE, bool hasPair = false) override {};
OnMicrophoneBlockedUpdate(DeviceType devType,DeviceBlockStatus status)31     void OnMicrophoneBlockedUpdate(DeviceType devType, DeviceBlockStatus status) override {};
OnPnpDeviceStatusUpdated(AudioDeviceDescriptor & desc,bool isConnected)32     void OnPnpDeviceStatusUpdated(AudioDeviceDescriptor &desc, bool isConnected) override {};
OnDeviceConfigurationChanged(DeviceType deviceType,const std::string & macAddress,const std::string & deviceName,const AudioStreamInfo & streamInfo)33     void OnDeviceConfigurationChanged(DeviceType deviceType,
34         const std::string &macAddress, const std::string &deviceName,
35         const AudioStreamInfo &streamInfo) override {};
OnDeviceStatusUpdated(DStatusInfo statusInfo,bool isStop=false)36     void OnDeviceStatusUpdated(DStatusInfo statusInfo, bool isStop = false) override {};
OnServiceConnected(AudioServiceIndex serviceIndex)37     void OnServiceConnected(AudioServiceIndex serviceIndex) override {};
OnServiceDisconnected(AudioServiceIndex serviceIndex)38     void OnServiceDisconnected(AudioServiceIndex serviceIndex) override {};
OnForcedDeviceSelected(DeviceType devType,const std::string & macAddress)39     void OnForcedDeviceSelected(DeviceType devType, const std::string &macAddress) override {};
OnDeviceStatusUpdated(AudioDeviceDescriptor & desc,bool isConnected)40     void OnDeviceStatusUpdated(AudioDeviceDescriptor &desc, bool isConnected) override {};
OnDeviceInfoUpdated(AudioDeviceDescriptor & desc,const DeviceInfoUpdateCommand updateCommand)41     void OnDeviceInfoUpdated(AudioDeviceDescriptor &desc, const DeviceInfoUpdateCommand updateCommand) override {};
42 };
43 
SetUpTestCase(void)44 void AudioUsbManagerUnitTest::SetUpTestCase(void) {}
TearDownTestCase(void)45 void AudioUsbManagerUnitTest::TearDownTestCase(void) {}
SetUp(void)46 void AudioUsbManagerUnitTest::SetUp(void) {}
TearDown(void)47 void AudioUsbManagerUnitTest::TearDown(void) {}
48 
49 /**
50 * @tc.name  : Test AudioUsbManager.
51 * @tc.number: AudioUsbManagerUnitTest_001.
52 * @tc.desc  : Test Init.
53 */
54 HWTEST_F(AudioUsbManagerUnitTest, AudioUsbManagerUnitTest_001, TestSize.Level1)
55 {
56     auto audioUsbManager = std::make_shared<AudioUsbManager>();
57     ASSERT_TRUE(audioUsbManager != nullptr);
58 
59     IDeviceStatusObserver *observer = nullptr;
60     audioUsbManager->Init(observer);
61 
62     audioUsbManager->initialized_ = true;
63     audioUsbManager->Init(observer);
64 }
65 
66 /**
67 * @tc.name  : Test AudioUsbManager.
68 * @tc.number: AudioUsbManagerUnitTest_002.
69 * @tc.desc  : Test Deinit.
70 */
71 HWTEST_F(AudioUsbManagerUnitTest, AudioUsbManagerUnitTest_002, TestSize.Level1)
72 {
73     auto audioUsbManager = std::make_shared<AudioUsbManager>();
74     ASSERT_TRUE(audioUsbManager != nullptr);
75     audioUsbManager->Deinit();
76 
77     audioUsbManager->initialized_ = true;
78     audioUsbManager->Deinit();
79 }
80 
81 /**
82 * @tc.name  : Test AudioUsbManager.
83 * @tc.number: AudioUsbManagerUnitTest_003.
84 * @tc.desc  : Test Deinit.
85 */
86 HWTEST_F(AudioUsbManagerUnitTest, AudioUsbManagerUnitTest_003, TestSize.Level1)
87 {
88     auto audioUsbManager = std::make_shared<AudioUsbManager>();
89     ASSERT_TRUE(audioUsbManager != nullptr);
90 
91     EventFwk::CommonEventSubscribeInfo subscribeInfo;
92     audioUsbManager->eventSubscriber_ = std::make_shared<AudioUsbManager::EventSubscriber>(subscribeInfo);
93     audioUsbManager->initialized_ = true;
94     audioUsbManager->Deinit();
95 }
96 
97 /**
98 * @tc.name  : Test AudioUsbManager.
99 * @tc.number: AudioUsbManagerUnitTest_004.
100 * @tc.desc  : Test RefreshUsbAudioDevices.
101 */
102 HWTEST_F(AudioUsbManagerUnitTest, AudioUsbManagerUnitTest_004, TestSize.Level1)
103 {
104     auto audioUsbManager = std::make_shared<AudioUsbManager>();
105     ASSERT_TRUE(audioUsbManager != nullptr);
106 
107     audioUsbManager->RefreshUsbAudioDevices();
108 }
109 
110 /**
111 * @tc.name  : Test AudioUsbManager.
112 * @tc.number: AudioUsbManagerUnitTest_005.
113 * @tc.desc  : Test GetPlayerDevices.
114 */
115 HWTEST_F(AudioUsbManagerUnitTest, AudioUsbManagerUnitTest_005, TestSize.Level1)
116 {
117     auto audioUsbManager = std::make_shared<AudioUsbManager>();
118     ASSERT_TRUE(audioUsbManager != nullptr);
119     audioUsbManager->initialized_ = true;
120 
121     AudioUsbManager::GetInstance().GetPlayerDevices();
122 }
123 
124 /**
125 * @tc.name  : Test AudioUsbManager.
126 * @tc.number: AudioUsbManagerUnitTest_006.
127 * @tc.desc  : Test NotifyDevice.
128 */
129 HWTEST_F(AudioUsbManagerUnitTest, AudioUsbManagerUnitTest_006, TestSize.Level1)
130 {
131     auto audioUsbManager = std::make_shared<AudioUsbManager>();
132     ASSERT_TRUE(audioUsbManager != nullptr);
133 
134     IDeviceStatusObserver *observer = new DeviceStatusObserver();
135     audioUsbManager->Init(observer);
136     ASSERT_TRUE(audioUsbManager->observer_ != nullptr);
137 
138     UsbAudioDevice device;
139     SoundCard soundCard;
140     soundCard.isPlayer_ = true;
141     soundCard.isCapturer_ = true;
142     audioUsbManager->soundCardMap_.insert({device.usbAddr_, soundCard});
143     audioUsbManager->NotifyDevice(device, true);
144     audioUsbManager->Deinit();
145 }
146 
147 /**
148 * @tc.name  : Test AudioUsbManager.
149 * @tc.number: AudioUsbManagerUnitTest_007.
150 * @tc.desc  : Test NotifyDevice.
151 */
152 HWTEST_F(AudioUsbManagerUnitTest, AudioUsbManagerUnitTest_007, TestSize.Level1)
153 {
154     auto audioUsbManager = std::make_shared<AudioUsbManager>();
155     ASSERT_TRUE(audioUsbManager != nullptr);
156 
157     IDeviceStatusObserver *observer = new DeviceStatusObserver();
158     audioUsbManager->Init(observer);
159     ASSERT_TRUE(audioUsbManager->observer_ != nullptr);
160 
161     UsbAudioDevice device;
162     SoundCard soundCard;
163     soundCard.isPlayer_ = false;
164     soundCard.isCapturer_ = true;
165     audioUsbManager->soundCardMap_.insert({device.usbAddr_, soundCard});
166     audioUsbManager->NotifyDevice(device, true);
167 }
168 
169 /**
170 * @tc.name  : Test AudioUsbManager.
171 * @tc.number: AudioUsbManagerUnitTest_008.
172 * @tc.desc  : Test NotifyDevice.
173 */
174 HWTEST_F(AudioUsbManagerUnitTest, AudioUsbManagerUnitTest_008, TestSize.Level1)
175 {
176     auto audioUsbManager = std::make_shared<AudioUsbManager>();
177     ASSERT_TRUE(audioUsbManager != nullptr);
178 
179     IDeviceStatusObserver *observer = new DeviceStatusObserver();
180     audioUsbManager->Init(observer);
181     ASSERT_TRUE(audioUsbManager->observer_ != nullptr);
182 
183     UsbAudioDevice device;
184     SoundCard soundCard;
185     soundCard.isPlayer_ = true;
186     soundCard.isCapturer_ = false;
187     audioUsbManager->soundCardMap_.insert({device.usbAddr_, soundCard});
188     audioUsbManager->NotifyDevice(device, true);
189 }
190 
191 /**
192 * @tc.name  : Test AudioUsbManager.
193 * @tc.number: AudioUsbManagerUnitTest_009.
194 * @tc.desc  : Test GetCapturerDevices.
195 */
196 HWTEST_F(AudioUsbManagerUnitTest, AudioUsbManagerUnitTest_009, TestSize.Level1)
197 {
198     auto audioUsbManager = std::make_shared<AudioUsbManager>();
199     ASSERT_TRUE(audioUsbManager != nullptr);
200     audioUsbManager->initialized_ = true;
201 
202     AudioUsbManager::GetInstance().GetCapturerDevices();
203 }
204 
205 /**
206 * @tc.name  : Test AudioUsbManager.
207 * @tc.number: AudioUsbManagerUnitTest_010.
208 * @tc.desc  : Test GetUsbAudioDevices.
209 */
210 HWTEST_F(AudioUsbManagerUnitTest, AudioUsbManagerUnitTest_010, TestSize.Level1)
211 {
212     auto audioUsbManager = std::make_shared<AudioUsbManager>();
213     ASSERT_TRUE(audioUsbManager != nullptr);
214     audioUsbManager->initialized_ = true;
215 
216     AudioUsbManager::GetInstance().GetUsbAudioDevices();
217 }
218 
219 /**
220 * @tc.name  : Test AudioUsbManager.
221 * @tc.number: AudioUsbManagerUnitTest_011.
222 * @tc.desc  : Test HandleUsbAudioDeviceAttach.
223 */
224 HWTEST_F(AudioUsbManagerUnitTest, AudioUsbManagerUnitTest_011, TestSize.Level1)
225 {
226     auto audioUsbManager = std::make_shared<AudioUsbManager>();
227     ASSERT_TRUE(audioUsbManager != nullptr);
228 
229     UsbAudioDevice device;
230     audioUsbManager->HandleUsbAudioDeviceAttach(device);
231 
232     audioUsbManager->audioDevices_.push_back(device);
233     audioUsbManager->HandleUsbAudioDeviceAttach(device);
234 }
235 
236 /**
237 * @tc.name  : Test AudioUsbManager.
238 * @tc.number: AudioUsbManagerUnitTest_012.
239 * @tc.desc  : Test HandleUsbAudioDeviceAttach.
240 */
241 HWTEST_F(AudioUsbManagerUnitTest, AudioUsbManagerUnitTest_012, TestSize.Level1)
242 {
243     auto audioUsbManager = std::make_shared<AudioUsbManager>();
244     ASSERT_TRUE(audioUsbManager != nullptr);
245 
246     UsbAudioDevice device;
247     audioUsbManager->HandleUsbAudioDeviceDetach(device);
248 
249     audioUsbManager->audioDevices_.push_back(device);
250     audioUsbManager->HandleUsbAudioDeviceDetach(device);
251 }
252 
253 /**
254 * @tc.name  : Test AudioUsbManager.
255 * @tc.number: AudioUsbManagerUnitTest_013.
256 * @tc.desc  : Test GetUsbSoundCardMap.
257 */
258 HWTEST_F(AudioUsbManagerUnitTest, AudioUsbManagerUnitTest_013, TestSize.Level1)
259 {
260     auto audioUsbManager = std::make_shared<AudioUsbManager>();
261     ASSERT_TRUE(audioUsbManager != nullptr);
262     audioUsbManager->initialized_ = true;
263 
264     AudioUsbManager::GetInstance().GetUsbSoundCardMap();
265 }
266 
267 /**
268 * @tc.name  : Test AudioUsbManager.
269 * @tc.number: AudioUsbManagerUnitTest_014.
270 * @tc.desc  : Test OnReceiveEvent.
271 */
272 HWTEST_F(AudioUsbManagerUnitTest, AudioUsbManagerUnitTest_014, TestSize.Level1)
273 {
274     EventFwk::CommonEventSubscribeInfo subscribeInfo;
275     auto audioUsbManager = std::make_shared<AudioUsbManager::EventSubscriber>(subscribeInfo);
276     ASSERT_TRUE(audioUsbManager != nullptr);
277 
278     EventFwk::CommonEventData data;
279     audioUsbManager->OnReceiveEvent(data);
280 }
281 } // namespace AudioStandard
282 } // namespace OHOS
283