#ifndef BDD_FOR_C_MOCKS_H #define BDD_FOR_C_MOCKS_H #define mock_call_count_t unsigned char #define mock(X) static mock_call_count_t actual_##X = 0; #define mock_mode_t unsigned char #define mock_modes(X) static mock_mode_t current_mock_mode_##X = 0; enum mock_modes_##X #define mock_mode(X, Y) current_mock_mode_##X = Y #define mock_mode_if(X, Y) if (current_mock_mode_##X == Y) #define mock_return(X) actual_##X += 1; return #define mock_reset(X) actual_##X = 0 #define mock_get_actual_calls(X) (mock_call_count_t) actual_##X #define mock_set_expected_calls(X, Y) static const mock_call_count_t expected_##X = Y #define mock_get_expected_calls(X) (mock_call_count_t) expected_##X #define mock_is_called(X) mock_get_actual_calls(X) > 0 #endif