• 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_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