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