mirror of
https://github.com/alexhopeoconnor/arduino-home-assistant.git
synced 2026-10-04 02:48:13 +10:00
Replace the legacy tests/ tree (AUnit, EpoxyDuino, Make, AUniter) with PlatformIO Unity suites under test/, shared helpers, and platformio.ini. Remove AUnitHelpers and drop the AUnit include from ArduinoHA test builds. Refresh docs to Markdown-only and document the test workflow in CHANGELOG.
336 lines
17 KiB
C++
336 lines
17 KiB
C++
#include <unity.h>
|
|
#include <Arduino.h>
|
|
#include "test_main.h"
|
|
|
|
static TestCase tests[] = {
|
|
TEST_ENTRY(test_CameraTest_availability),
|
|
TEST_ENTRY(test_CameraTest_default_entity_id_setter),
|
|
TEST_ENTRY(test_CameraTest_default_params),
|
|
TEST_ENTRY(test_CameraTest_device_discovery_payload),
|
|
TEST_ENTRY(test_CameraTest_encoding_base64),
|
|
TEST_ENTRY(test_CameraTest_entity_category_setter),
|
|
TEST_ENTRY(test_CameraTest_extended_unique_id),
|
|
TEST_ENTRY(test_CameraTest_icon_setter),
|
|
TEST_ENTRY(test_CameraTest_invalid_unique_id),
|
|
TEST_ENTRY(test_CameraTest_name_setter),
|
|
TEST_ENTRY(test_CameraTest_object_id_setter),
|
|
TEST_ENTRY(test_CameraTest_publish_image),
|
|
TEST_ENTRY(test_CameraTest_publish_nullptr),
|
|
TEST_ENTRY(test_CoverTest_availability),
|
|
TEST_ENTRY(test_CoverTest_command_close),
|
|
TEST_ENTRY(test_CoverTest_command_invalid),
|
|
TEST_ENTRY(test_CoverTest_command_open),
|
|
TEST_ENTRY(test_CoverTest_command_stop),
|
|
TEST_ENTRY(test_CoverTest_command_subscription),
|
|
TEST_ENTRY(test_CoverTest_current_position_setter),
|
|
TEST_ENTRY(test_CoverTest_current_state_setter),
|
|
TEST_ENTRY(test_CoverTest_default_entity_id_setter),
|
|
TEST_ENTRY(test_CoverTest_default_params),
|
|
TEST_ENTRY(test_CoverTest_default_params_with_position),
|
|
TEST_ENTRY(test_CoverTest_device_class),
|
|
TEST_ENTRY(test_CoverTest_device_discovery_payload),
|
|
TEST_ENTRY(test_CoverTest_different_cover_command),
|
|
TEST_ENTRY(test_CoverTest_entity_category_setter),
|
|
TEST_ENTRY(test_CoverTest_extended_unique_id),
|
|
TEST_ENTRY(test_CoverTest_icon_setter),
|
|
TEST_ENTRY(test_CoverTest_invalid_unique_id),
|
|
TEST_ENTRY(test_CoverTest_name_setter),
|
|
TEST_ENTRY(test_CoverTest_object_id_setter),
|
|
TEST_ENTRY(test_CoverTest_optimistic_setter),
|
|
TEST_ENTRY(test_CoverTest_publish_last_known_state),
|
|
TEST_ENTRY(test_CoverTest_publish_last_known_state_with_position),
|
|
TEST_ENTRY(test_CoverTest_publish_nothing_if_retained),
|
|
TEST_ENTRY(test_CoverTest_publish_position),
|
|
TEST_ENTRY(test_CoverTest_publish_position_debounce),
|
|
TEST_ENTRY(test_CoverTest_publish_position_debounce_skip),
|
|
TEST_ENTRY(test_CoverTest_publish_position_max),
|
|
TEST_ENTRY(test_CoverTest_publish_state_closed),
|
|
TEST_ENTRY(test_CoverTest_publish_state_closing),
|
|
TEST_ENTRY(test_CoverTest_publish_state_debounce),
|
|
TEST_ENTRY(test_CoverTest_publish_state_debounce_skip),
|
|
TEST_ENTRY(test_CoverTest_publish_state_open),
|
|
TEST_ENTRY(test_CoverTest_publish_state_opening),
|
|
TEST_ENTRY(test_CoverTest_publish_state_stopped),
|
|
TEST_ENTRY(test_CoverTest_retain_setter),
|
|
TEST_ENTRY(test_FanTest_availability),
|
|
TEST_ENTRY(test_FanTest_current_speed_setter),
|
|
TEST_ENTRY(test_FanTest_current_state_setter),
|
|
TEST_ENTRY(test_FanTest_default_entity_id_setter),
|
|
TEST_ENTRY(test_FanTest_default_params),
|
|
TEST_ENTRY(test_FanTest_default_params_with_speed),
|
|
TEST_ENTRY(test_FanTest_device_discovery_payload),
|
|
TEST_ENTRY(test_FanTest_entity_category_setter),
|
|
TEST_ENTRY(test_FanTest_extended_unique_id),
|
|
TEST_ENTRY(test_FanTest_icon_setter),
|
|
TEST_ENTRY(test_FanTest_invalid_unique_id),
|
|
TEST_ENTRY(test_FanTest_name_setter),
|
|
TEST_ENTRY(test_FanTest_object_id_setter),
|
|
TEST_ENTRY(test_FanTest_optimistic_setter),
|
|
TEST_ENTRY(test_FanTest_publish_last_known_speed),
|
|
TEST_ENTRY(test_FanTest_publish_last_known_state),
|
|
TEST_ENTRY(test_FanTest_publish_nothing_if_retained),
|
|
TEST_ENTRY(test_FanTest_publish_nothing_if_speed_feature_is_disabled),
|
|
TEST_ENTRY(test_FanTest_publish_speed),
|
|
TEST_ENTRY(test_FanTest_publish_speed_debounce),
|
|
TEST_ENTRY(test_FanTest_publish_speed_debounce_skip),
|
|
TEST_ENTRY(test_FanTest_publish_state),
|
|
TEST_ENTRY(test_FanTest_publish_state_debounce),
|
|
TEST_ENTRY(test_FanTest_publish_state_debounce_skip),
|
|
TEST_ENTRY(test_FanTest_retain_setter),
|
|
TEST_ENTRY(test_FanTest_speed_command_different_fan),
|
|
TEST_ENTRY(test_FanTest_speed_command_half),
|
|
TEST_ENTRY(test_FanTest_speed_command_in_range),
|
|
TEST_ENTRY(test_FanTest_speed_command_invalid),
|
|
TEST_ENTRY(test_FanTest_speed_command_max),
|
|
TEST_ENTRY(test_FanTest_speed_command_subscription),
|
|
TEST_ENTRY(test_FanTest_speed_range_setter),
|
|
TEST_ENTRY(test_FanTest_speed_range_setter_feature_disabled),
|
|
TEST_ENTRY(test_FanTest_state_command_different_fan),
|
|
TEST_ENTRY(test_FanTest_state_command_off),
|
|
TEST_ENTRY(test_FanTest_state_command_on),
|
|
TEST_ENTRY(test_FanTest_state_command_subscription),
|
|
TEST_ENTRY(test_HVACTest_aux_command_different_fan),
|
|
TEST_ENTRY(test_HVACTest_aux_command_subscription),
|
|
TEST_ENTRY(test_HVACTest_aux_state_command_off),
|
|
TEST_ENTRY(test_HVACTest_aux_state_command_on),
|
|
TEST_ENTRY(test_HVACTest_availability),
|
|
TEST_ENTRY(test_HVACTest_config_with_action),
|
|
TEST_ENTRY(test_HVACTest_config_with_aux),
|
|
TEST_ENTRY(test_HVACTest_config_with_fan),
|
|
TEST_ENTRY(test_HVACTest_config_with_modes),
|
|
TEST_ENTRY(test_HVACTest_config_with_power),
|
|
TEST_ENTRY(test_HVACTest_config_with_swing),
|
|
TEST_ENTRY(test_HVACTest_config_with_target_temperature_p1),
|
|
TEST_ENTRY(test_HVACTest_config_with_target_temperature_p2),
|
|
TEST_ENTRY(test_HVACTest_config_with_target_temperature_p3),
|
|
TEST_ENTRY(test_HVACTest_default_entity_id_setter),
|
|
TEST_ENTRY(test_HVACTest_default_params),
|
|
TEST_ENTRY(test_HVACTest_device_discovery_payload),
|
|
TEST_ENTRY(test_HVACTest_entity_category_setter),
|
|
TEST_ENTRY(test_HVACTest_extended_unique_id),
|
|
TEST_ENTRY(test_HVACTest_fan_mode_command_auto),
|
|
TEST_ENTRY(test_HVACTest_fan_mode_command_different),
|
|
TEST_ENTRY(test_HVACTest_fan_mode_command_high),
|
|
TEST_ENTRY(test_HVACTest_fan_mode_command_invalid),
|
|
TEST_ENTRY(test_HVACTest_fan_mode_command_low),
|
|
TEST_ENTRY(test_HVACTest_fan_mode_command_medium),
|
|
TEST_ENTRY(test_HVACTest_fan_mode_command_subscription),
|
|
TEST_ENTRY(test_HVACTest_fan_modes_setter_auto_only),
|
|
TEST_ENTRY(test_HVACTest_fan_modes_setter_high_only),
|
|
TEST_ENTRY(test_HVACTest_fan_modes_setter_low_only),
|
|
TEST_ENTRY(test_HVACTest_fan_modes_setter_medium_only),
|
|
TEST_ENTRY(test_HVACTest_fan_modes_setter_mixed),
|
|
TEST_ENTRY(test_HVACTest_icon_setter),
|
|
TEST_ENTRY(test_HVACTest_invalid_unique_id),
|
|
TEST_ENTRY(test_HVACTest_max_temp_setter),
|
|
TEST_ENTRY(test_HVACTest_max_temp_setter_p2),
|
|
TEST_ENTRY(test_HVACTest_min_temp_setter),
|
|
TEST_ENTRY(test_HVACTest_min_temp_setter_p2),
|
|
TEST_ENTRY(test_HVACTest_mode_command_auto),
|
|
TEST_ENTRY(test_HVACTest_mode_command_cool),
|
|
TEST_ENTRY(test_HVACTest_mode_command_dry),
|
|
TEST_ENTRY(test_HVACTest_mode_command_fan_only),
|
|
TEST_ENTRY(test_HVACTest_mode_command_heat),
|
|
TEST_ENTRY(test_HVACTest_mode_command_off),
|
|
TEST_ENTRY(test_HVACTest_mode_command_subscription),
|
|
TEST_ENTRY(test_HVACTest_modes_setter_auto_only),
|
|
TEST_ENTRY(test_HVACTest_modes_setter_cool_only),
|
|
TEST_ENTRY(test_HVACTest_modes_setter_dry_only),
|
|
TEST_ENTRY(test_HVACTest_modes_setter_fan_only_only),
|
|
TEST_ENTRY(test_HVACTest_modes_setter_heat_only),
|
|
TEST_ENTRY(test_HVACTest_modes_setter_mixed),
|
|
TEST_ENTRY(test_HVACTest_modes_setter_off_only),
|
|
TEST_ENTRY(test_HVACTest_name_setter),
|
|
TEST_ENTRY(test_HVACTest_object_id_setter),
|
|
TEST_ENTRY(test_HVACTest_power_command_different),
|
|
TEST_ENTRY(test_HVACTest_power_command_off),
|
|
TEST_ENTRY(test_HVACTest_power_command_on),
|
|
TEST_ENTRY(test_HVACTest_power_command_subscription),
|
|
TEST_ENTRY(test_HVACTest_publish_action_cooling),
|
|
TEST_ENTRY(test_HVACTest_publish_action_debounce),
|
|
TEST_ENTRY(test_HVACTest_publish_action_debounce_skip),
|
|
TEST_ENTRY(test_HVACTest_publish_action_drying),
|
|
TEST_ENTRY(test_HVACTest_publish_action_fan),
|
|
TEST_ENTRY(test_HVACTest_publish_action_heating),
|
|
TEST_ENTRY(test_HVACTest_publish_action_idle),
|
|
TEST_ENTRY(test_HVACTest_publish_action_off),
|
|
TEST_ENTRY(test_HVACTest_publish_action_on_connect),
|
|
TEST_ENTRY(test_HVACTest_publish_aux_state_debounce),
|
|
TEST_ENTRY(test_HVACTest_publish_aux_state_debounce_skip),
|
|
TEST_ENTRY(test_HVACTest_publish_aux_state_on),
|
|
TEST_ENTRY(test_HVACTest_publish_aux_state_on_connect),
|
|
TEST_ENTRY(test_HVACTest_publish_current_temperature),
|
|
TEST_ENTRY(test_HVACTest_publish_current_temperature_debounce),
|
|
TEST_ENTRY(test_HVACTest_publish_current_temperature_debounce_skip),
|
|
TEST_ENTRY(test_HVACTest_publish_current_temperature_on_connect),
|
|
TEST_ENTRY(test_HVACTest_publish_current_temperature_p2),
|
|
TEST_ENTRY(test_HVACTest_publish_current_temperature_p3),
|
|
TEST_ENTRY(test_HVACTest_publish_fan_mode_auto),
|
|
TEST_ENTRY(test_HVACTest_publish_fan_mode_debounce),
|
|
TEST_ENTRY(test_HVACTest_publish_fan_mode_debounce_skip),
|
|
TEST_ENTRY(test_HVACTest_publish_fan_mode_high),
|
|
TEST_ENTRY(test_HVACTest_publish_fan_mode_low),
|
|
TEST_ENTRY(test_HVACTest_publish_fan_mode_medium),
|
|
TEST_ENTRY(test_HVACTest_publish_fan_mode_on_connect),
|
|
TEST_ENTRY(test_HVACTest_publish_mode_auto),
|
|
TEST_ENTRY(test_HVACTest_publish_mode_cool),
|
|
TEST_ENTRY(test_HVACTest_publish_mode_dry),
|
|
TEST_ENTRY(test_HVACTest_publish_mode_fan_only),
|
|
TEST_ENTRY(test_HVACTest_publish_mode_heat),
|
|
TEST_ENTRY(test_HVACTest_publish_mode_off),
|
|
TEST_ENTRY(test_HVACTest_publish_mode_on_connect),
|
|
TEST_ENTRY(test_HVACTest_publish_nothing_if_retained),
|
|
TEST_ENTRY(test_HVACTest_publish_swing_mode_debounce),
|
|
TEST_ENTRY(test_HVACTest_publish_swing_mode_debounce_skip),
|
|
TEST_ENTRY(test_HVACTest_publish_swing_mode_off),
|
|
TEST_ENTRY(test_HVACTest_publish_swing_mode_on),
|
|
TEST_ENTRY(test_HVACTest_publish_swing_mode_on_connect),
|
|
TEST_ENTRY(test_HVACTest_publish_target_temperature),
|
|
TEST_ENTRY(test_HVACTest_publish_target_temperature_debounce),
|
|
TEST_ENTRY(test_HVACTest_publish_target_temperature_debounce_skip),
|
|
TEST_ENTRY(test_HVACTest_publish_target_temperature_on_connect),
|
|
TEST_ENTRY(test_HVACTest_publish_target_temperature_p2),
|
|
TEST_ENTRY(test_HVACTest_publish_target_temperature_p3),
|
|
TEST_ENTRY(test_HVACTest_retain_setter),
|
|
TEST_ENTRY(test_HVACTest_swing_mode_command_different),
|
|
TEST_ENTRY(test_HVACTest_swing_mode_command_invalid),
|
|
TEST_ENTRY(test_HVACTest_swing_mode_command_off),
|
|
TEST_ENTRY(test_HVACTest_swing_mode_command_on),
|
|
TEST_ENTRY(test_HVACTest_swing_mode_command_subscription),
|
|
TEST_ENTRY(test_HVACTest_swing_modes_setter_off_only),
|
|
TEST_ENTRY(test_HVACTest_swing_modes_setter_on_only),
|
|
TEST_ENTRY(test_HVACTest_target_temperature_command_different),
|
|
TEST_ENTRY(test_HVACTest_target_temperature_command_invalid),
|
|
TEST_ENTRY(test_HVACTest_target_temperature_command_p1),
|
|
TEST_ENTRY(test_HVACTest_target_temperature_command_p2),
|
|
TEST_ENTRY(test_HVACTest_target_temperature_command_p3),
|
|
TEST_ENTRY(test_HVACTest_target_temperature_command_subscription),
|
|
TEST_ENTRY(test_HVACTest_temperature_unit_c_setter),
|
|
TEST_ENTRY(test_HVACTest_temperature_unit_f_setter),
|
|
TEST_ENTRY(test_HVACTest_temp_step_setter),
|
|
TEST_ENTRY(test_HVACTest_temp_step_setter_p2),
|
|
TEST_ENTRY(test_LightTest_availability),
|
|
TEST_ENTRY(test_LightTest_brightness_command_different_light),
|
|
TEST_ENTRY(test_LightTest_brightness_command_invalid),
|
|
TEST_ENTRY(test_LightTest_brightness_command_max),
|
|
TEST_ENTRY(test_LightTest_brightness_command_min),
|
|
TEST_ENTRY(test_LightTest_brightness_command_overflow),
|
|
TEST_ENTRY(test_LightTest_brightness_command_subscription),
|
|
TEST_ENTRY(test_LightTest_brightness_scale_feature_disabled),
|
|
TEST_ENTRY(test_LightTest_brightness_scale_setter),
|
|
TEST_ENTRY(test_LightTest_color_temperature_command),
|
|
TEST_ENTRY(test_LightTest_color_temperature_command_different_light),
|
|
TEST_ENTRY(test_LightTest_color_temperature_command_invalid),
|
|
TEST_ENTRY(test_LightTest_color_temperature_command_max),
|
|
TEST_ENTRY(test_LightTest_color_temperature_command_min),
|
|
TEST_ENTRY(test_LightTest_color_temperature_command_subscription),
|
|
TEST_ENTRY(test_LightTest_color_temperature_range_setter),
|
|
TEST_ENTRY(test_LightTest_color_temperature_range_setter_feature_disabled),
|
|
TEST_ENTRY(test_LightTest_current_brightness_setter),
|
|
TEST_ENTRY(test_LightTest_current_color_temperature_setter),
|
|
TEST_ENTRY(test_LightTest_current_rgb_color_setter),
|
|
TEST_ENTRY(test_LightTest_current_state_setter),
|
|
TEST_ENTRY(test_LightTest_default_params),
|
|
TEST_ENTRY(test_LightTest_default_params_with_brightness),
|
|
TEST_ENTRY(test_LightTest_default_params_with_brightness_and_color_temp),
|
|
TEST_ENTRY(test_LightTest_default_params_with_color_temp),
|
|
TEST_ENTRY(test_LightTest_default_params_with_rgb),
|
|
TEST_ENTRY(test_LightTest_extended_unique_id),
|
|
TEST_ENTRY(test_LightTest_icon_setter),
|
|
TEST_ENTRY(test_LightTest_invalid_unique_id),
|
|
TEST_ENTRY(test_LightTest_name_setter),
|
|
TEST_ENTRY(test_LightTest_object_id_setter),
|
|
TEST_ENTRY(test_LightTest_optimistic_setter),
|
|
TEST_ENTRY(test_LightTest_publish_brightness),
|
|
TEST_ENTRY(test_LightTest_publish_brightness_debounce),
|
|
TEST_ENTRY(test_LightTest_publish_brightness_debounce_skip),
|
|
TEST_ENTRY(test_LightTest_publish_color_temperature),
|
|
TEST_ENTRY(test_LightTest_publish_color_temperature_debounce),
|
|
TEST_ENTRY(test_LightTest_publish_color_temperature_debounce_skip),
|
|
TEST_ENTRY(test_LightTest_publish_last_known_brightness),
|
|
TEST_ENTRY(test_LightTest_publish_last_known_color_temperature),
|
|
TEST_ENTRY(test_LightTest_publish_last_known_rgb_color),
|
|
TEST_ENTRY(test_LightTest_publish_last_known_state),
|
|
TEST_ENTRY(test_LightTest_publish_nothing_if_brightness_feature_is_disabled),
|
|
TEST_ENTRY(test_LightTest_publish_nothing_if_color_temperature_feature_is_disabled),
|
|
TEST_ENTRY(test_LightTest_publish_nothing_if_retained),
|
|
TEST_ENTRY(test_LightTest_publish_rgb_color),
|
|
TEST_ENTRY(test_LightTest_publish_rgb_color_debounce),
|
|
TEST_ENTRY(test_LightTest_publish_rgb_color_debounce_skip),
|
|
TEST_ENTRY(test_LightTest_publish_state),
|
|
TEST_ENTRY(test_LightTest_publish_state_debounce),
|
|
TEST_ENTRY(test_LightTest_publish_state_debounce_skip),
|
|
TEST_ENTRY(test_LightTest_retain_setter),
|
|
TEST_ENTRY(test_LightTest_rgb_color_command_different_light),
|
|
TEST_ENTRY(test_LightTest_rgb_color_invalid_1_command),
|
|
TEST_ENTRY(test_LightTest_rgb_color_invalid_2_command),
|
|
TEST_ENTRY(test_LightTest_rgb_color_invalid_3_command),
|
|
TEST_ENTRY(test_LightTest_rgb_color_invalid_4_command),
|
|
TEST_ENTRY(test_LightTest_rgb_color_invalid_5_command),
|
|
TEST_ENTRY(test_LightTest_rgb_color_invalid_6_command),
|
|
TEST_ENTRY(test_LightTest_rgb_color_max_command),
|
|
TEST_ENTRY(test_LightTest_rgb_color_min_command),
|
|
TEST_ENTRY(test_LightTest_rgb_color_mix_command),
|
|
TEST_ENTRY(test_LightTest_rgb_color_small_command),
|
|
TEST_ENTRY(test_LightTest_rgb_command_subscription),
|
|
TEST_ENTRY(test_LightTest_state_command_different_light),
|
|
TEST_ENTRY(test_LightTest_state_command_off),
|
|
TEST_ENTRY(test_LightTest_state_command_on),
|
|
TEST_ENTRY(test_LightTest_state_command_subscription),
|
|
TEST_ENTRY(test_LockTest_availability),
|
|
TEST_ENTRY(test_LockTest_command_invalid),
|
|
TEST_ENTRY(test_LockTest_command_lock),
|
|
TEST_ENTRY(test_LockTest_command_open),
|
|
TEST_ENTRY(test_LockTest_command_subscription),
|
|
TEST_ENTRY(test_LockTest_command_unlock),
|
|
TEST_ENTRY(test_LockTest_current_state_setter),
|
|
TEST_ENTRY(test_LockTest_default_entity_id_setter),
|
|
TEST_ENTRY(test_LockTest_default_params),
|
|
TEST_ENTRY(test_LockTest_device_discovery_payload),
|
|
TEST_ENTRY(test_LockTest_different_lock_command),
|
|
TEST_ENTRY(test_LockTest_entity_category_setter),
|
|
TEST_ENTRY(test_LockTest_extended_unique_id),
|
|
TEST_ENTRY(test_LockTest_icon_setter),
|
|
TEST_ENTRY(test_LockTest_invalid_unique_id),
|
|
TEST_ENTRY(test_LockTest_name_setter),
|
|
TEST_ENTRY(test_LockTest_object_id_setter),
|
|
TEST_ENTRY(test_LockTest_optimistic_setter),
|
|
TEST_ENTRY(test_LockTest_publish_last_known_state),
|
|
TEST_ENTRY(test_LockTest_publish_nothing_if_retained),
|
|
TEST_ENTRY(test_LockTest_publish_state_locked),
|
|
TEST_ENTRY(test_LockTest_publish_state_unlocked),
|
|
TEST_ENTRY(test_LockTest_retain_setter),
|
|
};
|
|
|
|
static const size_t TEST_COUNT = sizeof(tests) / sizeof(tests[0]);
|
|
static size_t next_index = 0;
|
|
static bool begun = false;
|
|
|
|
void setUp(void) { }
|
|
void tearDown(void) { }
|
|
|
|
void setup()
|
|
{
|
|
Serial.begin(115200);
|
|
delay(500);
|
|
UNITY_BEGIN();
|
|
begun = true;
|
|
}
|
|
|
|
void loop()
|
|
{
|
|
if (begun && next_index < TEST_COUNT) {
|
|
TestCase& t = tests[next_index];
|
|
Serial.print("\n[TEST] ");
|
|
Serial.println(t.name);
|
|
UnityDefaultTestRun(t.fn, t.name, t.line);
|
|
next_index++;
|
|
return;
|
|
}
|
|
|
|
if (begun && next_index >= TEST_COUNT) {
|
|
UNITY_END();
|
|
begun = false;
|
|
}
|
|
}
|