xref: /btstack/test/mock/mock_att_server.c (revision 0b0c01c9424108fe4b494865f98972f960539ae2)
1*0b0c01c9SMilanka Ringwald #include <stdint.h>
2*0b0c01c9SMilanka Ringwald #include <stdio.h>
3*0b0c01c9SMilanka Ringwald #include <string.h>
4*0b0c01c9SMilanka Ringwald 
5*0b0c01c9SMilanka Ringwald #include "hci.h"
6*0b0c01c9SMilanka Ringwald #include "l2cap.h"
7*0b0c01c9SMilanka Ringwald 
8*0b0c01c9SMilanka Ringwald #include "ble/att_db.h"
9*0b0c01c9SMilanka Ringwald #include "ble/att_server.h"
10*0b0c01c9SMilanka Ringwald #include "btstack_debug.h"
11*0b0c01c9SMilanka Ringwald #include "bluetooth.h"
12*0b0c01c9SMilanka Ringwald 
13*0b0c01c9SMilanka Ringwald #include "mock_att_server.h"
14*0b0c01c9SMilanka Ringwald 
15*0b0c01c9SMilanka Ringwald #include "CppUTest/TestHarness.h"
16*0b0c01c9SMilanka Ringwald #include "CppUTestExt/MockSupport.h"
17*0b0c01c9SMilanka Ringwald 
18*0b0c01c9SMilanka Ringwald static att_service_handler_t * service;
19*0b0c01c9SMilanka Ringwald 
20*0b0c01c9SMilanka Ringwald att_service_handler_t * mock_att_server_get_service(void){
21*0b0c01c9SMilanka Ringwald     return service;
22*0b0c01c9SMilanka Ringwald }
23*0b0c01c9SMilanka Ringwald 
24*0b0c01c9SMilanka Ringwald uint16_t mock_att_service_read_callback(hci_con_handle_t con_handle, uint16_t attribute_handle, uint16_t offset, uint8_t * buffer, uint16_t buffer_size){
25*0b0c01c9SMilanka Ringwald     btstack_assert(service != NULL);
26*0b0c01c9SMilanka Ringwald     btstack_assert(service->read_callback != NULL);
27*0b0c01c9SMilanka Ringwald     return (service->read_callback)(con_handle, attribute_handle, offset, buffer, buffer_size);
28*0b0c01c9SMilanka Ringwald }
29*0b0c01c9SMilanka Ringwald 
30*0b0c01c9SMilanka Ringwald uint16_t mock_att_service_write_callback(hci_con_handle_t con_handle, uint16_t attribute_handle, uint16_t transaction_mode, uint16_t offset, const uint8_t *buffer, uint16_t buffer_size){
31*0b0c01c9SMilanka Ringwald     btstack_assert(service != NULL);
32*0b0c01c9SMilanka Ringwald     btstack_assert(service->write_callback != NULL);
33*0b0c01c9SMilanka Ringwald     return (service->write_callback)(con_handle, attribute_handle, transaction_mode, offset, (uint8_t *) buffer, buffer_size);
34*0b0c01c9SMilanka Ringwald }
35*0b0c01c9SMilanka Ringwald 
36*0b0c01c9SMilanka Ringwald void att_server_register_service_handler(att_service_handler_t * handler){
37*0b0c01c9SMilanka Ringwald     service = handler;
38*0b0c01c9SMilanka Ringwald }
39*0b0c01c9SMilanka Ringwald 
40*0b0c01c9SMilanka Ringwald uint16_t att_server_get_mtu(hci_con_handle_t con_handle){
41*0b0c01c9SMilanka Ringwald     UNUSED(con_handle);
42*0b0c01c9SMilanka Ringwald     mock().actualCall("att_server_get_mtu");
43*0b0c01c9SMilanka Ringwald     return ATT_DEFAULT_MTU;
44*0b0c01c9SMilanka Ringwald }
45*0b0c01c9SMilanka Ringwald 
46*0b0c01c9SMilanka Ringwald int att_server_indicate(hci_con_handle_t con_handle, uint16_t attribute_handle, const uint8_t *value, uint16_t value_len){
47*0b0c01c9SMilanka Ringwald     UNUSED(con_handle);
48*0b0c01c9SMilanka Ringwald     UNUSED(attribute_handle);
49*0b0c01c9SMilanka Ringwald     UNUSED(value);
50*0b0c01c9SMilanka Ringwald     UNUSED(value_len);
51*0b0c01c9SMilanka Ringwald     mock().actualCall("att_server_indicate");
52*0b0c01c9SMilanka Ringwald     return ERROR_CODE_SUCCESS;
53*0b0c01c9SMilanka Ringwald }
54*0b0c01c9SMilanka Ringwald 
55*0b0c01c9SMilanka Ringwald int att_server_notify(hci_con_handle_t con_handle, uint16_t attribute_handle, const uint8_t *value, uint16_t value_len){
56*0b0c01c9SMilanka Ringwald     UNUSED(con_handle);
57*0b0c01c9SMilanka Ringwald     UNUSED(attribute_handle);
58*0b0c01c9SMilanka Ringwald     UNUSED(value);
59*0b0c01c9SMilanka Ringwald     UNUSED(value_len);
60*0b0c01c9SMilanka Ringwald     mock().actualCall("att_server_notify");
61*0b0c01c9SMilanka Ringwald     return ERROR_CODE_SUCCESS;
62*0b0c01c9SMilanka Ringwald }
63*0b0c01c9SMilanka Ringwald 
64*0b0c01c9SMilanka Ringwald int att_server_register_can_send_now_callback(btstack_context_callback_registration_t * callback_registration, hci_con_handle_t con_handle){
65*0b0c01c9SMilanka Ringwald     UNUSED(callback_registration);
66*0b0c01c9SMilanka Ringwald     UNUSED(con_handle);
67*0b0c01c9SMilanka Ringwald     mock().actualCall("att_server_register_can_send_now_callback");
68*0b0c01c9SMilanka Ringwald     return ERROR_CODE_SUCCESS;
69*0b0c01c9SMilanka Ringwald }
70*0b0c01c9SMilanka Ringwald 
71*0b0c01c9SMilanka Ringwald int att_server_request_to_send_notification(btstack_context_callback_registration_t * callback_registration, hci_con_handle_t con_handle){
72*0b0c01c9SMilanka Ringwald     UNUSED(callback_registration);
73*0b0c01c9SMilanka Ringwald     UNUSED(con_handle);
74*0b0c01c9SMilanka Ringwald     mock().actualCall("att_server_request_to_send_notification");
75*0b0c01c9SMilanka Ringwald     return ERROR_CODE_SUCCESS;
76*0b0c01c9SMilanka Ringwald }
77*0b0c01c9SMilanka Ringwald 
78*0b0c01c9SMilanka Ringwald void hci_add_event_handler(btstack_packet_callback_registration_t * callback_handler){
79*0b0c01c9SMilanka Ringwald     UNUSED(callback_handler);
80*0b0c01c9SMilanka Ringwald }
81*0b0c01c9SMilanka Ringwald 
82*0b0c01c9SMilanka Ringwald uint16_t l2cap_max_mtu(void){
83*0b0c01c9SMilanka Ringwald     return HCI_ACL_PAYLOAD_SIZE - L2CAP_HEADER_SIZE;
84*0b0c01c9SMilanka Ringwald }
85*0b0c01c9SMilanka Ringwald 
86*0b0c01c9SMilanka Ringwald void l2cap_register_packet_handler(void (*handler)(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size)){
87*0b0c01c9SMilanka Ringwald }