blob: 67eebf53bbe3ffdd7be4b42b964f98f3ca0db5fa [file] [log] [blame]
/*
* Copyright (c) 2023 Codecoup
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef MOCKS_GATT_EXPECTS_H_
#define MOCKS_GATT_EXPECTS_H_
#include <zephyr/bluetooth/gatt.h>
#include "gatt.h"
#include "expects_util.h"
#define expect_bt_gatt_attr_read_called_once(_conn, _attr, _buf, _buf_len, _offset, _value, \
_value_len) \
do { \
const char *func_name = "bt_gatt_attr_read"; \
\
zassert_equal(1, bt_gatt_attr_read_fake.call_count, \
"'%s()' was called %u times, but expected once", \
func_name, bt_gatt_attr_read_fake.call_count); \
\
IF_NOT_EMPTY(_conn, ( \
zassert_equal_ptr(_conn, bt_gatt_attr_read_fake.arg0_val, \
"'%s()' was called with incorrect '%s' value", \
func_name, "conn");)) \
\
IF_NOT_EMPTY(_attr, ( \
zassert_equal_ptr(_attr, bt_gatt_attr_read_fake.arg1_val, \
"'%s()' was called with incorrect '%s' value", \
func_name, "attr");)) \
\
IF_NOT_EMPTY(_buf, ( \
zassert_equal_ptr(_buf, bt_gatt_attr_read_fake.arg2_val, \
"'%s()' was called with incorrect '%s' value", \
func_name, "buf");)) \
\
IF_NOT_EMPTY(_buf_len, ( \
zassert_equal(_buf_len, bt_gatt_attr_read_fake.arg3_val, \
"'%s()' was called with incorrect '%s' value", \
func_name, "_buf_len");)) \
\
IF_NOT_EMPTY(_offset, ( \
zassert_equal(_offset, bt_gatt_attr_read_fake.arg4_val, \
"'%s()' was called with incorrect '%s' value", \
func_name, "offset");)) \
\
/* assert if _data is valid, but _len is empty */ \
IF_EMPTY(_value_len, (IF_NOT_EMPTY(_value, (zassert_unreachable();)))) \
\
IF_NOT_EMPTY(_value_len, ( \
zassert_equal(_value_len, bt_gatt_attr_read_fake.arg6_val, \
"'%s()' was called with incorrect '%s' value", \
func_name, "value_len"); \
expect_data(func_name, "value", _value, bt_gatt_attr_read_fake.arg5_val, \
_value_len);)) \
} while (0)
#define expect_bt_gatt_notify_cb_called_once(_conn, _uuid, _attr, _data, _len) \
do { \
const char *func_name = "bt_gatt_notify_cb"; \
struct bt_gatt_notify_params *params; \
\
IF_NOT_EMPTY(_conn, ( \
zassert_equal_ptr(_conn, mock_bt_gatt_notify_cb_fake.arg0_val, \
"'%s()' was called with incorrect '%s' value", \
func_name, "conn");)) \
\
params = mock_bt_gatt_notify_cb_fake.arg1_val; \
\
/* params->uuid is optional */ \
if (params->uuid) { \
IF_NOT_EMPTY(_uuid, ( \
zassert_true(bt_uuid_cmp(_uuid, params->uuid) == 0, \
"'%s()' was called with incorrect '%s' value", \
func_name, "params->uuid");)) \
} else { \
IF_NOT_EMPTY(_attr, ( \
zassert_equal_ptr(_attr, params->attr, \
"'%s()' was called with incorrect '%s' value", \
func_name, "params->attr");)) \
} \
\
/* assert if _data is valid, but _len is empty */ \
IF_EMPTY(_len, (IF_NOT_EMPTY(_data, (zassert_unreachable();)))) \
\
IF_NOT_EMPTY(_len, ( \
zassert_equal(_len, params->len, \
"'%s()' was called with incorrect '%s' value", \
func_name, "params->len"); \
expect_data(func_name, "params->data", _data, params->data, _len);)) \
} while (0)
static inline void expect_bt_gatt_attr_read_not_called(void)
{
const char *func_name = "bt_gatt_attr_read";
zassert_equal(0, bt_gatt_attr_read_fake.call_count,
"'%s()' was called unexpectedly", func_name);
}
static inline void expect_bt_gatt_notify_cb_not_called(void)
{
const char *func_name = "bt_gatt_notify_cb";
zassert_equal(0, mock_bt_gatt_notify_cb_fake.call_count,
"'%s()' was called unexpectedly", func_name);
}
#endif /* MOCKS_GATT_EXPECTS_H_ */