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_state_manager_unit_test.h"
17 #include "audio_errors.h"
18 #include "audio_info.h"
19 #include "audio_policy_log.h"
20
21 #include <thread>
22 #include <memory>
23 #include <vector>
24
25 using namespace testing::ext;
26
27 namespace OHOS {
28 namespace AudioStandard {
29
SetUpTestCase(void)30 void AudioStateManagerUnitTest::SetUpTestCase(void) {}
TearDownTestCase(void)31 void AudioStateManagerUnitTest::TearDownTestCase(void) {}
SetUp(void)32 void AudioStateManagerUnitTest::SetUp(void) {}
TearDown(void)33 void AudioStateManagerUnitTest::TearDown(void) {}
34
35 /**
36 * @tc.name : Test AudioStateManager.
37 * @tc.number: AudioStateManagerUnitTest_001
38 * @tc.desc : Test SetPreferredMediaRenderDevice interface.
39 */
40 HWTEST_F(AudioStateManagerUnitTest, AudioStateManagerUnitTest_001, TestSize.Level1)
41 {
42 shared_ptr<AudioDeviceDescriptor> desc = std::make_shared<AudioDeviceDescriptor>();
43 AudioStateManager::GetAudioStateManager().SetPreferredMediaRenderDevice(desc);
44 EXPECT_NE(AudioStateManager::GetAudioStateManager().GetPreferredMediaRenderDevice(), nullptr);
45 }
46
47 /**
48 * @tc.name : Test AudioStateManager.
49 * @tc.number: AudioStateManagerUnitTest_002
50 * @tc.desc : Test SetAndGetPreferredCallRenderDevice interface.
51 */
52 HWTEST_F(AudioStateManagerUnitTest, AudioStateManagerUnitTest_002, TestSize.Level1)
53 {
54 shared_ptr<AudioDeviceDescriptor> desc = std::make_shared<AudioDeviceDescriptor>();
55 shared_ptr<AudioDeviceDescriptor> speaker = std::make_shared<AudioDeviceDescriptor>();
56 speaker->deviceType_ = DEVICE_TYPE_SPEAKER;
57 AudioStateManager::GetAudioStateManager().SetPreferredCallRenderDevice(desc, 0);
58 AudioStateManager::GetAudioStateManager().SetPreferredCallRenderDevice(desc, -1);
59 AudioStateManager::GetAudioStateManager().SetPreferredCallRenderDevice(desc, 1);
60 AudioStateManager::GetAudioStateManager().SetPreferredCallRenderDevice(speaker, -1);
61 AudioStateManager::GetAudioStateManager().SetPreferredCallRenderDevice(speaker, 1);
62 AudioStateManager::GetAudioStateManager().SetPreferredCallRenderDevice(speaker, 789);
63 shared_ptr<AudioDeviceDescriptor> deviceDesc =
64 AudioStateManager::GetAudioStateManager().GetPreferredCallRenderDevice();
65 EXPECT_NE(deviceDesc, nullptr);
66 AudioStateManager::GetAudioStateManager().SetAudioSceneOwnerUid(789);
67 deviceDesc = AudioStateManager::GetAudioStateManager().GetPreferredCallRenderDevice();
68 EXPECT_NE(deviceDesc, nullptr);
69 AudioStateManager::GetAudioStateManager().SetAudioSceneOwnerUid(790);
70 deviceDesc = AudioStateManager::GetAudioStateManager().GetPreferredCallRenderDevice();
71 EXPECT_NE(deviceDesc, nullptr);
72 AudioStateManager::GetAudioStateManager().SetPreferredCallRenderDevice(speaker, 1);
73 AudioStateManager::GetAudioStateManager().SetPreferredCallRenderDevice(desc, 790);
74 deviceDesc = AudioStateManager::GetAudioStateManager().GetPreferredCallRenderDevice();
75 EXPECT_NE(deviceDesc, speaker);
76 }
77
78 /**
79 * @tc.name : Test AudioStateManager.
80 * @tc.number: AudioStateManagerUnitTest_003
81 * @tc.desc : Test SetPreferredCallCaptureDevice interface.
82 */
83 HWTEST_F(AudioStateManagerUnitTest, AudioStateManagerUnitTest_003, TestSize.Level1)
84 {
85 shared_ptr<AudioDeviceDescriptor> desc = std::make_shared<AudioDeviceDescriptor>();
86 AudioStateManager::GetAudioStateManager().SetPreferredCallCaptureDevice(desc);
87 EXPECT_NE(AudioStateManager::GetAudioStateManager().GetPreferredCallCaptureDevice(), nullptr);
88 }
89
90 /**
91 * @tc.name : Test AudioStateManager.
92 * @tc.number: AudioStateManagerUnitTest_004
93 * @tc.desc : Test SetPreferredCallCaptureDevice interface.
94 */
95 HWTEST_F(AudioStateManagerUnitTest, AudioStateManagerUnitTest_004, TestSize.Level1)
96 {
97 shared_ptr<AudioDeviceDescriptor> desc = std::make_shared<AudioDeviceDescriptor>();
98 AudioStateManager::GetAudioStateManager().SetPreferredRingRenderDevice(desc);
99 EXPECT_NE(AudioStateManager::GetAudioStateManager().GetPreferredRingRenderDevice(), nullptr);
100 }
101
102 /**
103 * @tc.name : Test AudioStateManager.
104 * @tc.number: AudioStateManagerUnitTest_005
105 * @tc.desc : Test SetPreferredRecordCaptureDevice interface.
106 */
107 HWTEST_F(AudioStateManagerUnitTest, AudioStateManagerUnitTest_005, TestSize.Level1)
108 {
109 shared_ptr<AudioDeviceDescriptor> desc = std::make_shared<AudioDeviceDescriptor>();
110 AudioStateManager::GetAudioStateManager().SetPreferredRecordCaptureDevice(desc);
111 EXPECT_NE(AudioStateManager::GetAudioStateManager().GetPreferredRecordCaptureDevice(), nullptr);
112 }
113
114 /**
115 * @tc.name : Test AudioStateManager.
116 * @tc.number: AudioStateManagerUnitTest_006
117 * @tc.desc : Test SetPreferredToneRenderDevice interface.
118 */
119 HWTEST_F(AudioStateManagerUnitTest, AudioStateManagerUnitTest_006, TestSize.Level1)
120 {
121 shared_ptr<AudioDeviceDescriptor> desc = std::make_shared<AudioDeviceDescriptor>();
122 AudioStateManager::GetAudioStateManager().SetPreferredToneRenderDevice(desc);
123 EXPECT_NE(AudioStateManager::GetAudioStateManager().GetPreferredToneRenderDevice(), nullptr);
124 }
125
126 /**
127 * @tc.name : Test AudioStateManager.
128 * @tc.number: AudioStateManagerUnitTest_007
129 * @tc.desc : Test UpdatePreferredMediaRenderDeviceConnectState interface.
130 */
131 HWTEST_F(AudioStateManagerUnitTest, AudioStateManagerUnitTest_007, TestSize.Level1)
132 {
133 AudioStateManager::GetAudioStateManager().UpdatePreferredMediaRenderDeviceConnectState(
134 ConnectState::CONNECTED);
135 EXPECT_EQ(AudioStateManager::GetAudioStateManager().GetPreferredMediaRenderDevice()->connectState_,
136 ConnectState::CONNECTED);
137 }
138
139 /**
140 * @tc.name : Test AudioStateManager.
141 * @tc.number: AudioStateManagerUnitTest_008
142 * @tc.desc : Test UpdatePreferredCallRenderDeviceConnectState interface.
143 */
144 HWTEST_F(AudioStateManagerUnitTest, AudioStateManagerUnitTest_008, TestSize.Level1)
145 {
146 AudioStateManager::GetAudioStateManager().UpdatePreferredCallRenderDeviceConnectState(
147 ConnectState::CONNECTED);
148 EXPECT_EQ(AudioStateManager::GetAudioStateManager().GetPreferredCallRenderDevice()->connectState_,
149 ConnectState::CONNECTED);
150 }
151
152 /**
153 * @tc.name : Test AudioStateManager.
154 * @tc.number: AudioStateManagerUnitTest_009
155 * @tc.desc : Test UpdatePreferredCallCaptureDeviceConnectState interface.
156 */
157 HWTEST_F(AudioStateManagerUnitTest, AudioStateManagerUnitTest_009, TestSize.Level1)
158 {
159 AudioStateManager::GetAudioStateManager().UpdatePreferredCallCaptureDeviceConnectState(
160 ConnectState::CONNECTED);
161 EXPECT_EQ(AudioStateManager::GetAudioStateManager().GetPreferredCallCaptureDevice()->connectState_,
162 ConnectState::CONNECTED);
163 }
164
165 /**
166 * @tc.name : Test AudioStateManager.
167 * @tc.number: AudioStateManagerUnitTest_010
168 * @tc.desc : Test UpdatePreferredRecordCaptureDeviceConnectState interface.
169 */
170 HWTEST_F(AudioStateManagerUnitTest, AudioStateManagerUnitTest_010, TestSize.Level1)
171 {
172 AudioStateManager::GetAudioStateManager().UpdatePreferredRecordCaptureDeviceConnectState(
173 ConnectState::CONNECTED);
174 EXPECT_EQ(AudioStateManager::GetAudioStateManager().GetPreferredRecordCaptureDevice()->connectState_,
175 ConnectState::CONNECTED);
176 }
177 } // namespace AudioStandard
178 } // namespace OHOS
179