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
18 #include "audio_device_manager.h"
19 #include "avsession_log.h"
20 #include "migrate_avsession_server.h"
21
22 using namespace testing::ext;
23 using namespace OHOS::AVSession;
24
25 class AudioDeviceManagerTest : public testing::Test {
26 public:
27 static void SetUpTestCase(void);
28 static void TearDownTestCase(void);
29 void SetUp();
30 void TearDown();
31 };
32
SetUpTestCase()33 void AudioDeviceManagerTest::SetUpTestCase() {}
34
TearDownTestCase()35 void AudioDeviceManagerTest::TearDownTestCase() {}
36
SetUp()37 void AudioDeviceManagerTest::SetUp() {}
38
TearDown()39 void AudioDeviceManagerTest::TearDown() {}
40
41 /**
42 * @tc.name: InitAudioStateCallback001
43 * @tc.desc: fail to init callback
44 * @tc.type: FUNC
45 */
46 static HWTEST(AudioDeviceManagerTest, InitAudioStateCallback001, TestSize.Level1)
47 {
48 SLOGI("InitAudioStateCallback001 begin!");
49 AudioDeviceManager::GetInstance().isRegistered_ = true;
50 std::shared_ptr<MigrateAVSessionServer> migrateAVSession = nullptr;
51 std::string deviceId = "test";
52 AudioDeviceManager::GetInstance().InitAudioStateCallback(migrateAVSession, deviceId);
53 EXPECT_TRUE(AudioDeviceManager::GetInstance().migrateSession_ == nullptr);
54 }
55
56 /**
57 * @tc.name: RegisterAudioDeviceChangeCallback001
58 * @tc.desc: audioDeviceChangeCallback_ have registered
59 * @tc.type: FUNC
60 */
61 static HWTEST(AudioDeviceManagerTest, RegisterAudioDeviceChangeCallback001, TestSize.Level1)
62 {
63 SLOGI("RegisterAudioDeviceChangeCallback001 begin!");
64 AudioDeviceManager::GetInstance().audioDeviceChangeCallback_ = std::make_shared<DeviceChangeCallback>();
65 AudioDeviceManager::GetInstance().RegisterAudioDeviceChangeCallback();
66 EXPECT_TRUE(AudioDeviceManager::GetInstance().audioDeviceChangeCallback_ != nullptr);
67 }
68
69 /**
70 * @tc.name: RegisterPreferedOutputDeviceChangeCallback001
71 * @tc.desc: audioPreferedOutputDeviceChangeCallback_ have registered
72 * @tc.type: FUNC
73 */
74 static HWTEST(AudioDeviceManagerTest, RegisterPreferedOutputDeviceChangeCallback001, TestSize.Level1)
75 {
76 SLOGI("RegisterPreferedOutputDeviceChangeCallback001 begin!");
77 AudioDeviceManager::GetInstance().audioPreferedOutputDeviceChangeCallback_
78 = std::make_shared<OutputDeviceChangeCallback>();
79 AudioDeviceManager::GetInstance().RegisterPreferedOutputDeviceChangeCallback();
80 EXPECT_TRUE(AudioDeviceManager::GetInstance().audioPreferedOutputDeviceChangeCallback_ != nullptr);
81 }
82
83 /**
84 * @tc.name: SendRemoteAvSessionInfo001
85 * @tc.desc: fail to send
86 * @tc.type: FUNC
87 */
88 static HWTEST(AudioDeviceManagerTest, SendRemoteAvSessionInfo001, TestSize.Level1)
89 {
90 SLOGI("SendRemoteAvSessionInfo001 begin!");
91 AudioDeviceManager::GetInstance().migrateSession_ = nullptr;
92 std::string deviceId = "test";
93 AudioDeviceManager::GetInstance().SendRemoteAvSessionInfo(deviceId);
94 EXPECT_TRUE(AudioDeviceManager::GetInstance().migrateSession_ == nullptr);
95 }
96
97 /**
98 * @tc.name: SendRemoteAvSessionInfo002
99 * @tc.desc: success to send
100 * @tc.type: FUNC
101 */
102 static HWTEST(AudioDeviceManagerTest, SendRemoteAvSessionInfo002, TestSize.Level1)
103 {
104 SLOGI("SendRemoteAvSessionInfo002 begin!");
105 std::shared_ptr<MigrateAVSessionServer> migrateAVSession = std::make_shared<MigrateAVSessionServer>();
106 std::string deviceId = "test";
107 AudioDeviceManager::GetInstance().InitAudioStateCallback(migrateAVSession, deviceId);
108 AudioDeviceManager::GetInstance().SendRemoteAvSessionInfo(deviceId);
109 EXPECT_TRUE(AudioDeviceManager::GetInstance().migrateSession_ == nullptr);
110 }
111
112 /**
113 * @tc.name: SendRemoteAudioMsg001
114 * @tc.desc: migrateAVSession have created
115 * @tc.type: FUNC
116 */
117 static HWTEST(AudioDeviceManagerTest, ClearRemoteAvSessionInfo001, TestSize.Level1)
118 {
119 SLOGI("ClearRemoteAvSessionInfo001 begin!");
120 std::shared_ptr<MigrateAVSessionServer> migrateAVSession = std::make_shared<MigrateAVSessionServer>();
121 AudioDeviceManager::GetInstance().migrateSession_ = migrateAVSession;
122 std::string deviceId = "test";
123 AudioDeviceManager::GetInstance().ClearRemoteAvSessionInfo(deviceId);
124 EXPECT_TRUE(AudioDeviceManager::GetInstance().migrateSession_ != nullptr);
125 }
126
127 /**
128 * @tc.name: RegisterAudioDeviceChangeCallback002
129 * @tc.desc: audioDeviceChangeCallback_ have registered with nullptr
130 * @tc.type: FUNC
131 */
132 static HWTEST(AudioDeviceManagerTest, RegisterAudioDeviceChangeCallback002, TestSize.Level1)
133 {
134 SLOGI("RegisterAudioDeviceChangeCallback002 begin!");
135 AudioDeviceManager::GetInstance().audioDeviceChangeCallback_ = nullptr;
136 AudioDeviceManager::GetInstance().RegisterAudioDeviceChangeCallback();
137 EXPECT_TRUE(AudioDeviceManager::GetInstance().audioDeviceChangeCallback_ != nullptr);
138 }
139