1 /* 2 * Copyright 2022 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at: 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #pragma once 18 19 #include <gmock/gmock.h> 20 21 #include <vector> 22 23 #include "codec_manager.h" 24 25 namespace bluetooth::le_audio { 26 class LeAudioSinkAudioHalClient; 27 class LeAudioSourceAudioHalClient; 28 } // namespace bluetooth::le_audio 29 30 class MockCodecManager { 31 public: 32 static MockCodecManager* GetInstance(); 33 34 MockCodecManager() = default; 35 MockCodecManager(const MockCodecManager&) = delete; 36 MockCodecManager& operator=(const MockCodecManager&) = delete; 37 38 virtual ~MockCodecManager() = default; 39 40 MOCK_METHOD((bluetooth::le_audio::types::CodecLocation), GetCodecLocation, (), (const)); 41 MOCK_METHOD((bool), IsDualBiDirSwbSupported, (), (const)); 42 43 MOCK_METHOD((bool), UpdateActiveUnicastAudioHalClient, 44 (::bluetooth::le_audio::LeAudioSourceAudioHalClient * source_unicast_client, 45 ::bluetooth::le_audio::LeAudioSinkAudioHalClient* sink_unicast_client, 46 bool is_active)); 47 48 MOCK_METHOD((bool), UpdateActiveBroadcastAudioHalClient, 49 (::bluetooth::le_audio::LeAudioSourceAudioHalClient * source_broadcast_client, 50 bool is_active)); 51 52 MOCK_METHOD((void), UpdateActiveAudioConfig, 53 (const bluetooth::le_audio::types::BidirectionalPair< 54 bluetooth::le_audio::stream_parameters>& stream_params, 55 bluetooth::le_audio::types::BidirectionalPair<uint16_t> delays_ms, 56 std::function<void(const ::bluetooth::le_audio::offload_config& config, 57 uint8_t direction)> 58 update_receiver)); 59 MOCK_METHOD( 60 (std::unique_ptr<bluetooth::le_audio::set_configurations::AudioSetConfiguration>), 61 GetCodecConfig, 62 (const bluetooth::le_audio::CodecManager::UnicastConfigurationRequirements& requirements, 63 bluetooth::le_audio::CodecManager::UnicastConfigurationProvider), 64 (const)); 65 MOCK_METHOD((bool), CheckCodecConfigIsBiDirSwb, 66 (const bluetooth::le_audio::set_configurations::AudioSetConfiguration& config), 67 (const)); 68 MOCK_METHOD((bool), CheckCodecConfigIsDualBiDirSwb, 69 (const bluetooth::le_audio::set_configurations::AudioSetConfiguration& config), 70 (const)); 71 MOCK_METHOD((std::unique_ptr<bluetooth::le_audio::broadcaster::BroadcastConfiguration>), 72 GetBroadcastConfig, 73 (const bluetooth::le_audio::CodecManager::BroadcastConfigurationRequirements&), 74 (const)); 75 MOCK_METHOD((std::vector<bluetooth::le_audio::btle_audio_codec_config_t>), 76 GetLocalAudioOutputCodecCapa, ()); 77 MOCK_METHOD((std::vector<bluetooth::le_audio::btle_audio_codec_config_t>), 78 GetLocalAudioInputCodecCapa, ()); 79 MOCK_METHOD((void), UpdateBroadcastConnHandle, 80 (const std::vector<uint16_t>& conn_handle, 81 std::function<void(const ::bluetooth::le_audio::broadcast_offload_config& config)> 82 update_receiver)); 83 MOCK_METHOD((bool), UpdateCisConfiguration, 84 (const std::vector<struct bluetooth::le_audio::types::cis>& cises, 85 const bluetooth::le_audio::stream_parameters& stream_params, uint8_t direction), 86 (const)); 87 MOCK_METHOD((void), ClearCisConfiguration, (uint8_t direction)); 88 MOCK_METHOD((bool), IsUsingCodecExtensibility, (), (const)); 89 90 MOCK_METHOD((void), Start, ()); 91 MOCK_METHOD((void), Stop, ()); 92 }; 93