state_machines 0.5.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/LICENSE.txt +1 -1
- data/README.md +34 -15
- data/lib/state_machines/assertions.rb +2 -0
- data/lib/state_machines/branch.rb +85 -81
- data/lib/state_machines/callback.rb +24 -21
- data/lib/state_machines/core.rb +2 -0
- data/lib/state_machines/core_ext/class/state_machine.rb +2 -0
- data/lib/state_machines/core_ext.rb +2 -0
- data/lib/state_machines/error.rb +2 -0
- data/lib/state_machines/eval_helpers.rb +51 -22
- data/lib/state_machines/event.rb +35 -30
- data/lib/state_machines/event_collection.rb +28 -25
- data/lib/state_machines/extensions.rb +3 -1
- data/lib/state_machines/helper_module.rb +3 -1
- data/lib/state_machines/integrations/base.rb +2 -0
- data/lib/state_machines/integrations.rb +10 -8
- data/lib/state_machines/machine/class_methods.rb +79 -0
- data/lib/state_machines/machine.rb +381 -425
- data/lib/state_machines/machine_collection.rb +13 -10
- data/lib/state_machines/macro_methods.rb +102 -100
- data/lib/state_machines/matcher.rb +26 -23
- data/lib/state_machines/matcher_helpers.rb +13 -11
- data/lib/state_machines/node_collection.rb +17 -13
- data/lib/state_machines/path.rb +58 -55
- data/lib/state_machines/path_collection.rb +37 -35
- data/lib/state_machines/state.rb +50 -38
- data/lib/state_machines/state_collection.rb +22 -19
- data/lib/state_machines/state_context.rb +35 -35
- data/lib/state_machines/stdio_renderer.rb +74 -0
- data/lib/state_machines/transition.rb +182 -178
- data/lib/state_machines/transition_collection.rb +172 -168
- data/lib/state_machines/version.rb +3 -1
- data/lib/state_machines.rb +4 -1
- metadata +10 -439
- data/.gitignore +0 -21
- data/.rspec +0 -3
- data/.ruby-gemset +0 -1
- data/.ruby-version +0 -1
- data/.travis.yml +0 -16
- data/Changelog.md +0 -22
- data/Contributors.md +0 -39
- data/Gemfile +0 -8
- data/Rakefile +0 -12
- data/Testing.md +0 -0
- data/state_machines.gemspec +0 -22
- data/test/files/integrations/event_on_failure_integration.rb +0 -10
- data/test/files/integrations/vehicle.rb +0 -7
- data/test/files/models/auto_shop.rb +0 -31
- data/test/files/models/car.rb +0 -21
- data/test/files/models/driver.rb +0 -13
- data/test/files/models/model_base.rb +0 -6
- data/test/files/models/motorcycle.rb +0 -16
- data/test/files/models/traffic_light.rb +0 -47
- data/test/files/models/vehicle.rb +0 -127
- data/test/files/node.rb +0 -5
- data/test/files/switch.rb +0 -15
- data/test/functional/auto_shop_available_test.rb +0 -20
- data/test/functional/auto_shop_busy_test.rb +0 -25
- data/test/functional/car_backing_up_test.rb +0 -45
- data/test/functional/car_test.rb +0 -49
- data/test/functional/driver_default_nonstandard_test.rb +0 -13
- data/test/functional/motorcycle_test.rb +0 -52
- data/test/functional/traffic_light_caution_test.rb +0 -17
- data/test/functional/traffic_light_proceed_test.rb +0 -17
- data/test/functional/traffic_light_stop_test.rb +0 -26
- data/test/functional/vehicle_first_gear_test.rb +0 -42
- data/test/functional/vehicle_idling_test.rb +0 -59
- data/test/functional/vehicle_locked_test.rb +0 -29
- data/test/functional/vehicle_parked_test.rb +0 -53
- data/test/functional/vehicle_repaired_test.rb +0 -20
- data/test/functional/vehicle_second_gear_test.rb +0 -42
- data/test/functional/vehicle_stalled_test.rb +0 -65
- data/test/functional/vehicle_test.rb +0 -20
- data/test/functional/vehicle_third_gear_test.rb +0 -42
- data/test/functional/vehicle_unsaved_test.rb +0 -181
- data/test/functional/vehicle_with_event_attributes_test.rb +0 -30
- data/test/functional/vehicle_with_parallel_events_test.rb +0 -36
- data/test/test_helper.rb +0 -15
- data/test/unit/assertions/assert_exclusive_keys_test.rb +0 -22
- data/test/unit/assertions/assert_valid_key_test.rb +0 -12
- data/test/unit/branch/branch_test.rb +0 -28
- data/test/unit/branch/branch_with_conflicting_conditionals_test.rb +0 -27
- data/test/unit/branch/branch_with_conflicting_from_requirements_test.rb +0 -8
- data/test/unit/branch/branch_with_conflicting_on_requirements_test.rb +0 -8
- data/test/unit/branch/branch_with_conflicting_to_requirements_test.rb +0 -8
- data/test/unit/branch/branch_with_different_requirements_test.rb +0 -41
- data/test/unit/branch/branch_with_except_from_matcher_requirement_test.rb +0 -8
- data/test/unit/branch/branch_with_except_from_requirement_test.rb +0 -36
- data/test/unit/branch/branch_with_except_on_matcher_requirement_test.rb +0 -8
- data/test/unit/branch/branch_with_except_on_requirement_test.rb +0 -36
- data/test/unit/branch/branch_with_except_to_matcher_requirement_test.rb +0 -8
- data/test/unit/branch/branch_with_except_to_requirement_test.rb +0 -36
- data/test/unit/branch/branch_with_from_matcher_requirement_test.rb +0 -20
- data/test/unit/branch/branch_with_from_requirement_test.rb +0 -45
- data/test/unit/branch/branch_with_if_conditional_test.rb +0 -27
- data/test/unit/branch/branch_with_implicit_and_explicit_requirements_test.rb +0 -23
- data/test/unit/branch/branch_with_implicit_from_requirement_matcher_test.rb +0 -20
- data/test/unit/branch/branch_with_implicit_requirement_test.rb +0 -20
- data/test/unit/branch/branch_with_implicit_to_requirement_matcher_test.rb +0 -16
- data/test/unit/branch/branch_with_multiple_except_from_requirements_test.rb +0 -20
- data/test/unit/branch/branch_with_multiple_except_on_requirements_test.rb +0 -16
- data/test/unit/branch/branch_with_multiple_except_to_requirements_test.rb +0 -20
- data/test/unit/branch/branch_with_multiple_from_requirements_test.rb +0 -16
- data/test/unit/branch/branch_with_multiple_if_conditionals_test.rb +0 -20
- data/test/unit/branch/branch_with_multiple_implicit_requirements_test.rb +0 -53
- data/test/unit/branch/branch_with_multiple_to_requirements_test.rb +0 -20
- data/test/unit/branch/branch_with_multiple_unless_conditionals_test.rb +0 -20
- data/test/unit/branch/branch_with_nil_requirements_test.rb +0 -28
- data/test/unit/branch/branch_with_no_requirements_test.rb +0 -36
- data/test/unit/branch/branch_with_on_matcher_requirement_test.rb +0 -16
- data/test/unit/branch/branch_with_on_requirement_test.rb +0 -45
- data/test/unit/branch/branch_with_to_matcher_requirement_test.rb +0 -20
- data/test/unit/branch/branch_with_to_requirement_test.rb +0 -45
- data/test/unit/branch/branch_with_unless_conditional_test.rb +0 -27
- data/test/unit/branch/branch_without_guards_test.rb +0 -27
- data/test/unit/callback/callback_by_default_test.rb +0 -25
- data/test/unit/callback/callback_test.rb +0 -53
- data/test/unit/callback/callback_with_application_bound_object_test.rb +0 -23
- data/test/unit/callback/callback_with_application_terminator_test.rb +0 -24
- data/test/unit/callback/callback_with_arguments_test.rb +0 -14
- data/test/unit/callback/callback_with_around_type_and_arguments_test.rb +0 -25
- data/test/unit/callback/callback_with_around_type_and_block_test.rb +0 -44
- data/test/unit/callback/callback_with_around_type_and_bound_method_test.rb +0 -23
- data/test/unit/callback/callback_with_around_type_and_multiple_methods_test.rb +0 -93
- data/test/unit/callback/callback_with_around_type_and_terminator_test.rb +0 -17
- data/test/unit/callback/callback_with_block_test.rb +0 -20
- data/test/unit/callback/callback_with_bound_method_and_arguments_test.rb +0 -28
- data/test/unit/callback/callback_with_bound_method_test.rb +0 -35
- data/test/unit/callback/callback_with_do_method_test.rb +0 -18
- data/test/unit/callback/callback_with_explicit_requirements_test.rb +0 -32
- data/test/unit/callback/callback_with_if_condition_test.rb +0 -17
- data/test/unit/callback/callback_with_implicit_requirements_test.rb +0 -32
- data/test/unit/callback/callback_with_method_argument_test.rb +0 -18
- data/test/unit/callback/callback_with_mixed_methods_test.rb +0 -31
- data/test/unit/callback/callback_with_multiple_bound_methods_test.rb +0 -21
- data/test/unit/callback/callback_with_multiple_do_methods_test.rb +0 -29
- data/test/unit/callback/callback_with_multiple_method_arguments_test.rb +0 -29
- data/test/unit/callback/callback_with_terminator_test.rb +0 -22
- data/test/unit/callback/callback_with_unbound_method_test.rb +0 -14
- data/test/unit/callback/callback_with_unless_condition_test.rb +0 -17
- data/test/unit/callback/callback_without_arguments_test.rb +0 -14
- data/test/unit/callback/callback_without_terminator_test.rb +0 -12
- data/test/unit/error/error_by_default_test.rb +0 -21
- data/test/unit/error/error_with_message_test.rb +0 -23
- data/test/unit/eval_helper/eval_helpers_base_test.rb +0 -8
- data/test/unit/eval_helper/eval_helpers_proc_block_and_explicit_arguments_test.rb +0 -14
- data/test/unit/eval_helper/eval_helpers_proc_block_and_implicit_arguments_test.rb +0 -14
- data/test/unit/eval_helper/eval_helpers_proc_test.rb +0 -13
- data/test/unit/eval_helper/eval_helpers_proc_with_arguments_test.rb +0 -13
- data/test/unit/eval_helper/eval_helpers_proc_with_block_test.rb +0 -13
- data/test/unit/eval_helper/eval_helpers_proc_with_block_without_arguments_test.rb +0 -18
- data/test/unit/eval_helper/eval_helpers_proc_with_block_without_object_test.rb +0 -14
- data/test/unit/eval_helper/eval_helpers_proc_without_arguments_test.rb +0 -19
- data/test/unit/eval_helper/eval_helpers_string_test.rb +0 -25
- data/test/unit/eval_helper/eval_helpers_string_with_block_test.rb +0 -12
- data/test/unit/eval_helper/eval_helpers_symbol_method_missing_test.rb +0 -20
- data/test/unit/eval_helper/eval_helpers_symbol_private_test.rb +0 -17
- data/test/unit/eval_helper/eval_helpers_symbol_protected_test.rb +0 -17
- data/test/unit/eval_helper/eval_helpers_symbol_tainted_method_test.rb +0 -18
- data/test/unit/eval_helper/eval_helpers_symbol_test.rb +0 -16
- data/test/unit/eval_helper/eval_helpers_symbol_with_arguments_and_block_test.rb +0 -16
- data/test/unit/eval_helper/eval_helpers_symbol_with_arguments_test.rb +0 -16
- data/test/unit/eval_helper/eval_helpers_symbol_with_block_test.rb +0 -16
- data/test/unit/eval_helper/eval_helpers_test.rb +0 -13
- data/test/unit/event/event_after_being_copied_test.rb +0 -17
- data/test/unit/event/event_by_default_test.rb +0 -60
- data/test/unit/event/event_context_test.rb +0 -16
- data/test/unit/event/event_on_failure_test.rb +0 -44
- data/test/unit/event/event_test.rb +0 -34
- data/test/unit/event/event_transitions_test.rb +0 -62
- data/test/unit/event/event_with_conflicting_helpers_after_definition_test.rb +0 -79
- data/test/unit/event/event_with_conflicting_helpers_before_definition_test.rb +0 -58
- data/test/unit/event/event_with_conflicting_machine_test.rb +0 -48
- data/test/unit/event/event_with_dynamic_human_name_test.rb +0 -26
- data/test/unit/event/event_with_human_name_test.rb +0 -13
- data/test/unit/event/event_with_invalid_current_state_test.rb +0 -30
- data/test/unit/event/event_with_machine_action_test.rb +0 -33
- data/test/unit/event/event_with_marshalling_test.rb +0 -47
- data/test/unit/event/event_with_matching_disabled_transitions_test.rb +0 -115
- data/test/unit/event/event_with_matching_enabled_transitions_test.rb +0 -75
- data/test/unit/event/event_with_multiple_transitions_test.rb +0 -61
- data/test/unit/event/event_with_namespace_test.rb +0 -34
- data/test/unit/event/event_with_transition_with_blacklisted_to_state_test.rb +0 -60
- data/test/unit/event/event_with_transition_with_loopback_state_test.rb +0 -36
- data/test/unit/event/event_with_transition_with_nil_to_state_test.rb +0 -36
- data/test/unit/event/event_with_transition_with_whitelisted_to_state_test.rb +0 -51
- data/test/unit/event/event_with_transition_without_to_state_test.rb +0 -36
- data/test/unit/event/event_with_transitions_test.rb +0 -32
- data/test/unit/event/event_without_matching_transitions_test.rb +0 -41
- data/test/unit/event/event_without_transitions_test.rb +0 -28
- data/test/unit/event/invalid_event_test.rb +0 -20
- data/test/unit/event_collection/event_collection_attribute_with_machine_action_test.rb +0 -62
- data/test/unit/event_collection/event_collection_attribute_with_namespaced_machine_test.rb +0 -36
- data/test/unit/event_collection/event_collection_by_default_test.rb +0 -26
- data/test/unit/event_collection/event_collection_test.rb +0 -39
- data/test/unit/event_collection/event_collection_with_custom_machine_attribute_test.rb +0 -31
- data/test/unit/event_collection/event_collection_with_events_with_transitions_test.rb +0 -76
- data/test/unit/event_collection/event_collection_with_multiple_events_test.rb +0 -27
- data/test/unit/event_collection/event_collection_with_validations_test.rb +0 -74
- data/test/unit/event_collection/event_collection_without_machine_action_test.rb +0 -18
- data/test/unit/event_collection/event_string_collection_test.rb +0 -31
- data/test/unit/helper_module_test.rb +0 -17
- data/test/unit/integrations/integration_finder_test.rb +0 -16
- data/test/unit/integrations/integration_matcher_test.rb +0 -29
- data/test/unit/invalid_transition/invalid_parallel_transition_test.rb +0 -18
- data/test/unit/invalid_transition/invalid_transition_test.rb +0 -47
- data/test/unit/invalid_transition/invalid_transition_with_integration_test.rb +0 -45
- data/test/unit/invalid_transition/invalid_transition_with_namespace_test.rb +0 -32
- data/test/unit/machine/machine_after_being_copied_test.rb +0 -62
- data/test/unit/machine/machine_after_changing_initial_state.rb +0 -28
- data/test/unit/machine/machine_after_changing_owner_class_test.rb +0 -31
- data/test/unit/machine/machine_by_default_test.rb +0 -160
- data/test/unit/machine/machine_finder_custom_options_test.rb +0 -17
- data/test/unit/machine/machine_finder_with_existing_machine_on_superclass_test.rb +0 -85
- data/test/unit/machine/machine_finder_with_existing_on_same_class_test.rb +0 -23
- data/test/unit/machine/machine_finder_without_existing_machine_test.rb +0 -25
- data/test/unit/machine/machine_persistence_test.rb +0 -52
- data/test/unit/machine/machine_state_initialization_test.rb +0 -56
- data/test/unit/machine/machine_test.rb +0 -30
- data/test/unit/machine/machine_with_action_already_overridden_test.rb +0 -23
- data/test/unit/machine/machine_with_action_defined_in_class_test.rb +0 -37
- data/test/unit/machine/machine_with_action_defined_in_included_module_test.rb +0 -46
- data/test/unit/machine/machine_with_action_defined_in_superclass_test.rb +0 -43
- data/test/unit/machine/machine_with_action_undefined_test.rb +0 -33
- data/test/unit/machine/machine_with_cached_state_test.rb +0 -20
- data/test/unit/machine/machine_with_class_helpers_test.rb +0 -179
- data/test/unit/machine/machine_with_conflicting_helpers_after_definition_test.rb +0 -244
- data/test/unit/machine/machine_with_conflicting_helpers_before_definition_test.rb +0 -175
- data/test/unit/machine/machine_with_custom_action_test.rb +0 -11
- data/test/unit/machine/machine_with_custom_attribute_test.rb +0 -103
- data/test/unit/machine/machine_with_custom_initialize_test.rb +0 -24
- data/test/unit/machine/machine_with_custom_integration_test.rb +0 -72
- data/test/unit/machine/machine_with_custom_invalidation_test.rb +0 -39
- data/test/unit/machine/machine_with_custom_name_test.rb +0 -57
- data/test/unit/machine/machine_with_custom_plural_test.rb +0 -52
- data/test/unit/machine/machine_with_dynamic_initial_state_test.rb +0 -65
- data/test/unit/machine/machine_with_event_matchers_test.rb +0 -41
- data/test/unit/machine/machine_with_events_test.rb +0 -52
- data/test/unit/machine/machine_with_events_with_custom_human_names_test.rb +0 -18
- data/test/unit/machine/machine_with_events_with_transitions_test.rb +0 -37
- data/test/unit/machine/machine_with_existing_event_test.rb +0 -17
- data/test/unit/machine/machine_with_existing_machines_on_owner_class_test.rb +0 -20
- data/test/unit/machine/machine_with_existing_machines_with_same_attributes_on_owner_class_test.rb +0 -71
- data/test/unit/machine/machine_with_existing_machines_with_same_attributes_on_owner_subclass_test.rb +0 -31
- data/test/unit/machine/machine_with_existing_state_test.rb +0 -27
- data/test/unit/machine/machine_with_failure_callbacks_test.rb +0 -48
- data/test/unit/machine/machine_with_helpers_test.rb +0 -14
- data/test/unit/machine/machine_with_initial_state_with_value_and_owner_default.rb +0 -25
- data/test/unit/machine/machine_with_initialize_and_super_test.rb +0 -17
- data/test/unit/machine/machine_with_initialize_arguments_and_block_test.rb +0 -31
- data/test/unit/machine/machine_with_initialize_without_super_test.rb +0 -17
- data/test/unit/machine/machine_with_instance_helpers_test.rb +0 -179
- data/test/unit/machine/machine_with_integration_test.rb +0 -72
- data/test/unit/machine/machine_with_multiple_events_test.rb +0 -32
- data/test/unit/machine/machine_with_namespace_test.rb +0 -48
- data/test/unit/machine/machine_with_nil_action_test.rb +0 -27
- data/test/unit/machine/machine_with_other_states.rb +0 -22
- data/test/unit/machine/machine_with_owner_subclass_test.rb +0 -18
- data/test/unit/machine/machine_with_paths_test.rb +0 -25
- data/test/unit/machine/machine_with_private_action_test.rb +0 -43
- data/test/unit/machine/machine_with_state_matchers_test.rb +0 -41
- data/test/unit/machine/machine_with_state_with_matchers_test.rb +0 -19
- data/test/unit/machine/machine_with_states_test.rb +0 -55
- data/test/unit/machine/machine_with_states_with_behaviors_test.rb +0 -23
- data/test/unit/machine/machine_with_states_with_custom_human_names_test.rb +0 -18
- data/test/unit/machine/machine_with_states_with_custom_values_test.rb +0 -21
- data/test/unit/machine/machine_with_states_with_runtime_dependencies_test.rb +0 -19
- data/test/unit/machine/machine_with_static_initial_state_test.rb +0 -49
- data/test/unit/machine/machine_with_superclass_conflicting_helpers_after_definition_test.rb +0 -36
- data/test/unit/machine/machine_with_transition_callbacks_test.rb +0 -144
- data/test/unit/machine/machine_with_transitions_test.rb +0 -87
- data/test/unit/machine/machine_without_initialization_test.rb +0 -31
- data/test/unit/machine/machine_without_initialize_test.rb +0 -14
- data/test/unit/machine/machine_without_integration_test.rb +0 -31
- data/test/unit/machine_collection/machine_collection_by_default_test.rb +0 -11
- data/test/unit/machine_collection/machine_collection_fire_test.rb +0 -80
- data/test/unit/machine_collection/machine_collection_fire_with_transactions_test.rb +0 -54
- data/test/unit/machine_collection/machine_collection_fire_with_validations_test.rb +0 -76
- data/test/unit/machine_collection/machine_collection_state_initialization_test.rb +0 -111
- data/test/unit/machine_collection/machine_collection_transitions_with_blank_events_test.rb +0 -25
- data/test/unit/machine_collection/machine_collection_transitions_with_custom_options_test.rb +0 -20
- data/test/unit/machine_collection/machine_collection_transitions_with_different_actions_test.rb +0 -26
- data/test/unit/machine_collection/machine_collection_transitions_with_exisiting_transitions_test.rb +0 -25
- data/test/unit/machine_collection/machine_collection_transitions_with_invalid_events_test.rb +0 -25
- data/test/unit/machine_collection/machine_collection_transitions_with_same_actions_test.rb +0 -31
- data/test/unit/machine_collection/machine_collection_transitions_with_transition_test.rb +0 -26
- data/test/unit/machine_collection/machine_collection_transitions_without_events_test.rb +0 -25
- data/test/unit/machine_collection/machine_collection_transitions_without_transition_test.rb +0 -27
- data/test/unit/matcher/all_matcher_test.rb +0 -29
- data/test/unit/matcher/blacklist_matcher_test.rb +0 -30
- data/test/unit/matcher/loopback_matcher_test.rb +0 -27
- data/test/unit/matcher/matcher_by_default_test.rb +0 -15
- data/test/unit/matcher/matcher_with_multiple_values_test.rb +0 -15
- data/test/unit/matcher/matcher_with_value_test.rb +0 -15
- data/test/unit/matcher/whitelist_matcher_test.rb +0 -30
- data/test/unit/matcher_helpers/matcher_helpers_all_test.rb +0 -14
- data/test/unit/matcher_helpers/matcher_helpers_any_test.rb +0 -14
- data/test/unit/matcher_helpers/matcher_helpers_same_test.rb +0 -13
- data/test/unit/node_collection/node_collection_after_being_copied_test.rb +0 -46
- data/test/unit/node_collection/node_collection_after_update_test.rb +0 -36
- data/test/unit/node_collection/node_collection_by_default_test.rb +0 -22
- data/test/unit/node_collection/node_collection_test.rb +0 -23
- data/test/unit/node_collection/node_collection_with_indices_test.rb +0 -42
- data/test/unit/node_collection/node_collection_with_matcher_contexts_test.rb +0 -25
- data/test/unit/node_collection/node_collection_with_nodes_test.rb +0 -46
- data/test/unit/node_collection/node_collection_with_numeric_index_test.rb +0 -24
- data/test/unit/node_collection/node_collection_with_postdefined_contexts_test.rb +0 -22
- data/test/unit/node_collection/node_collection_with_predefined_contexts_test.rb +0 -23
- data/test/unit/node_collection/node_collection_with_string_index_test.rb +0 -20
- data/test/unit/node_collection/node_collection_with_symbol_index_test.rb +0 -20
- data/test/unit/node_collection/node_collection_without_indices_test.rb +0 -30
- data/test/unit/path/path_by_default_test.rb +0 -54
- data/test/unit/path/path_test.rb +0 -14
- data/test/unit/path/path_with_available_transitions_after_reaching_target_test.rb +0 -40
- data/test/unit/path/path_with_available_transitions_test.rb +0 -54
- data/test/unit/path/path_with_deep_target_reached_test.rb +0 -50
- data/test/unit/path/path_with_deep_target_test.rb +0 -40
- data/test/unit/path/path_with_duplicates_test.rb +0 -32
- data/test/unit/path/path_with_encountered_transitions_test.rb +0 -34
- data/test/unit/path/path_with_guarded_transitions_test.rb +0 -42
- data/test/unit/path/path_with_reached_target_test.rb +0 -35
- data/test/unit/path/path_with_transitions_test.rb +0 -54
- data/test/unit/path/path_with_unreached_target_test.rb +0 -31
- data/test/unit/path/path_without_transitions_test.rb +0 -24
- data/test/unit/path_collection/path_collection_by_default_test.rb +0 -46
- data/test/unit/path_collection/path_collection_test.rb +0 -24
- data/test/unit/path_collection/path_collection_with_deep_paths_test.rb +0 -43
- data/test/unit/path_collection/path_collection_with_duplicate_nodes_test.rb +0 -31
- data/test/unit/path_collection/path_collection_with_from_state_test.rb +0 -27
- data/test/unit/path_collection/path_collection_with_paths_test.rb +0 -47
- data/test/unit/path_collection/path_collection_with_to_state_test.rb +0 -29
- data/test/unit/path_collection/path_with_guarded_paths_test.rb +0 -25
- data/test/unit/state/state_after_being_copied_test.rb +0 -19
- data/test/unit/state/state_by_default_test.rb +0 -41
- data/test/unit/state/state_final_test.rb +0 -28
- data/test/unit/state/state_initial_test.rb +0 -13
- data/test/unit/state/state_not_final_test.rb +0 -32
- data/test/unit/state/state_not_initial_test.rb +0 -13
- data/test/unit/state/state_test.rb +0 -44
- data/test/unit/state/state_with_cached_lambda_value_test.rb +0 -29
- data/test/unit/state/state_with_conflicting_helpers_after_definition_test.rb +0 -38
- data/test/unit/state/state_with_conflicting_helpers_before_definition_test.rb +0 -29
- data/test/unit/state/state_with_conflicting_machine_name_test.rb +0 -20
- data/test/unit/state/state_with_conflicting_machine_test.rb +0 -37
- data/test/unit/state/state_with_context_test.rb +0 -60
- data/test/unit/state/state_with_dynamic_human_name_test.rb +0 -25
- data/test/unit/state/state_with_existing_context_method_test.rb +0 -24
- data/test/unit/state/state_with_human_name_test.rb +0 -13
- data/test/unit/state/state_with_integer_value_test.rb +0 -32
- data/test/unit/state/state_with_invalid_method_call_test.rb +0 -21
- data/test/unit/state/state_with_lambda_value_test.rb +0 -37
- data/test/unit/state/state_with_matcher_test.rb +0 -18
- data/test/unit/state/state_with_multiple_contexts_test.rb +0 -57
- data/test/unit/state/state_with_name_test.rb +0 -43
- data/test/unit/state/state_with_namespace_test.rb +0 -22
- data/test/unit/state/state_with_nil_value_test.rb +0 -35
- data/test/unit/state/state_with_redefined_context_method_test.rb +0 -45
- data/test/unit/state/state_with_symbolic_value_test.rb +0 -32
- data/test/unit/state/state_with_valid_inherited_method_call_for_current_state_test.rb +0 -40
- data/test/unit/state/state_with_valid_method_call_for_current_state_test.rb +0 -33
- data/test/unit/state/state_with_valid_method_call_for_different_state_test.rb +0 -41
- data/test/unit/state/state_without_cached_lambda_value_test.rb +0 -25
- data/test/unit/state/state_without_name_test.rb +0 -39
- data/test/unit/state_collection/state_collection_by_default_test.rb +0 -21
- data/test/unit/state_collection/state_collection_string_test.rb +0 -35
- data/test/unit/state_collection/state_collection_test.rb +0 -74
- data/test/unit/state_collection/state_collection_with_custom_state_values_test.rb +0 -29
- data/test/unit/state_collection/state_collection_with_event_transitions_test.rb +0 -39
- data/test/unit/state_collection/state_collection_with_initial_state_test.rb +0 -40
- data/test/unit/state_collection/state_collection_with_namespace_test.rb +0 -21
- data/test/unit/state_collection/state_collection_with_state_behaviors_test.rb +0 -40
- data/test/unit/state_collection/state_collection_with_state_matchers_test.rb +0 -29
- data/test/unit/state_collection/state_collection_with_transition_callbacks_test.rb +0 -40
- data/test/unit/state_context/state_context_proxy_test.rb +0 -26
- data/test/unit/state_context/state_context_proxy_with_if_and_unless_conditions_test.rb +0 -42
- data/test/unit/state_context/state_context_proxy_with_if_condition_test.rb +0 -64
- data/test/unit/state_context/state_context_proxy_with_multiple_if_conditions_test.rb +0 -32
- data/test/unit/state_context/state_context_proxy_with_multiple_unless_conditions_test.rb +0 -32
- data/test/unit/state_context/state_context_proxy_with_unless_condition_test.rb +0 -64
- data/test/unit/state_context/state_context_proxy_without_conditions_test.rb +0 -31
- data/test/unit/state_context/state_context_test.rb +0 -28
- data/test/unit/state_context/state_context_transition_test.rb +0 -104
- data/test/unit/state_context/state_context_with_matching_transition_test.rb +0 -27
- data/test/unit/state_machine/state_machine_by_default_test.rb +0 -12
- data/test/unit/state_machine/state_machine_test.rb +0 -20
- data/test/unit/transition/transition_after_being_performed_test.rb +0 -48
- data/test/unit/transition/transition_after_being_persisted_test.rb +0 -46
- data/test/unit/transition/transition_after_being_rolled_back_test.rb +0 -35
- data/test/unit/transition/transition_equality_test.rb +0 -52
- data/test/unit/transition/transition_loopback_test.rb +0 -18
- data/test/unit/transition/transition_test.rb +0 -96
- data/test/unit/transition/transition_transient_test.rb +0 -20
- data/test/unit/transition/transition_with_action_test.rb +0 -27
- data/test/unit/transition/transition_with_after_callbacks_skipped_test.rb +0 -127
- data/test/unit/transition/transition_with_after_callbacks_test.rb +0 -93
- data/test/unit/transition/transition_with_around_callbacks_test.rb +0 -141
- data/test/unit/transition/transition_with_before_callbacks_skipped_test.rb +0 -30
- data/test/unit/transition/transition_with_before_callbacks_test.rb +0 -104
- data/test/unit/transition/transition_with_custom_machine_attribute_test.rb +0 -28
- data/test/unit/transition/transition_with_different_states_test.rb +0 -18
- data/test/unit/transition/transition_with_dynamic_to_value_test.rb +0 -19
- data/test/unit/transition/transition_with_failure_callbacks_test.rb +0 -84
- data/test/unit/transition/transition_with_invalid_nodes_test.rb +0 -29
- data/test/unit/transition/transition_with_mixed_callbacks_test.rb +0 -105
- data/test/unit/transition/transition_with_multiple_after_callbacks_test.rb +0 -40
- data/test/unit/transition/transition_with_multiple_around_callbacks_test.rb +0 -114
- data/test/unit/transition/transition_with_multiple_before_callbacks_test.rb +0 -40
- data/test/unit/transition/transition_with_multiple_failure_callbacks_test.rb +0 -40
- data/test/unit/transition/transition_with_namespace_test.rb +0 -47
- data/test/unit/transition/transition_with_perform_arguments_test.rb +0 -35
- data/test/unit/transition/transition_with_transactions_test.rb +0 -42
- data/test/unit/transition/transition_without_callbacks_test.rb +0 -33
- data/test/unit/transition/transition_without_reading_state_test.rb +0 -22
- data/test/unit/transition/transition_without_running_action_test.rb +0 -47
- data/test/unit/transition_collection/attribute_transition_collection_by_default_test.rb +0 -23
- data/test/unit/transition_collection/attribute_transition_collection_marshalling_test.rb +0 -64
- data/test/unit/transition_collection/attribute_transition_collection_with_action_error_test.rb +0 -44
- data/test/unit/transition_collection/attribute_transition_collection_with_action_failed_test.rb +0 -44
- data/test/unit/transition_collection/attribute_transition_collection_with_after_callback_error_test.rb +0 -32
- data/test/unit/transition_collection/attribute_transition_collection_with_after_callback_halt_test.rb +0 -33
- data/test/unit/transition_collection/attribute_transition_collection_with_around_after_yield_callback_error_test.rb +0 -32
- data/test/unit/transition_collection/attribute_transition_collection_with_around_callback_after_yield_error_test.rb +0 -32
- data/test/unit/transition_collection/attribute_transition_collection_with_around_callback_after_yield_halt_test.rb +0 -33
- data/test/unit/transition_collection/attribute_transition_collection_with_around_callback_before_yield_halt_test.rb +0 -33
- data/test/unit/transition_collection/attribute_transition_collection_with_before_callback_error_test.rb +0 -32
- data/test/unit/transition_collection/attribute_transition_collection_with_before_callback_halt_test.rb +0 -33
- data/test/unit/transition_collection/attribute_transition_collection_with_callbacks_test.rb +0 -68
- data/test/unit/transition_collection/attribute_transition_collection_with_event_transitions_test.rb +0 -41
- data/test/unit/transition_collection/attribute_transition_collection_with_events_test.rb +0 -44
- data/test/unit/transition_collection/attribute_transition_collection_with_skipped_after_callbacks_test.rb +0 -42
- data/test/unit/transition_collection/transition_collection_by_default_test.rb +0 -23
- data/test/unit/transition_collection/transition_collection_empty_with_block_test.rb +0 -23
- data/test/unit/transition_collection/transition_collection_empty_without_block_test.rb +0 -12
- data/test/unit/transition_collection/transition_collection_invalid_test.rb +0 -21
- data/test/unit/transition_collection/transition_collection_partial_invalid_test.rb +0 -69
- data/test/unit/transition_collection/transition_collection_test.rb +0 -26
- data/test/unit/transition_collection/transition_collection_valid_test.rb +0 -57
- data/test/unit/transition_collection/transition_collection_with_action_error_test.rb +0 -66
- data/test/unit/transition_collection/transition_collection_with_action_failed_test.rb +0 -60
- data/test/unit/transition_collection/transition_collection_with_action_hook_and_block_test.rb +0 -17
- data/test/unit/transition_collection/transition_collection_with_action_hook_and_skipped_action_test.rb +0 -17
- data/test/unit/transition_collection/transition_collection_with_action_hook_and_skipped_after_callbacks_test.rb +0 -37
- data/test/unit/transition_collection/transition_collection_with_action_hook_base_test.rb +0 -34
- data/test/unit/transition_collection/transition_collection_with_action_hook_error_test.rb +0 -29
- data/test/unit/transition_collection/transition_collection_with_action_hook_invalid_test.rb +0 -17
- data/test/unit/transition_collection/transition_collection_with_action_hook_multiple_test.rb +0 -79
- data/test/unit/transition_collection/transition_collection_with_action_hook_test.rb +0 -45
- data/test/unit/transition_collection/transition_collection_with_action_hook_with_different_actions_test.rb +0 -48
- data/test/unit/transition_collection/transition_collection_with_action_hook_with_nil_action_test.rb +0 -42
- data/test/unit/transition_collection/transition_collection_with_after_callback_halt_test.rb +0 -47
- data/test/unit/transition_collection/transition_collection_with_before_callback_halt_test.rb +0 -51
- data/test/unit/transition_collection/transition_collection_with_block_test.rb +0 -46
- data/test/unit/transition_collection/transition_collection_with_callbacks_test.rb +0 -135
- data/test/unit/transition_collection/transition_collection_with_different_actions_test.rb +0 -189
- data/test/unit/transition_collection/transition_collection_with_duplicate_actions_test.rb +0 -48
- data/test/unit/transition_collection/transition_collection_with_empty_actions_test.rb +0 -41
- data/test/unit/transition_collection/transition_collection_with_mixed_actions_test.rb +0 -41
- data/test/unit/transition_collection/transition_collection_with_skipped_actions_and_block_test.rb +0 -34
- data/test/unit/transition_collection/transition_collection_with_skipped_actions_test.rb +0 -69
- data/test/unit/transition_collection/transition_collection_with_skipped_after_callbacks_and_around_callbacks_test.rb +0 -53
- data/test/unit/transition_collection/transition_collection_with_skipped_after_callbacks_test.rb +0 -34
- data/test/unit/transition_collection/transition_collection_with_transactions_test.rb +0 -65
- data/test/unit/transition_collection/transition_collection_without_transactions_test.rb +0 -29
@@ -1,179 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
require 'stringio'
|
3
|
-
|
4
|
-
class MachineWithClassHelpersTest < StateMachinesTest
|
5
|
-
def setup
|
6
|
-
@klass = Class.new
|
7
|
-
@machine = StateMachines::Machine.new(@klass)
|
8
|
-
end
|
9
|
-
|
10
|
-
def test_should_not_redefine_existing_public_methods
|
11
|
-
class << @klass
|
12
|
-
def states
|
13
|
-
[]
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
@machine.define_helper(:class, :states) {}
|
18
|
-
assert_equal [], @klass.states
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_should_not_redefine_existing_protected_methods
|
22
|
-
class << @klass
|
23
|
-
protected
|
24
|
-
def states
|
25
|
-
[]
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
@machine.define_helper(:class, :states) {}
|
30
|
-
assert_equal [], @klass.send(:states)
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_should_not_redefine_existing_private_methods
|
34
|
-
class << @klass
|
35
|
-
private
|
36
|
-
def states
|
37
|
-
[]
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
@machine.define_helper(:class, :states) {}
|
42
|
-
assert_equal [], @klass.send(:states)
|
43
|
-
end
|
44
|
-
|
45
|
-
def test_should_warn_if_defined_in_superclass
|
46
|
-
@original_stderr, $stderr = $stderr, StringIO.new
|
47
|
-
|
48
|
-
superclass = Class.new do
|
49
|
-
def self.park
|
50
|
-
end
|
51
|
-
end
|
52
|
-
klass = Class.new(superclass)
|
53
|
-
machine = StateMachines::Machine.new(klass)
|
54
|
-
|
55
|
-
machine.define_helper(:class, :park) {}
|
56
|
-
assert_equal "Class method \"park\" is already defined in #{superclass}, use generic helper instead or set StateMachines::Machine.ignore_method_conflicts = true.\n", $stderr.string
|
57
|
-
ensure
|
58
|
-
$stderr = @original_stderr
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_should_warn_if_defined_in_multiple_superclasses
|
62
|
-
@original_stderr, $stderr = $stderr, StringIO.new
|
63
|
-
|
64
|
-
superclass1 = Class.new do
|
65
|
-
def self.park
|
66
|
-
end
|
67
|
-
end
|
68
|
-
superclass2 = Class.new(superclass1) do
|
69
|
-
def self.park
|
70
|
-
end
|
71
|
-
end
|
72
|
-
klass = Class.new(superclass2)
|
73
|
-
machine = StateMachines::Machine.new(klass)
|
74
|
-
|
75
|
-
machine.define_helper(:class, :park) {}
|
76
|
-
assert_equal "Class method \"park\" is already defined in #{superclass1}, use generic helper instead or set StateMachines::Machine.ignore_method_conflicts = true.\n", $stderr.string
|
77
|
-
ensure
|
78
|
-
$stderr = @original_stderr
|
79
|
-
end
|
80
|
-
|
81
|
-
def test_should_warn_if_defined_in_module_prior_to_helper_module
|
82
|
-
@original_stderr, $stderr = $stderr, StringIO.new
|
83
|
-
|
84
|
-
mod = Module.new do
|
85
|
-
def park
|
86
|
-
end
|
87
|
-
end
|
88
|
-
klass = Class.new do
|
89
|
-
extend mod
|
90
|
-
end
|
91
|
-
machine = StateMachines::Machine.new(klass)
|
92
|
-
|
93
|
-
machine.define_helper(:class, :park) {}
|
94
|
-
assert_equal "Class method \"park\" is already defined in #{mod}, use generic helper instead or set StateMachines::Machine.ignore_method_conflicts = true.\n", $stderr.string
|
95
|
-
ensure
|
96
|
-
$stderr = @original_stderr
|
97
|
-
end
|
98
|
-
|
99
|
-
def test_should_not_warn_if_defined_in_module_after_helper_module
|
100
|
-
@original_stderr, $stderr = $stderr, StringIO.new
|
101
|
-
|
102
|
-
klass = Class.new
|
103
|
-
machine = StateMachines::Machine.new(klass)
|
104
|
-
|
105
|
-
mod = Module.new do
|
106
|
-
def park
|
107
|
-
end
|
108
|
-
end
|
109
|
-
klass.class_eval do
|
110
|
-
extend mod
|
111
|
-
end
|
112
|
-
|
113
|
-
machine.define_helper(:class, :park) {}
|
114
|
-
assert_equal '', $stderr.string
|
115
|
-
ensure
|
116
|
-
$stderr = @original_stderr
|
117
|
-
end
|
118
|
-
|
119
|
-
def test_should_define_if_ignoring_method_conflicts_and_defined_in_superclass
|
120
|
-
@original_stderr, $stderr = $stderr, StringIO.new
|
121
|
-
StateMachines::Machine.ignore_method_conflicts = true
|
122
|
-
|
123
|
-
superclass = Class.new do
|
124
|
-
def self.park
|
125
|
-
end
|
126
|
-
end
|
127
|
-
klass = Class.new(superclass)
|
128
|
-
machine = StateMachines::Machine.new(klass)
|
129
|
-
|
130
|
-
machine.define_helper(:class, :park) { true }
|
131
|
-
assert_equal '', $stderr.string
|
132
|
-
assert_equal true, klass.park
|
133
|
-
ensure
|
134
|
-
StateMachines::Machine.ignore_method_conflicts = false
|
135
|
-
$stderr = @original_stderr
|
136
|
-
end
|
137
|
-
|
138
|
-
def test_should_define_nonexistent_methods
|
139
|
-
@machine.define_helper(:class, :states) { [] }
|
140
|
-
assert_equal [], @klass.states
|
141
|
-
end
|
142
|
-
|
143
|
-
def test_should_warn_if_defined_multiple_times
|
144
|
-
@original_stderr, $stderr = $stderr, StringIO.new
|
145
|
-
|
146
|
-
@machine.define_helper(:class, :states) {}
|
147
|
-
@machine.define_helper(:class, :states) {}
|
148
|
-
|
149
|
-
assert_equal "Class method \"states\" is already defined in #{@klass} :state class helpers, use generic helper instead or set StateMachines::Machine.ignore_method_conflicts = true.\n", $stderr.string
|
150
|
-
ensure
|
151
|
-
$stderr = @original_stderr
|
152
|
-
end
|
153
|
-
|
154
|
-
def test_should_pass_context_as_arguments
|
155
|
-
helper_args = nil
|
156
|
-
@machine.define_helper(:class, :states) { |*args| helper_args = args }
|
157
|
-
@klass.states
|
158
|
-
assert_equal 2, helper_args.length
|
159
|
-
assert_equal [@machine, @klass], helper_args
|
160
|
-
end
|
161
|
-
|
162
|
-
def test_should_pass_method_arguments_through
|
163
|
-
helper_args = nil
|
164
|
-
@machine.define_helper(:class, :states) { |*args| helper_args = args }
|
165
|
-
@klass.states(1, 2, 3)
|
166
|
-
assert_equal 5, helper_args.length
|
167
|
-
assert_equal [@machine, @klass, 1, 2, 3], helper_args
|
168
|
-
end
|
169
|
-
|
170
|
-
def test_should_allow_string_evaluation
|
171
|
-
@machine.define_helper :class, <<-end_eval, __FILE__, __LINE__ + 1
|
172
|
-
def states
|
173
|
-
[]
|
174
|
-
end
|
175
|
-
end_eval
|
176
|
-
assert_equal [], @klass.states
|
177
|
-
end
|
178
|
-
end
|
179
|
-
|
@@ -1,244 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class MachineWithConflictingHelpersAfterDefinitionTest < StateMachinesTest
|
4
|
-
module Custom
|
5
|
-
include StateMachines::Integrations::Base
|
6
|
-
|
7
|
-
def create_with_scope(_name)
|
8
|
-
->(_klass, _values) { [] }
|
9
|
-
end
|
10
|
-
|
11
|
-
def create_without_scope(_name)
|
12
|
-
->(_klass, _values) { [] }
|
13
|
-
end
|
14
|
-
end
|
15
|
-
def setup
|
16
|
-
@original_stderr, $stderr = $stderr, StringIO.new
|
17
|
-
StateMachines::Integrations.register(MachineWithConflictingHelpersAfterDefinitionTest::Custom)
|
18
|
-
@klass = Class.new do
|
19
|
-
def self.with_state
|
20
|
-
:with_state
|
21
|
-
end
|
22
|
-
|
23
|
-
def self.with_states
|
24
|
-
:with_states
|
25
|
-
end
|
26
|
-
|
27
|
-
def self.without_state
|
28
|
-
:without_state
|
29
|
-
end
|
30
|
-
|
31
|
-
def self.without_states
|
32
|
-
:without_states
|
33
|
-
end
|
34
|
-
|
35
|
-
def self.human_state_name
|
36
|
-
:human_state_name
|
37
|
-
end
|
38
|
-
|
39
|
-
def self.human_state_event_name
|
40
|
-
:human_state_event_name
|
41
|
-
end
|
42
|
-
|
43
|
-
attr_accessor :status
|
44
|
-
|
45
|
-
def state
|
46
|
-
'parked'
|
47
|
-
end
|
48
|
-
|
49
|
-
def state=(value)
|
50
|
-
self.status = value
|
51
|
-
end
|
52
|
-
|
53
|
-
def state?
|
54
|
-
true
|
55
|
-
end
|
56
|
-
|
57
|
-
def state_name
|
58
|
-
:parked
|
59
|
-
end
|
60
|
-
|
61
|
-
def human_state_name
|
62
|
-
'parked'
|
63
|
-
end
|
64
|
-
|
65
|
-
def state_events
|
66
|
-
[:ignite]
|
67
|
-
end
|
68
|
-
|
69
|
-
def state_transitions
|
70
|
-
[{ parked: :idling }]
|
71
|
-
end
|
72
|
-
|
73
|
-
def state_paths
|
74
|
-
[[{ parked: :idling }]]
|
75
|
-
end
|
76
|
-
|
77
|
-
def fire_state_event
|
78
|
-
true
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
@machine = StateMachines::Machine.new(@klass, integration: :custom)
|
85
|
-
@machine.state :parked, :idling
|
86
|
-
@machine.event :ignite
|
87
|
-
@object = @klass.new
|
88
|
-
end
|
89
|
-
|
90
|
-
def test_should_not_redefine_singular_with_scope
|
91
|
-
assert_equal :with_state, @klass.with_state
|
92
|
-
end
|
93
|
-
|
94
|
-
def test_should_not_redefine_plural_with_scope
|
95
|
-
assert_equal :with_states, @klass.with_states
|
96
|
-
end
|
97
|
-
|
98
|
-
def test_should_not_redefine_singular_without_scope
|
99
|
-
assert_equal :without_state, @klass.without_state
|
100
|
-
end
|
101
|
-
|
102
|
-
def test_should_not_redefine_plural_without_scope
|
103
|
-
assert_equal :without_states, @klass.without_states
|
104
|
-
end
|
105
|
-
|
106
|
-
def test_should_not_redefine_human_attribute_name_reader
|
107
|
-
assert_equal :human_state_name, @klass.human_state_name
|
108
|
-
end
|
109
|
-
|
110
|
-
def test_should_not_redefine_human_event_name_reader
|
111
|
-
assert_equal :human_state_event_name, @klass.human_state_event_name
|
112
|
-
end
|
113
|
-
|
114
|
-
def test_should_not_redefine_attribute_reader
|
115
|
-
assert_equal 'parked', @object.state
|
116
|
-
end
|
117
|
-
|
118
|
-
def test_should_not_redefine_attribute_writer
|
119
|
-
@object.state = 'parked'
|
120
|
-
assert_equal 'parked', @object.status
|
121
|
-
end
|
122
|
-
|
123
|
-
def test_should_not_define_attribute_predicate
|
124
|
-
assert @object.state?
|
125
|
-
end
|
126
|
-
|
127
|
-
def test_should_not_redefine_attribute_name_reader
|
128
|
-
assert_equal :parked, @object.state_name
|
129
|
-
end
|
130
|
-
|
131
|
-
def test_should_not_redefine_attribute_human_name_reader
|
132
|
-
assert_equal 'parked', @object.human_state_name
|
133
|
-
end
|
134
|
-
|
135
|
-
def test_should_not_redefine_attribute_events_reader
|
136
|
-
assert_equal [:ignite], @object.state_events
|
137
|
-
end
|
138
|
-
|
139
|
-
def test_should_not_redefine_attribute_transitions_reader
|
140
|
-
assert_equal [{ parked: :idling }], @object.state_transitions
|
141
|
-
end
|
142
|
-
|
143
|
-
def test_should_not_redefine_attribute_paths_reader
|
144
|
-
assert_equal [[{ parked: :idling }]], @object.state_paths
|
145
|
-
end
|
146
|
-
|
147
|
-
def test_should_not_redefine_event_runner
|
148
|
-
assert_equal true, @object.fire_state_event
|
149
|
-
end
|
150
|
-
|
151
|
-
def test_should_allow_super_chaining
|
152
|
-
@klass.class_eval do
|
153
|
-
def self.with_state(*states)
|
154
|
-
super
|
155
|
-
end
|
156
|
-
|
157
|
-
def self.with_states(*states)
|
158
|
-
super
|
159
|
-
end
|
160
|
-
|
161
|
-
def self.without_state(*states)
|
162
|
-
super
|
163
|
-
end
|
164
|
-
|
165
|
-
def self.without_states(*states)
|
166
|
-
super
|
167
|
-
end
|
168
|
-
|
169
|
-
def self.human_state_name(state)
|
170
|
-
super
|
171
|
-
end
|
172
|
-
|
173
|
-
def self.human_state_event_name(event)
|
174
|
-
super
|
175
|
-
end
|
176
|
-
|
177
|
-
attr_accessor :status
|
178
|
-
|
179
|
-
def state
|
180
|
-
super
|
181
|
-
end
|
182
|
-
|
183
|
-
def state=(value)
|
184
|
-
super
|
185
|
-
end
|
186
|
-
|
187
|
-
def state?(state)
|
188
|
-
super
|
189
|
-
end
|
190
|
-
|
191
|
-
def state_name
|
192
|
-
super
|
193
|
-
end
|
194
|
-
|
195
|
-
def human_state_name
|
196
|
-
super
|
197
|
-
end
|
198
|
-
|
199
|
-
def state_events
|
200
|
-
super
|
201
|
-
end
|
202
|
-
|
203
|
-
def state_transitions
|
204
|
-
super
|
205
|
-
end
|
206
|
-
|
207
|
-
def state_paths
|
208
|
-
super
|
209
|
-
end
|
210
|
-
|
211
|
-
def fire_state_event(event)
|
212
|
-
super
|
213
|
-
end
|
214
|
-
end
|
215
|
-
|
216
|
-
assert_equal [], @klass.with_state
|
217
|
-
assert_equal [], @klass.with_states
|
218
|
-
assert_equal [], @klass.without_state
|
219
|
-
assert_equal [], @klass.without_states
|
220
|
-
assert_equal 'parked', @klass.human_state_name(:parked)
|
221
|
-
assert_equal 'ignite', @klass.human_state_event_name(:ignite)
|
222
|
-
|
223
|
-
assert_equal nil, @object.state
|
224
|
-
@object.state = 'idling'
|
225
|
-
assert_equal 'idling', @object.state
|
226
|
-
assert_equal nil, @object.status
|
227
|
-
assert_equal false, @object.state?(:parked)
|
228
|
-
assert_equal :idling, @object.state_name
|
229
|
-
assert_equal 'idling', @object.human_state_name
|
230
|
-
assert_equal [], @object.state_events
|
231
|
-
assert_equal [], @object.state_transitions
|
232
|
-
assert_equal [], @object.state_paths
|
233
|
-
assert_equal false, @object.fire_state_event(:ignite)
|
234
|
-
end
|
235
|
-
|
236
|
-
def test_should_not_output_warning
|
237
|
-
assert_equal '', $stderr.string
|
238
|
-
end
|
239
|
-
|
240
|
-
def teardown
|
241
|
-
$stderr = @original_stderr
|
242
|
-
StateMachines::Integrations.reset
|
243
|
-
end
|
244
|
-
end
|
@@ -1,175 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class MachineWithConflictingHelpersBeforeDefinitionTest < StateMachinesTest
|
4
|
-
module Custom
|
5
|
-
include StateMachines::Integrations::Base
|
6
|
-
|
7
|
-
def create_with_scope(_name)
|
8
|
-
lambda { |_klass, _values| [] }
|
9
|
-
end
|
10
|
-
|
11
|
-
def create_without_scope(_name)
|
12
|
-
lambda { |_klass, _values| [] }
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
def setup
|
17
|
-
@original_stderr, $stderr = $stderr, StringIO.new
|
18
|
-
|
19
|
-
StateMachines::Integrations.register(MachineWithConflictingHelpersBeforeDefinitionTest::Custom)
|
20
|
-
|
21
|
-
@superclass = Class.new do
|
22
|
-
def self.with_state
|
23
|
-
:with_state
|
24
|
-
end
|
25
|
-
|
26
|
-
def self.with_states
|
27
|
-
:with_states
|
28
|
-
end
|
29
|
-
|
30
|
-
def self.without_state
|
31
|
-
:without_state
|
32
|
-
end
|
33
|
-
|
34
|
-
def self.without_states
|
35
|
-
:without_states
|
36
|
-
end
|
37
|
-
|
38
|
-
def self.human_state_name
|
39
|
-
:human_state_name
|
40
|
-
end
|
41
|
-
|
42
|
-
def self.human_state_event_name
|
43
|
-
:human_state_event_name
|
44
|
-
end
|
45
|
-
|
46
|
-
attr_accessor :status
|
47
|
-
|
48
|
-
def state
|
49
|
-
'parked'
|
50
|
-
end
|
51
|
-
|
52
|
-
def state=(value)
|
53
|
-
self.status = value
|
54
|
-
end
|
55
|
-
|
56
|
-
def state?
|
57
|
-
true
|
58
|
-
end
|
59
|
-
|
60
|
-
def state_name
|
61
|
-
:parked
|
62
|
-
end
|
63
|
-
|
64
|
-
def human_state_name
|
65
|
-
'parked'
|
66
|
-
end
|
67
|
-
|
68
|
-
def state_events
|
69
|
-
[:ignite]
|
70
|
-
end
|
71
|
-
|
72
|
-
def state_transitions
|
73
|
-
[{ parked: :idling }]
|
74
|
-
end
|
75
|
-
|
76
|
-
def state_paths
|
77
|
-
[[{ parked: :idling }]]
|
78
|
-
end
|
79
|
-
|
80
|
-
def fire_state_event
|
81
|
-
true
|
82
|
-
end
|
83
|
-
end
|
84
|
-
@klass = Class.new(@superclass)
|
85
|
-
@machine = StateMachines::Machine.new(@klass, integration: :custom)
|
86
|
-
@machine.state :parked, :idling
|
87
|
-
@machine.event :ignite
|
88
|
-
@object = @klass.new
|
89
|
-
end
|
90
|
-
|
91
|
-
def test_should_not_redefine_singular_with_scope
|
92
|
-
assert_equal :with_state, @klass.with_state
|
93
|
-
end
|
94
|
-
|
95
|
-
def test_should_not_redefine_plural_with_scope
|
96
|
-
assert_equal :with_states, @klass.with_states
|
97
|
-
end
|
98
|
-
|
99
|
-
def test_should_not_redefine_singular_without_scope
|
100
|
-
assert_equal :without_state, @klass.without_state
|
101
|
-
end
|
102
|
-
|
103
|
-
def test_should_not_redefine_plural_without_scope
|
104
|
-
assert_equal :without_states, @klass.without_states
|
105
|
-
end
|
106
|
-
|
107
|
-
def test_should_not_redefine_human_attribute_name_reader
|
108
|
-
assert_equal :human_state_name, @klass.human_state_name
|
109
|
-
end
|
110
|
-
|
111
|
-
def test_should_not_redefine_human_event_name_reader
|
112
|
-
assert_equal :human_state_event_name, @klass.human_state_event_name
|
113
|
-
end
|
114
|
-
|
115
|
-
def test_should_not_redefine_attribute_reader
|
116
|
-
assert_equal 'parked', @object.state
|
117
|
-
end
|
118
|
-
|
119
|
-
def test_should_not_redefine_attribute_writer
|
120
|
-
@object.state = 'parked'
|
121
|
-
assert_equal 'parked', @object.status
|
122
|
-
end
|
123
|
-
|
124
|
-
def test_should_not_define_attribute_predicate
|
125
|
-
assert @object.state?
|
126
|
-
end
|
127
|
-
|
128
|
-
def test_should_not_redefine_attribute_name_reader
|
129
|
-
assert_equal :parked, @object.state_name
|
130
|
-
end
|
131
|
-
|
132
|
-
def test_should_not_redefine_attribute_human_name_reader
|
133
|
-
assert_equal 'parked', @object.human_state_name
|
134
|
-
end
|
135
|
-
|
136
|
-
def test_should_not_redefine_attribute_events_reader
|
137
|
-
assert_equal [:ignite], @object.state_events
|
138
|
-
end
|
139
|
-
|
140
|
-
def test_should_not_redefine_attribute_transitions_reader
|
141
|
-
assert_equal [{ parked: :idling }], @object.state_transitions
|
142
|
-
end
|
143
|
-
|
144
|
-
def test_should_not_redefine_attribute_paths_reader
|
145
|
-
assert_equal [[{ parked: :idling }]], @object.state_paths
|
146
|
-
end
|
147
|
-
|
148
|
-
def test_should_not_redefine_event_runner
|
149
|
-
assert_equal true, @object.fire_state_event
|
150
|
-
end
|
151
|
-
|
152
|
-
def test_should_output_warning
|
153
|
-
expected = [
|
154
|
-
'Instance method "state_events"',
|
155
|
-
'Instance method "state_transitions"',
|
156
|
-
'Instance method "fire_state_event"',
|
157
|
-
'Instance method "state_paths"',
|
158
|
-
'Class method "human_state_name"',
|
159
|
-
'Class method "human_state_event_name"',
|
160
|
-
'Instance method "state_name"',
|
161
|
-
'Instance method "human_state_name"',
|
162
|
-
'Class method "with_state"',
|
163
|
-
'Class method "with_states"',
|
164
|
-
'Class method "without_state"',
|
165
|
-
'Class method "without_states"'
|
166
|
-
].map { |method| "#{method} is already defined in #{@superclass}, use generic helper instead or set StateMachines::Machine.ignore_method_conflicts = true.\n" }.join
|
167
|
-
|
168
|
-
assert_equal expected, $stderr.string
|
169
|
-
end
|
170
|
-
|
171
|
-
def teardown
|
172
|
-
$stderr = @original_stderr
|
173
|
-
end
|
174
|
-
end
|
175
|
-
|
@@ -1,11 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class MachineWithCustomActionTest < StateMachinesTest
|
4
|
-
def setup
|
5
|
-
@machine = StateMachines::Machine.new(Class.new, action: :save)
|
6
|
-
end
|
7
|
-
|
8
|
-
def test_should_use_the_custom_action
|
9
|
-
assert_equal :save, @machine.action
|
10
|
-
end
|
11
|
-
end
|
@@ -1,103 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
module MachineWithCustomAttributeIntegration
|
4
|
-
include StateMachines::Integrations::Base
|
5
|
-
|
6
|
-
def self.integration_name
|
7
|
-
:custom_attribute
|
8
|
-
end
|
9
|
-
|
10
|
-
@defaults = { action: :save, use_transactions: false }
|
11
|
-
|
12
|
-
def create_with_scope(_name)
|
13
|
-
-> {}
|
14
|
-
end
|
15
|
-
|
16
|
-
def create_without_scope(_name)
|
17
|
-
-> {}
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
class MachineWithCustomAttributeTest < StateMachinesTest
|
22
|
-
def setup
|
23
|
-
StateMachines::Integrations.register(MachineWithCustomAttributeIntegration)
|
24
|
-
|
25
|
-
@klass = Class.new
|
26
|
-
@machine = StateMachines::Machine.new(@klass, :state, attribute: :state_id, initial: :active, integration: :custom_attribute) do
|
27
|
-
event :ignite do
|
28
|
-
transition parked: :idling
|
29
|
-
end
|
30
|
-
end
|
31
|
-
@object = @klass.new
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_should_define_a_reader_attribute_for_the_attribute
|
35
|
-
assert @object.respond_to?(:state_id)
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_should_define_a_writer_attribute_for_the_attribute
|
39
|
-
assert @object.respond_to?(:state_id=)
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_should_define_a_predicate_for_the_attribute
|
43
|
-
assert @object.respond_to?(:state?)
|
44
|
-
end
|
45
|
-
|
46
|
-
def test_should_define_a_name_reader_for_the_attribute
|
47
|
-
assert @object.respond_to?(:state_name)
|
48
|
-
end
|
49
|
-
|
50
|
-
def test_should_define_a_human_name_reader_for_the_attribute
|
51
|
-
assert @object.respond_to?(:state_name)
|
52
|
-
end
|
53
|
-
|
54
|
-
def test_should_define_an_event_reader_for_the_attribute
|
55
|
-
assert @object.respond_to?(:state_events)
|
56
|
-
end
|
57
|
-
|
58
|
-
def test_should_define_a_transition_reader_for_the_attribute
|
59
|
-
assert @object.respond_to?(:state_transitions)
|
60
|
-
end
|
61
|
-
|
62
|
-
def test_should_define_a_path_reader_for_the_attribute
|
63
|
-
assert @object.respond_to?(:state_paths)
|
64
|
-
end
|
65
|
-
|
66
|
-
def test_should_define_an_event_runner_for_the_attribute
|
67
|
-
assert @object.respond_to?(:fire_state_event)
|
68
|
-
end
|
69
|
-
|
70
|
-
def test_should_define_a_human_attribute_name_reader
|
71
|
-
assert @klass.respond_to?(:human_state_name)
|
72
|
-
end
|
73
|
-
|
74
|
-
def test_should_define_a_human_event_name_reader
|
75
|
-
assert @klass.respond_to?(:human_state_event_name)
|
76
|
-
end
|
77
|
-
|
78
|
-
def test_should_define_singular_with_scope
|
79
|
-
assert @klass.respond_to?(:with_state)
|
80
|
-
end
|
81
|
-
|
82
|
-
def test_should_define_singular_without_scope
|
83
|
-
assert @klass.respond_to?(:without_state)
|
84
|
-
end
|
85
|
-
|
86
|
-
def test_should_define_plural_with_scope
|
87
|
-
assert @klass.respond_to?(:with_states)
|
88
|
-
end
|
89
|
-
|
90
|
-
def test_should_define_plural_without_scope
|
91
|
-
assert @klass.respond_to?(:without_states)
|
92
|
-
end
|
93
|
-
|
94
|
-
def test_should_define_state_machines_reader
|
95
|
-
expected = { state: @machine }
|
96
|
-
assert_equal expected, @klass.state_machines
|
97
|
-
end
|
98
|
-
|
99
|
-
def teardown
|
100
|
-
StateMachines::Integrations.reset
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|