#include #include #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; } }