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,8 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithConflictingFromRequirementsTest < StateMachinesTest
|
4
|
-
def test_should_raise_an_exception
|
5
|
-
exception = assert_raises(ArgumentError) { StateMachines::Branch.new(from: :parked, except_from: :parked) }
|
6
|
-
assert_equal 'Conflicting keys: from, except_from', exception.message
|
7
|
-
end
|
8
|
-
end
|
@@ -1,8 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithConflictingOnRequirementsTest < StateMachinesTest
|
4
|
-
def test_should_raise_an_exception
|
5
|
-
exception = assert_raises(ArgumentError) { StateMachines::Branch.new(on: :ignite, except_on: :ignite) }
|
6
|
-
assert_equal 'Conflicting keys: on, except_on', exception.message
|
7
|
-
end
|
8
|
-
end
|
@@ -1,8 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithConflictingToRequirementsTest < StateMachinesTest
|
4
|
-
def test_should_raise_an_exception
|
5
|
-
exception = assert_raises(ArgumentError) { StateMachines::Branch.new(to: :idling, except_to: :idling) }
|
6
|
-
assert_equal 'Conflicting keys: to, except_to', exception.message
|
7
|
-
end
|
8
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithDifferentRequirementsTest < StateMachinesTest
|
4
|
-
def setup
|
5
|
-
@object = Object.new
|
6
|
-
@branch = StateMachines::Branch.new(from: :parked, to: :idling, on: :ignite)
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_should_match_empty_query
|
10
|
-
assert @branch.matches?(@object)
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_match_if_all_requirements_match
|
14
|
-
assert @branch.matches?(@object, from: :parked, to: :idling, on: :ignite)
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_should_not_match_if_from_not_included
|
18
|
-
refute @branch.matches?(@object, from: :idling)
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_should_not_match_if_to_not_included
|
22
|
-
refute @branch.matches?(@object, to: :parked)
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_should_not_match_if_on_not_included
|
26
|
-
refute @branch.matches?(@object, on: :park)
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_should_be_nil_if_unmatched
|
30
|
-
assert_nil @branch.match(@object, from: :parked, to: :idling, on: :park)
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_should_include_all_known_states
|
34
|
-
assert_equal [:parked, :idling], @branch.known_states
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_should_not_duplicate_known_statse
|
38
|
-
branch = StateMachines::Branch.new(except_from: :idling, to: :idling, on: :ignite)
|
39
|
-
assert_equal [:idling], branch.known_states
|
40
|
-
end
|
41
|
-
end
|
@@ -1,8 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithExceptFromMatcherRequirementTest < StateMachinesTest
|
4
|
-
def test_should_raise_an_exception
|
5
|
-
exception = assert_raises(ArgumentError) { StateMachines::Branch.new(except_from: StateMachines::AllMatcher.instance) }
|
6
|
-
assert_equal ':except_from option cannot use matchers; use :from instead', exception.message
|
7
|
-
end
|
8
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithExceptFromRequirementTest < StateMachinesTest
|
4
|
-
def setup
|
5
|
-
@object = Object.new
|
6
|
-
@branch = StateMachines::Branch.new(except_from: :parked)
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_should_use_a_blacklist_matcher
|
10
|
-
assert_instance_of StateMachines::BlacklistMatcher, @branch.state_requirements.first[:from]
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_match_if_not_included
|
14
|
-
assert @branch.matches?(@object, from: :idling)
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_should_not_match_if_included
|
18
|
-
refute @branch.matches?(@object, from: :parked)
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_should_match_if_nil
|
22
|
-
assert @branch.matches?(@object, from: nil)
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_should_ignore_to
|
26
|
-
assert @branch.matches?(@object, from: :idling, to: :parked)
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_should_ignore_on
|
30
|
-
assert @branch.matches?(@object, from: :idling, on: :ignite)
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_should_be_included_in_known_states
|
34
|
-
assert_equal [:parked], @branch.known_states
|
35
|
-
end
|
36
|
-
end
|
@@ -1,8 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithExceptOnMatcherRequirementTest < StateMachinesTest
|
4
|
-
def test_should_raise_an_exception
|
5
|
-
exception = assert_raises(ArgumentError) { StateMachines::Branch.new(except_on: StateMachines::AllMatcher.instance) }
|
6
|
-
assert_equal ':except_on option cannot use matchers; use :on instead', exception.message
|
7
|
-
end
|
8
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithExceptOnRequirementTest < StateMachinesTest
|
4
|
-
def setup
|
5
|
-
@object = Object.new
|
6
|
-
@branch = StateMachines::Branch.new(except_on: :ignite)
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_should_use_a_blacklist_matcher
|
10
|
-
assert_instance_of StateMachines::BlacklistMatcher, @branch.event_requirement
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_match_if_not_included
|
14
|
-
assert @branch.matches?(@object, on: :park)
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_should_not_match_if_included
|
18
|
-
refute @branch.matches?(@object, on: :ignite)
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_should_match_if_nil
|
22
|
-
assert @branch.matches?(@object, on: nil)
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_should_ignore_to
|
26
|
-
assert @branch.matches?(@object, on: :park, to: :idling)
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_should_ignore_from
|
30
|
-
assert @branch.matches?(@object, on: :park, from: :parked)
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_should_not_be_included_in_known_states
|
34
|
-
assert_equal [], @branch.known_states
|
35
|
-
end
|
36
|
-
end
|
@@ -1,8 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithExceptToMatcherRequirementTest < StateMachinesTest
|
4
|
-
def test_should_raise_an_exception
|
5
|
-
exception = assert_raises(ArgumentError) { StateMachines::Branch.new(except_to: StateMachines::AllMatcher.instance) }
|
6
|
-
assert_equal ':except_to option cannot use matchers; use :to instead', exception.message
|
7
|
-
end
|
8
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithExceptToRequirementTest < StateMachinesTest
|
4
|
-
def setup
|
5
|
-
@object = Object.new
|
6
|
-
@branch = StateMachines::Branch.new(except_to: :idling)
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_should_use_a_blacklist_matcher
|
10
|
-
assert_instance_of StateMachines::BlacklistMatcher, @branch.state_requirements.first[:to]
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_match_if_not_included
|
14
|
-
assert @branch.matches?(@object, to: :parked)
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_should_not_match_if_included
|
18
|
-
refute @branch.matches?(@object, to: :idling)
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_should_match_if_nil
|
22
|
-
assert @branch.matches?(@object, to: nil)
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_should_ignore_from
|
26
|
-
assert @branch.matches?(@object, to: :parked, from: :idling)
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_should_ignore_on
|
30
|
-
assert @branch.matches?(@object, to: :parked, on: :ignite)
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_should_be_included_in_known_states
|
34
|
-
assert_equal [:idling], @branch.known_states
|
35
|
-
end
|
36
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithFromMatcherRequirementTest < StateMachinesTest
|
4
|
-
def setup
|
5
|
-
@object = Object.new
|
6
|
-
@branch = StateMachines::Branch.new(from: StateMachines::BlacklistMatcher.new([:idling, :parked]))
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_should_match_if_included
|
10
|
-
assert @branch.matches?(@object, from: :first_gear)
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_not_match_if_not_included
|
14
|
-
refute @branch.matches?(@object, from: :idling)
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_include_values_in_known_states
|
18
|
-
assert_equal [:idling, :parked], @branch.known_states
|
19
|
-
end
|
20
|
-
end
|
@@ -1,45 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithFromRequirementTest < StateMachinesTest
|
4
|
-
def setup
|
5
|
-
@object = Object.new
|
6
|
-
@branch = StateMachines::Branch.new(from: :parked)
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_should_use_a_whitelist_matcher
|
10
|
-
assert_instance_of StateMachines::WhitelistMatcher, @branch.state_requirements.first[:from]
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_match_if_not_specified
|
14
|
-
assert @branch.matches?(@object, to: :idling)
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_should_match_if_included
|
18
|
-
assert @branch.matches?(@object, from: :parked)
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_should_not_match_if_not_included
|
22
|
-
refute @branch.matches?(@object, from: :idling)
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_should_not_match_if_nil
|
26
|
-
refute @branch.matches?(@object, from: nil)
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_should_ignore_to
|
30
|
-
assert @branch.matches?(@object, from: :parked, to: :idling)
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_should_ignore_on
|
34
|
-
assert @branch.matches?(@object, from: :parked, on: :ignite)
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_should_be_included_in_known_states
|
38
|
-
assert_equal [:parked], @branch.known_states
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_should_include_requirement_in_match
|
42
|
-
match = @branch.match(@object, from: :parked)
|
43
|
-
assert_equal @branch.state_requirements.first[:from], match[:from]
|
44
|
-
end
|
45
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithIfConditionalTest < StateMachinesTest
|
4
|
-
def setup
|
5
|
-
@object = Object.new
|
6
|
-
end
|
7
|
-
|
8
|
-
def test_should_have_an_if_condition
|
9
|
-
branch = StateMachines::Branch.new(if: lambda { true })
|
10
|
-
refute_nil branch.if_condition
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_match_if_true
|
14
|
-
branch = StateMachines::Branch.new(if: lambda { true })
|
15
|
-
assert branch.matches?(@object)
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_should_not_match_if_false
|
19
|
-
branch = StateMachines::Branch.new(if: lambda { false })
|
20
|
-
refute branch.matches?(@object)
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_should_be_nil_if_unmatched
|
24
|
-
branch = StateMachines::Branch.new(if: lambda { false })
|
25
|
-
assert_nil branch.match(@object)
|
26
|
-
end
|
27
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithImplicitAndExplicitRequirementsTest < StateMachinesTest
|
4
|
-
def setup
|
5
|
-
@branch = StateMachines::Branch.new(parked: :idling, from: :parked)
|
6
|
-
end
|
7
|
-
|
8
|
-
def test_should_create_multiple_requirements
|
9
|
-
assert_equal 2, @branch.state_requirements.length
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_should_create_implicit_requirements_for_implicit_options
|
13
|
-
assert(@branch.state_requirements.any? do |state_requirement|
|
14
|
-
state_requirement[:from].values == [:parked] && state_requirement[:to].values == [:idling]
|
15
|
-
end)
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_should_create_implicit_requirements_for_explicit_options
|
19
|
-
assert(@branch.state_requirements.any? do |state_requirement|
|
20
|
-
state_requirement[:from].values == [:from] && state_requirement[:to].values == [:parked]
|
21
|
-
end)
|
22
|
-
end
|
23
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithMultipleFromRequirementsTest < StateMachinesTest
|
4
|
-
def setup
|
5
|
-
@object = Object.new
|
6
|
-
@branch = StateMachines::Branch.new(from: [:idling, :parked])
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_should_match_if_included
|
10
|
-
assert @branch.matches?(@object, from: :idling)
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_not_match_if_not_included
|
14
|
-
refute @branch.matches?(@object, from: :first_gear)
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_should_be_included_in_known_states
|
18
|
-
assert_equal [:idling, :parked], @branch.known_states
|
19
|
-
end
|
20
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithImplicitRequirementTest < StateMachinesTest
|
4
|
-
def setup
|
5
|
-
@branch = StateMachines::Branch.new(parked: :idling, on: :ignite)
|
6
|
-
end
|
7
|
-
|
8
|
-
def test_should_create_an_event_requirement
|
9
|
-
assert_instance_of StateMachines::WhitelistMatcher, @branch.event_requirement
|
10
|
-
assert_equal [:ignite], @branch.event_requirement.values
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_use_a_whitelist_from_matcher
|
14
|
-
assert_instance_of StateMachines::WhitelistMatcher, @branch.state_requirements.first[:from]
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_should_use_a_whitelist_to_matcher
|
18
|
-
assert_instance_of StateMachines::WhitelistMatcher, @branch.state_requirements.first[:to]
|
19
|
-
end
|
20
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithImplicitToRequirementMatcherTest < StateMachinesTest
|
4
|
-
def setup
|
5
|
-
@matcher = StateMachines::BlacklistMatcher.new(:idling)
|
6
|
-
@branch = StateMachines::Branch.new(parked: @matcher)
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_should_convert_from_to_whitelist_matcher
|
10
|
-
assert_instance_of StateMachines::WhitelistMatcher, @branch.state_requirements.first[:from]
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_not_convert_to_to_whitelist_matcher
|
14
|
-
assert_equal @matcher, @branch.state_requirements.first[:to]
|
15
|
-
end
|
16
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithMultipleExceptFromRequirementsTest < StateMachinesTest
|
4
|
-
def setup
|
5
|
-
@object = Object.new
|
6
|
-
@branch = StateMachines::Branch.new(except_from: [:idling, :parked])
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_should_match_if_not_included
|
10
|
-
assert @branch.matches?(@object, from: :first_gear)
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_not_match_if_included
|
14
|
-
refute @branch.matches?(@object, from: :idling)
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_should_be_included_in_known_states
|
18
|
-
assert_equal [:idling, :parked], @branch.known_states
|
19
|
-
end
|
20
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithMultipleExceptOnRequirementsTest < StateMachinesTest
|
4
|
-
def setup
|
5
|
-
@object = Object.new
|
6
|
-
@branch = StateMachines::Branch.new(except_on: [:ignite, :park])
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_should_match_if_not_included
|
10
|
-
assert @branch.matches?(@object, on: :shift_up)
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_not_match_if_included
|
14
|
-
refute @branch.matches?(@object, on: :ignite)
|
15
|
-
end
|
16
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithMultipleExceptToRequirementsTest < StateMachinesTest
|
4
|
-
def setup
|
5
|
-
@object = Object.new
|
6
|
-
@branch = StateMachines::Branch.new(except_to: [:idling, :parked])
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_should_match_if_not_included
|
10
|
-
assert @branch.matches?(@object, to: :first_gear)
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_not_match_if_included
|
14
|
-
refute @branch.matches?(@object, to: :idling)
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_should_be_included_in_known_states
|
18
|
-
assert_equal [:idling, :parked], @branch.known_states
|
19
|
-
end
|
20
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithImplicitFromRequirementMatcherTest < StateMachinesTest
|
4
|
-
def setup
|
5
|
-
@matcher = StateMachines::BlacklistMatcher.new(:parked)
|
6
|
-
@branch = StateMachines::Branch.new(@matcher => :idling)
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_should_not_convert_from_to_whitelist_matcher
|
10
|
-
assert_equal @matcher, @branch.state_requirements.first[:from]
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_convert_to_to_whitelist_matcher
|
14
|
-
assert_instance_of StateMachines::WhitelistMatcher, @branch.state_requirements.first[:to]
|
15
|
-
end
|
16
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithMultipleIfConditionalsTest < StateMachinesTest
|
4
|
-
def setup
|
5
|
-
@object = Object.new
|
6
|
-
end
|
7
|
-
|
8
|
-
def test_should_match_if_all_are_true
|
9
|
-
branch = StateMachines::Branch.new(if: [lambda { true }, lambda { true }])
|
10
|
-
assert branch.match(@object)
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_not_match_if_any_are_false
|
14
|
-
branch = StateMachines::Branch.new(if: [lambda { true }, lambda { false }])
|
15
|
-
refute branch.match(@object)
|
16
|
-
|
17
|
-
branch = StateMachines::Branch.new(if: [lambda { false }, lambda { true }])
|
18
|
-
refute branch.match(@object)
|
19
|
-
end
|
20
|
-
end
|
@@ -1,53 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithMultipleImplicitRequirementsTest < StateMachinesTest
|
4
|
-
def setup
|
5
|
-
@object = Object.new
|
6
|
-
@branch = StateMachines::Branch.new(parked: :idling, idling: :first_gear, on: :ignite)
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_should_create_multiple_state_requirements
|
10
|
-
assert_equal 2, @branch.state_requirements.length
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_not_match_event_as_state_requirement
|
14
|
-
refute @branch.matches?(@object, from: :on, to: :ignite)
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_should_match_if_from_included_in_any
|
18
|
-
assert @branch.matches?(@object, from: :parked)
|
19
|
-
assert @branch.matches?(@object, from: :idling)
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_should_not_match_if_from_not_included_in_any
|
23
|
-
refute @branch.matches?(@object, from: :first_gear)
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_should_match_if_to_included_in_any
|
27
|
-
assert @branch.matches?(@object, to: :idling)
|
28
|
-
assert @branch.matches?(@object, to: :first_gear)
|
29
|
-
end
|
30
|
-
|
31
|
-
def test_should_not_match_if_to_not_included_in_any
|
32
|
-
refute @branch.matches?(@object, to: :parked)
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_should_match_if_all_options_match
|
36
|
-
assert @branch.matches?(@object, from: :parked, to: :idling, on: :ignite)
|
37
|
-
assert @branch.matches?(@object, from: :idling, to: :first_gear, on: :ignite)
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_should_not_match_if_any_options_do_not_match
|
41
|
-
refute @branch.matches?(@object, from: :parked, to: :idling, on: :park)
|
42
|
-
refute @branch.matches?(@object, from: :parked, to: :first_gear, on: :park)
|
43
|
-
end
|
44
|
-
|
45
|
-
def test_should_include_all_known_states
|
46
|
-
assert_equal [:first_gear, :idling, :parked], @branch.known_states.sort_by { |state| state.to_s }
|
47
|
-
end
|
48
|
-
|
49
|
-
def test_should_not_duplicate_known_statse
|
50
|
-
branch = StateMachines::Branch.new(parked: :idling, first_gear: :idling)
|
51
|
-
assert_equal [:first_gear, :idling, :parked], branch.known_states.sort_by { |state| state.to_s }
|
52
|
-
end
|
53
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithMultipleToRequirementsTest < StateMachinesTest
|
4
|
-
def setup
|
5
|
-
@object = Object.new
|
6
|
-
@branch = StateMachines::Branch.new(to: [:idling, :parked])
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_should_match_if_included
|
10
|
-
assert @branch.matches?(@object, to: :idling)
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_not_match_if_not_included
|
14
|
-
refute @branch.matches?(@object, to: :first_gear)
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_should_be_included_in_known_states
|
18
|
-
assert_equal [:idling, :parked], @branch.known_states
|
19
|
-
end
|
20
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithMultipleUnlessConditionalsTest < StateMachinesTest
|
4
|
-
def setup
|
5
|
-
@object = Object.new
|
6
|
-
end
|
7
|
-
|
8
|
-
def test_should_match_if_all_are_false
|
9
|
-
branch = StateMachines::Branch.new(unless: [lambda { false }, lambda { false }])
|
10
|
-
assert branch.match(@object)
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_not_match_if_any_are_true
|
14
|
-
branch = StateMachines::Branch.new(unless: [lambda { true }, lambda { false }])
|
15
|
-
refute branch.match(@object)
|
16
|
-
|
17
|
-
branch = StateMachines::Branch.new(unless: [lambda { false }, lambda { true }])
|
18
|
-
refute branch.match(@object)
|
19
|
-
end
|
20
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithNilRequirementsTest < StateMachinesTest
|
4
|
-
def setup
|
5
|
-
@object = Object.new
|
6
|
-
@branch = StateMachines::Branch.new(from: nil, to: nil)
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_should_match_empty_query
|
10
|
-
assert @branch.matches?(@object)
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_match_if_all_requirements_match
|
14
|
-
assert @branch.matches?(@object, from: nil, to: nil)
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_should_not_match_if_from_not_included
|
18
|
-
refute @branch.matches?(@object, from: :parked)
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_should_not_match_if_to_not_included
|
22
|
-
refute @branch.matches?(@object, to: :idling)
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_should_include_all_known_states
|
26
|
-
assert_equal [nil], @branch.known_states
|
27
|
-
end
|
28
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithNoRequirementsTest < StateMachinesTest
|
4
|
-
def setup
|
5
|
-
@object = Object.new
|
6
|
-
@branch = StateMachines::Branch.new
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_should_use_all_matcher_for_event_requirement
|
10
|
-
assert_equal StateMachines::AllMatcher.instance, @branch.event_requirement
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_use_all_matcher_for_from_state_requirement
|
14
|
-
assert_equal StateMachines::AllMatcher.instance, @branch.state_requirements.first[:from]
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_should_use_all_matcher_for_to_state_requirement
|
18
|
-
assert_equal StateMachines::AllMatcher.instance, @branch.state_requirements.first[:to]
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_should_match_empty_query
|
22
|
-
assert @branch.matches?(@object, {})
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_should_match_non_empty_query
|
26
|
-
assert @branch.matches?(@object, to: :idling, from: :parked, on: :ignite)
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_should_include_all_requirements_in_match
|
30
|
-
match = @branch.match(@object, {})
|
31
|
-
|
32
|
-
assert_equal @branch.state_requirements.first[:from], match[:from]
|
33
|
-
assert_equal @branch.state_requirements.first[:to], match[:to]
|
34
|
-
assert_equal @branch.event_requirement, match[:on]
|
35
|
-
end
|
36
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithOnMatcherRequirementTest < StateMachinesTest
|
4
|
-
def setup
|
5
|
-
@object = Object.new
|
6
|
-
@branch = StateMachines::Branch.new(on: StateMachines::BlacklistMatcher.new([:ignite, :park]))
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_should_match_if_included
|
10
|
-
assert @branch.matches?(@object, on: :shift_up)
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_not_match_if_not_included
|
14
|
-
refute @branch.matches?(@object, on: :ignite)
|
15
|
-
end
|
16
|
-
end
|