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_router_center_unit_test.h" 17 #include "audio_errors.h" 18 #include "audio_policy_log.h" 19 #include "audio_zone_service.h" 20 #include "default_router.h" 21 #include "app_select_router.h" 22 #include "pair_device_router.h" 23 #include "cockpit_phone_router.h" 24 25 #include <thread> 26 #include <memory> 27 #include <vector> 28 using namespace testing::ext; 29 30 namespace OHOS { 31 namespace AudioStandard { 32 33 /** 34 * @tc.name : Test GetMediaRenderDevice. 35 * @tc.number: GetMediaRenderDevice_001 36 * @tc.desc : Test GetMediaRenderDevice interface. 37 */ 38 HWTEST(AudioRouterCenterUnitTest, GetMediaRenderDevice_001, TestSize.Level4) 39 { 40 StreamUsage streamUsage = STREAM_USAGE_MEDIA; 41 int32_t clientUID = 1000; 42 DefaultRouter defaultRouter; 43 std::shared_ptr<AudioDeviceDescriptor> actualDevice = 44 defaultRouter.GetMediaRenderDevice(streamUsage, clientUID); 45 EXPECT_EQ(actualDevice->deviceType_, DeviceType::DEVICE_TYPE_NONE); 46 } 47 48 /** 49 * @tc.name : Test GetCallRenderDevice. 50 * @tc.number: GetCallRenderDevice_001 51 * @tc.desc : Test GetCallRenderDevice interface. 52 */ 53 HWTEST(AudioRouterCenterUnitTest, GetCallRenderDevice_001, TestSize.Level4) 54 { 55 StreamUsage streamUsage = STREAM_USAGE_VOICE_MESSAGE; 56 int32_t clientUID = 1000; 57 DefaultRouter defaultRouter; 58 auto result = defaultRouter.GetCallRenderDevice(streamUsage, clientUID); 59 EXPECT_EQ(result->deviceType_, DeviceType::DEVICE_TYPE_NONE); 60 } 61 62 /** 63 * @tc.name : Test GetCallCaptureDevice. 64 * @tc.number: GetCallCaptureDevice_001 65 * @tc.desc : Test GetCallCaptureDevice interface. 66 */ 67 HWTEST(AudioRouterCenterUnitTest, GetCallCaptureDevice_001, TestSize.Level4) 68 { 69 SourceType sourceType = SOURCE_TYPE_MIC; 70 int32_t clientUID = 1000; 71 uint32_t sessionID = 123; 72 AppSelectRouter appSelectRouter; 73 auto result = appSelectRouter.GetCallCaptureDevice(sourceType, clientUID, sessionID); 74 EXPECT_NE(result, nullptr); 75 } 76 77 /** 78 * @tc.name : Test GetCallCaptureDevice. 79 * @tc.number: GetCallCaptureDevice_002 80 * @tc.desc : Test GetCallCaptureDevice interface. 81 */ 82 HWTEST(AudioRouterCenterUnitTest, GetCallCaptureDevice_002, TestSize.Level4) 83 { 84 SourceType sourceType = SOURCE_TYPE_MIC; 85 int32_t clientUID = 1000; 86 uint32_t sessionID = 0; 87 AppSelectRouter appSelectRouter; 88 auto result = appSelectRouter.GetCallCaptureDevice(sourceType, clientUID, sessionID); 89 EXPECT_NE(result, nullptr); 90 } 91 92 /** 93 * @tc.name : Test GetRecordCaptureDevice. 94 * @tc.number: GetRecordCaptureDevice_001 95 * @tc.desc : Test GetRecordCaptureDevice interface. 96 */ 97 HWTEST(AudioRouterCenterUnitTest, GetRecordCaptureDevice_001, TestSize.Level4) 98 { 99 SourceType sourceType = SOURCE_TYPE_MIC; 100 int32_t clientUID = 1000; 101 uint32_t sessionID = 123; 102 AppSelectRouter appSelectRouter; 103 shared_ptr<AudioDeviceDescriptor> actualDevice = 104 appSelectRouter.GetRecordCaptureDevice(sourceType, clientUID, sessionID); 105 EXPECT_NE(actualDevice, nullptr); 106 107 sessionID = 0; 108 actualDevice = appSelectRouter.GetRecordCaptureDevice(sourceType, clientUID, sessionID); 109 EXPECT_NE(actualDevice, nullptr); 110 } 111 112 /** 113 * @tc.name : Test PairDeviceRouter_GetCallCaptureDevice. 114 * @tc.number: PairDeviceRouter_GetCallCaptureDevice_001 115 * @tc.desc : Test PairDeviceRouter_GetCallCaptureDevice interface. 116 */ 117 HWTEST(AudioRouterCenterUnitTest, PairDeviceRouter_GetCallCaptureDevice_001, TestSize.Level4) 118 { 119 SourceType sourceType = SOURCE_TYPE_MIC; 120 int32_t clientUID = 1000; 121 uint32_t sessionID = 123; 122 PairDeviceRouter pairDeviceRouter; 123 std::shared_ptr<AudioDeviceDescriptor> desc = std::make_shared<AudioDeviceDescriptor>(); 124 desc->pairDeviceDescriptor_ = std::make_shared<AudioDeviceDescriptor>(); 125 desc->pairDeviceDescriptor_->connectState_ = CONNECTED; 126 desc->pairDeviceDescriptor_->exceptionFlag_ = false; 127 desc->pairDeviceDescriptor_->isEnable_ = true; 128 std::shared_ptr<AudioDeviceDescriptor> result = 129 pairDeviceRouter.GetCallCaptureDevice(sourceType, clientUID, sessionID); 130 EXPECT_NE(result, nullptr); 131 EXPECT_EQ(result->deviceType_, desc->pairDeviceDescriptor_->deviceType_); 132 } 133 134 /** 135 * @tc.name : Test PairDeviceRouter_GetCallCaptureDevice. 136 * @tc.number: PairDeviceRouter_GetCallCaptureDevice_002 137 * @tc.desc : Test PairDeviceRouter_GetCallCaptureDevice interface. 138 */ 139 HWTEST(AudioRouterCenterUnitTest, PairDeviceRouter_GetCallCaptureDevice_002, TestSize.Level4) 140 { 141 SourceType sourceType = SOURCE_TYPE_MIC; 142 int32_t clientUID = 1000; 143 uint32_t sessionID = 123; 144 PairDeviceRouter pairDeviceRouter; 145 std::shared_ptr<AudioDeviceDescriptor> desc = std::make_shared<AudioDeviceDescriptor>(); 146 desc->pairDeviceDescriptor_ = nullptr; 147 std::shared_ptr<AudioDeviceDescriptor> result = 148 pairDeviceRouter.GetCallCaptureDevice(sourceType, clientUID, sessionID); 149 EXPECT_NE(result, nullptr); 150 } 151 152 /** 153 * @tc.name : Test PairDeviceRouter_GetCallCaptureDevice. 154 * @tc.number: PairDeviceRouter_GetCallCaptureDevice_003 155 * @tc.desc : Test PairDeviceRouter_GetCallCaptureDevice interface. 156 */ 157 HWTEST(AudioRouterCenterUnitTest, PairDeviceRouter_GetCallCaptureDevice_003, TestSize.Level4) 158 { 159 SourceType sourceType = SOURCE_TYPE_MIC; 160 int32_t clientUID = 1000; 161 uint32_t sessionID = 123; 162 PairDeviceRouter pairDeviceRouter; 163 std::shared_ptr<AudioDeviceDescriptor> desc = std::make_shared<AudioDeviceDescriptor>(); 164 desc->pairDeviceDescriptor_ = std::make_shared<AudioDeviceDescriptor>(); 165 desc->pairDeviceDescriptor_->connectState_ = SUSPEND_CONNECTED; 166 std::shared_ptr<AudioDeviceDescriptor> result = 167 pairDeviceRouter.GetCallCaptureDevice(sourceType, clientUID, sessionID); 168 EXPECT_NE(result, nullptr); 169 } 170 171 /** 172 * @tc.name : Test PairDeviceRouter_GetCallCaptureDevice. 173 * @tc.number: PairDeviceRouter_GetCallCaptureDevice_004 174 * @tc.desc : Test PairDeviceRouter_GetCallCaptureDevice interface. 175 */ 176 HWTEST(AudioRouterCenterUnitTest, PairDeviceRouter_GetCallCaptureDevice_004, TestSize.Level4) 177 { 178 SourceType sourceType = SOURCE_TYPE_MIC; 179 int32_t clientUID = 1000; 180 uint32_t sessionID = 123; 181 PairDeviceRouter pairDeviceRouter; 182 std::shared_ptr<AudioDeviceDescriptor> desc = std::make_shared<AudioDeviceDescriptor>(); 183 desc->pairDeviceDescriptor_ = std::make_shared<AudioDeviceDescriptor>(); 184 desc->pairDeviceDescriptor_->exceptionFlag_ = true; 185 std::shared_ptr<AudioDeviceDescriptor> result = 186 pairDeviceRouter.GetCallCaptureDevice(sourceType, clientUID, sessionID); 187 EXPECT_NE(result, nullptr); 188 } 189 190 /** 191 * @tc.name : Test PairDeviceRouter_GetCallCaptureDevice. 192 * @tc.number: PairDeviceRouter_GetCallCaptureDevice_005 193 * @tc.desc : Test PairDeviceRouter_GetCallCaptureDevice interface. 194 */ 195 HWTEST(AudioRouterCenterUnitTest, PairDeviceRouter_GetCallCaptureDevice_005, TestSize.Level4) 196 { 197 SourceType sourceType = SOURCE_TYPE_MIC; 198 int32_t clientUID = 1000; 199 uint32_t sessionID = 123; 200 PairDeviceRouter pairDeviceRouter; 201 std::shared_ptr<AudioDeviceDescriptor> desc = std::make_shared<AudioDeviceDescriptor>(); 202 desc->pairDeviceDescriptor_ = std::make_shared<AudioDeviceDescriptor>(); 203 desc->pairDeviceDescriptor_->isEnable_ = false; 204 std::shared_ptr<AudioDeviceDescriptor> result = 205 pairDeviceRouter.GetCallCaptureDevice(sourceType, clientUID, sessionID); 206 EXPECT_NE(result, nullptr); 207 } 208 209 /** 210 * @tc.name : Test CockpitPhoneRouter_GetRingRenderDevices. 211 * @tc.number: CockpitPhoneRouter_GetRingRenderDevices_001 212 * @tc.desc : Test CockpitPhoneRouter_GetRingRenderDevices interface. 213 */ 214 HWTEST(AudioRouterCenterUnitTest, CockpitPhoneRouter_GetRingRenderDevices_001, TestSize.Level4) 215 { 216 StreamUsage streamUsage = STREAM_USAGE_ALARM; 217 int32_t clientUID = 1000; 218 CockpitPhoneRouter cockpitPhoneRouter; 219 std::vector<std::shared_ptr<AudioDeviceDescriptor>> descs = 220 cockpitPhoneRouter.GetRingRenderDevices(streamUsage, clientUID); 221 EXPECT_TRUE(descs.empty()); 222 } 223 } // namespace AudioStandard 224 } // namespace OHOS 225