1 /*
2  * Copyright 2020 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 #include <map>
18 #include <string>
19 #include <vector>
20 #include "stack/avdt/avdt_int.h"
21 
22 extern std::map<std::string, int> mock_function_count_map;
23 
24 /*
25  * TODO: This way of mocking is primitive.
26  * Need to consider more sophisticated existing methods.
27  */
28 
29 static std::vector<uint8_t> _rsp_sig_ids{};
30 
avdt_msg_send_rsp(AvdtpCcb * p_ccb,uint8_t sig_id,tAVDT_MSG * p_params)31 void avdt_msg_send_rsp(AvdtpCcb* p_ccb, uint8_t sig_id, tAVDT_MSG* p_params) {
32   mock_function_count_map[__func__]++;
33   _rsp_sig_ids.push_back(sig_id);
34 }
35 
mock_avdt_msg_send_rsp_get_count(void)36 size_t mock_avdt_msg_send_rsp_get_count(void) {
37   return _rsp_sig_ids.size();
38 }
39 
mock_avdt_msg_send_rsp_clear_history(void)40 void mock_avdt_msg_send_rsp_clear_history(void) {
41   _rsp_sig_ids.clear();
42 }
43 
mock_avdt_msg_send_rsp_get_sig_id_at(size_t nth)44 uint8_t mock_avdt_msg_send_rsp_get_sig_id_at(size_t nth) {
45   return _rsp_sig_ids[nth];
46 }
47 
avdt_msg_ind(AvdtpCcb * p_ccb,BT_HDR * p_buf)48 void avdt_msg_ind(AvdtpCcb* p_ccb, BT_HDR* p_buf) {
49   mock_function_count_map[__func__]++;
50 }
51 
avdt_msg_send_rej(AvdtpCcb * p_ccb,uint8_t sig_id,tAVDT_MSG * p_params)52 void avdt_msg_send_rej(AvdtpCcb* p_ccb, uint8_t sig_id, tAVDT_MSG* p_params) {
53   mock_function_count_map[__func__]++;
54 }
55 
56 static std::vector<uint8_t> _cmd_sig_ids{};
57 
avdt_msg_send_cmd(AvdtpCcb * p_ccb,void * p_scb,uint8_t sig_id,tAVDT_MSG * p_params)58 void avdt_msg_send_cmd(AvdtpCcb* p_ccb, void* p_scb, uint8_t sig_id,
59                        tAVDT_MSG* p_params) {
60   mock_function_count_map[__func__]++;
61   _cmd_sig_ids.push_back(sig_id);
62 }
63 
mock_avdt_msg_send_cmd_get_count(void)64 size_t mock_avdt_msg_send_cmd_get_count(void) {
65   return _cmd_sig_ids.size();
66 }
67 
mock_avdt_msg_send_cmd_clear_history(void)68 void mock_avdt_msg_send_cmd_clear_history(void) {
69   _cmd_sig_ids.clear();
70 }
71 
mock_avdt_msg_send_cmd_get_sig_id_at(size_t nth)72 uint8_t mock_avdt_msg_send_cmd_get_sig_id_at(size_t nth) {
73   return _cmd_sig_ids[nth];
74 }
75 
avdt_msg_send(AvdtpCcb * p_ccb,BT_HDR * p_msg)76 bool avdt_msg_send(AvdtpCcb* p_ccb, BT_HDR* p_msg) {
77   mock_function_count_map[__func__]++;
78   return true;
79 }
80 
81 const uint8_t avdt_msg_rej_2_evt[AVDT_CCB_NUM_ACTIONS] = { };