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,59 +0,0 @@
|
|
1
|
-
require_relative '../test_helper'
|
2
|
-
require_relative '../files/models/vehicle'
|
3
|
-
|
4
|
-
class VehicleIdlingTest < MiniTest::Test
|
5
|
-
def setup
|
6
|
-
@vehicle = Vehicle.new
|
7
|
-
@vehicle.ignite
|
8
|
-
end
|
9
|
-
|
10
|
-
def test_should_be_in_idling_state
|
11
|
-
assert_equal 'idling', @vehicle.state
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_should_be_idling
|
15
|
-
assert @vehicle.idling?
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_should_have_seatbelt_on
|
19
|
-
assert @vehicle.seatbelt_on
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_should_track_time_elapsed
|
23
|
-
refute_nil @vehicle.time_elapsed
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_should_allow_park
|
27
|
-
assert @vehicle.park
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_should_call_park_with_bang_action
|
31
|
-
class << @vehicle
|
32
|
-
def park
|
33
|
-
super && 1
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
assert_equal 1, @vehicle.park!
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_should_not_allow_idle
|
41
|
-
refute @vehicle.idle
|
42
|
-
end
|
43
|
-
|
44
|
-
def test_should_allow_shift_up
|
45
|
-
assert @vehicle.shift_up
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_should_not_allow_shift_down
|
49
|
-
refute @vehicle.shift_down
|
50
|
-
end
|
51
|
-
|
52
|
-
def test_should_not_allow_crash
|
53
|
-
refute @vehicle.crash
|
54
|
-
end
|
55
|
-
|
56
|
-
def test_should_not_allow_repair
|
57
|
-
refute @vehicle.repair
|
58
|
-
end
|
59
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
require_relative '../test_helper'
|
2
|
-
require_relative '../files/models/vehicle'
|
3
|
-
|
4
|
-
class VehicleLockedTest < MiniTest::Test
|
5
|
-
def setup
|
6
|
-
@vehicle = Vehicle.new
|
7
|
-
@vehicle.state = 'locked'
|
8
|
-
end
|
9
|
-
|
10
|
-
def test_should_be_parked_after_park
|
11
|
-
@vehicle.park
|
12
|
-
assert @vehicle.parked?
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_should_be_parked_after_ignite
|
16
|
-
@vehicle.ignite
|
17
|
-
assert @vehicle.parked?
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_should_be_parked_after_shift_up
|
21
|
-
@vehicle.shift_up
|
22
|
-
assert @vehicle.parked?
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_should_be_parked_after_shift_down
|
26
|
-
@vehicle.shift_down
|
27
|
-
assert @vehicle.parked?
|
28
|
-
end
|
29
|
-
end
|
@@ -1,53 +0,0 @@
|
|
1
|
-
require_relative '../test_helper'
|
2
|
-
require_relative '../files/models/vehicle'
|
3
|
-
|
4
|
-
class VehicleParkedTest < MiniTest::Test
|
5
|
-
def setup
|
6
|
-
@vehicle = Vehicle.new
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_should_be_in_parked_state
|
10
|
-
assert_equal 'parked', @vehicle.state
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_not_have_the_seatbelt_on
|
14
|
-
refute @vehicle.seatbelt_on
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_should_not_allow_park
|
18
|
-
refute @vehicle.park
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_should_allow_ignite
|
22
|
-
assert @vehicle.ignite
|
23
|
-
assert_equal 'idling', @vehicle.state
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_should_not_allow_idle
|
27
|
-
refute @vehicle.idle
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_should_not_allow_shift_up
|
31
|
-
refute @vehicle.shift_up
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_should_not_allow_shift_down
|
35
|
-
refute @vehicle.shift_down
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_should_not_allow_crash
|
39
|
-
refute @vehicle.crash
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_should_not_allow_repair
|
43
|
-
refute @vehicle.repair
|
44
|
-
end
|
45
|
-
|
46
|
-
def test_should_raise_exception_if_repair_not_allowed!
|
47
|
-
exception = assert_raises(StateMachines::InvalidTransition) { @vehicle.repair! }
|
48
|
-
assert_equal @vehicle, exception.object
|
49
|
-
assert_equal Vehicle.state_machine(:state), exception.machine
|
50
|
-
assert_equal :repair, exception.event
|
51
|
-
assert_equal 'parked', exception.from
|
52
|
-
end
|
53
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require_relative '../test_helper'
|
2
|
-
require_relative '../files/models/vehicle'
|
3
|
-
|
4
|
-
class VehicleRepairedTest < MiniTest::Test
|
5
|
-
def setup
|
6
|
-
@vehicle = Vehicle.new
|
7
|
-
@vehicle.ignite
|
8
|
-
@vehicle.shift_up
|
9
|
-
@vehicle.crash
|
10
|
-
@vehicle.repair
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_be_in_parked_state
|
14
|
-
assert_equal 'parked', @vehicle.state
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_should_not_have_a_busy_auto_shop
|
18
|
-
assert @vehicle.auto_shop.available?
|
19
|
-
end
|
20
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
require_relative '../test_helper'
|
2
|
-
require_relative '../files/models/vehicle'
|
3
|
-
|
4
|
-
class VehicleSecondGearTest < MiniTest::Test
|
5
|
-
def setup
|
6
|
-
@vehicle = Vehicle.new
|
7
|
-
@vehicle.ignite
|
8
|
-
2.times { @vehicle.shift_up }
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_should_be_in_second_gear_state
|
12
|
-
assert_equal 'second_gear', @vehicle.state
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_should_be_second_gear
|
16
|
-
assert @vehicle.second_gear?
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_should_not_allow_park
|
20
|
-
refute @vehicle.park
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_should_not_allow_idle
|
24
|
-
refute @vehicle.idle
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_should_allow_shift_up
|
28
|
-
assert @vehicle.shift_up
|
29
|
-
end
|
30
|
-
|
31
|
-
def test_should_allow_shift_down
|
32
|
-
assert @vehicle.shift_down
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_should_allow_crash
|
36
|
-
assert @vehicle.crash
|
37
|
-
end
|
38
|
-
|
39
|
-
def test_should_not_allow_repair
|
40
|
-
refute @vehicle.repair
|
41
|
-
end
|
42
|
-
end
|
@@ -1,65 +0,0 @@
|
|
1
|
-
require_relative '../test_helper'
|
2
|
-
require_relative '../files/models/vehicle'
|
3
|
-
|
4
|
-
class VehicleStalledTest < MiniTest::Test
|
5
|
-
def setup
|
6
|
-
@vehicle = Vehicle.new
|
7
|
-
@vehicle.ignite
|
8
|
-
@vehicle.shift_up
|
9
|
-
@vehicle.crash
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_should_be_in_stalled_state
|
13
|
-
assert_equal 'stalled', @vehicle.state
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_should_be_stalled
|
17
|
-
assert @vehicle.stalled?
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_should_be_towed
|
21
|
-
assert @vehicle.auto_shop.busy?
|
22
|
-
assert_equal 1, @vehicle.auto_shop.num_customers
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_should_have_an_increased_insurance_premium
|
26
|
-
assert_equal 150, @vehicle.insurance_premium
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_should_not_allow_park
|
30
|
-
refute @vehicle.park
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_should_allow_ignite
|
34
|
-
assert @vehicle.ignite
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_should_not_change_state_when_ignited
|
38
|
-
assert_equal 'stalled', @vehicle.state
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_should_not_allow_idle
|
42
|
-
refute @vehicle.idle
|
43
|
-
end
|
44
|
-
|
45
|
-
def test_should_now_allow_shift_up
|
46
|
-
refute @vehicle.shift_up
|
47
|
-
end
|
48
|
-
|
49
|
-
def test_should_not_allow_shift_down
|
50
|
-
refute @vehicle.shift_down
|
51
|
-
end
|
52
|
-
|
53
|
-
def test_should_not_allow_crash
|
54
|
-
refute @vehicle.crash
|
55
|
-
end
|
56
|
-
|
57
|
-
def test_should_allow_repair_if_auto_shop_is_busy
|
58
|
-
assert @vehicle.repair
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_should_not_allow_repair_if_auto_shop_is_available
|
62
|
-
@vehicle.auto_shop.fix_vehicle
|
63
|
-
refute @vehicle.repair
|
64
|
-
end
|
65
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require_relative '../test_helper'
|
2
|
-
require_relative '../files/models/vehicle'
|
3
|
-
|
4
|
-
class VehicleTest < MiniTest::Test
|
5
|
-
def setup
|
6
|
-
@vehicle = Vehicle.new
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_should_not_allow_access_to_subclass_events
|
10
|
-
refute @vehicle.respond_to?(:reverse)
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_have_human_state_names
|
14
|
-
assert_equal 'parked', Vehicle.human_state_name(:parked)
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_should_have_human_state_event_names
|
18
|
-
assert_equal 'park', Vehicle.human_state_event_name(:park)
|
19
|
-
end
|
20
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
require_relative '../test_helper'
|
2
|
-
require_relative '../files/models/vehicle'
|
3
|
-
|
4
|
-
class VehicleThirdGearTest < MiniTest::Test
|
5
|
-
def setup
|
6
|
-
@vehicle = Vehicle.new
|
7
|
-
@vehicle.ignite
|
8
|
-
3.times { @vehicle.shift_up }
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_should_be_in_third_gear_state
|
12
|
-
assert_equal 'third_gear', @vehicle.state
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_should_be_third_gear
|
16
|
-
assert @vehicle.third_gear?
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_should_not_allow_park
|
20
|
-
refute @vehicle.park
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_should_not_allow_idle
|
24
|
-
refute @vehicle.idle
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_should_not_allow_shift_up
|
28
|
-
refute @vehicle.shift_up
|
29
|
-
end
|
30
|
-
|
31
|
-
def test_should_allow_shift_down
|
32
|
-
assert @vehicle.shift_down
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_should_allow_crash
|
36
|
-
assert @vehicle.crash
|
37
|
-
end
|
38
|
-
|
39
|
-
def test_should_not_allow_repair
|
40
|
-
refute @vehicle.repair
|
41
|
-
end
|
42
|
-
end
|
@@ -1,181 +0,0 @@
|
|
1
|
-
require_relative '../test_helper'
|
2
|
-
require_relative '../files/models/vehicle'
|
3
|
-
|
4
|
-
class VehicleUnsavedTest < MiniTest::Test
|
5
|
-
def setup
|
6
|
-
@vehicle = Vehicle.new
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_should_be_in_parked_state
|
10
|
-
assert_equal 'parked', @vehicle.state
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_raise_exception_if_checking_invalid_state
|
14
|
-
assert_raises(IndexError) { @vehicle.state?(:invalid) }
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_should_raise_exception_if_getting_name_of_invalid_state
|
18
|
-
@vehicle.state = 'invalid'
|
19
|
-
assert_raises(ArgumentError) { @vehicle.state_name }
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_should_be_parked
|
23
|
-
assert @vehicle.parked?
|
24
|
-
assert @vehicle.state?(:parked)
|
25
|
-
assert_equal :parked, @vehicle.state_name
|
26
|
-
assert_equal 'parked', @vehicle.human_state_name
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_should_not_be_idling
|
30
|
-
refute @vehicle.idling?
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_should_not_be_first_gear
|
34
|
-
refute @vehicle.first_gear?
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_should_not_be_second_gear
|
38
|
-
refute @vehicle.second_gear?
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_should_not_be_stalled
|
42
|
-
refute @vehicle.stalled?
|
43
|
-
end
|
44
|
-
|
45
|
-
def test_should_not_be_able_to_park
|
46
|
-
refute @vehicle.can_park?
|
47
|
-
end
|
48
|
-
|
49
|
-
def test_should_not_have_a_transition_for_park
|
50
|
-
assert_nil @vehicle.park_transition
|
51
|
-
end
|
52
|
-
|
53
|
-
def test_should_not_allow_park
|
54
|
-
refute @vehicle.park
|
55
|
-
end
|
56
|
-
|
57
|
-
def test_should_be_able_to_ignite
|
58
|
-
assert @vehicle.can_ignite?
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_should_have_a_transition_for_ignite
|
62
|
-
transition = @vehicle.ignite_transition
|
63
|
-
refute_nil transition
|
64
|
-
assert_equal 'parked', transition.from
|
65
|
-
assert_equal 'idling', transition.to
|
66
|
-
assert_equal :ignite, transition.event
|
67
|
-
assert_equal :state, transition.attribute
|
68
|
-
assert_equal @vehicle, transition.object
|
69
|
-
end
|
70
|
-
|
71
|
-
def test_should_have_a_list_of_possible_events
|
72
|
-
assert_equal [:ignite], @vehicle.state_events
|
73
|
-
end
|
74
|
-
|
75
|
-
def test_should_have_a_list_of_possible_transitions
|
76
|
-
assert_equal [{ object: @vehicle, attribute: :state, event: :ignite, from: 'parked', to: 'idling' }], @vehicle.state_transitions.map { |transition| transition.attributes }
|
77
|
-
end
|
78
|
-
|
79
|
-
def test_should_have_a_list_of_possible_paths
|
80
|
-
assert_equal [[
|
81
|
-
StateMachines::Transition.new(@vehicle, Vehicle.state_machine, :ignite, :parked, :idling),
|
82
|
-
StateMachines::Transition.new(@vehicle, Vehicle.state_machine, :shift_up, :idling, :first_gear)
|
83
|
-
]], @vehicle.state_paths(to: :first_gear)
|
84
|
-
end
|
85
|
-
|
86
|
-
def test_should_allow_generic_event_to_fire
|
87
|
-
assert @vehicle.fire_state_event(:ignite)
|
88
|
-
assert_equal 'idling', @vehicle.state
|
89
|
-
end
|
90
|
-
|
91
|
-
def test_should_pass_arguments_through_to_generic_event_runner
|
92
|
-
@vehicle.fire_state_event(:ignite, 1, 2, 3)
|
93
|
-
assert_equal [1, 2, 3], @vehicle.last_transition_args
|
94
|
-
end
|
95
|
-
|
96
|
-
def test_should_allow_skipping_action_through_generic_event_runner
|
97
|
-
@vehicle.fire_state_event(:ignite, false)
|
98
|
-
assert_equal false, @vehicle.saved
|
99
|
-
end
|
100
|
-
|
101
|
-
def test_should_raise_error_with_invalid_event_through_generic_event_runer
|
102
|
-
assert_raises(IndexError) { @vehicle.fire_state_event(:invalid) }
|
103
|
-
end
|
104
|
-
|
105
|
-
def test_should_allow_ignite
|
106
|
-
assert @vehicle.ignite
|
107
|
-
assert_equal 'idling', @vehicle.state
|
108
|
-
end
|
109
|
-
|
110
|
-
def test_should_allow_ignite_with_skipped_action
|
111
|
-
assert @vehicle.ignite(false)
|
112
|
-
assert @vehicle.new_record?
|
113
|
-
end
|
114
|
-
|
115
|
-
def test_should_allow_ignite_bang
|
116
|
-
assert @vehicle.ignite!
|
117
|
-
end
|
118
|
-
|
119
|
-
def test_should_allow_ignite_bang_with_skipped_action
|
120
|
-
assert @vehicle.ignite!(false)
|
121
|
-
assert @vehicle.new_record?
|
122
|
-
end
|
123
|
-
|
124
|
-
def test_should_be_saved_after_successful_event
|
125
|
-
@vehicle.ignite
|
126
|
-
refute @vehicle.new_record?
|
127
|
-
end
|
128
|
-
|
129
|
-
def test_should_not_allow_idle
|
130
|
-
refute @vehicle.idle
|
131
|
-
end
|
132
|
-
|
133
|
-
def test_should_not_allow_shift_up
|
134
|
-
refute @vehicle.shift_up
|
135
|
-
end
|
136
|
-
|
137
|
-
def test_should_not_allow_shift_down
|
138
|
-
refute @vehicle.shift_down
|
139
|
-
end
|
140
|
-
|
141
|
-
def test_should_not_allow_crash
|
142
|
-
refute @vehicle.crash
|
143
|
-
end
|
144
|
-
|
145
|
-
def test_should_not_allow_repair
|
146
|
-
refute @vehicle.repair
|
147
|
-
end
|
148
|
-
|
149
|
-
def test_should_be_insurance_inactive
|
150
|
-
assert @vehicle.insurance_inactive?
|
151
|
-
end
|
152
|
-
|
153
|
-
def test_should_be_able_to_buy
|
154
|
-
assert @vehicle.can_buy_insurance?
|
155
|
-
end
|
156
|
-
|
157
|
-
def test_should_allow_buying_insurance
|
158
|
-
assert @vehicle.buy_insurance
|
159
|
-
end
|
160
|
-
|
161
|
-
def test_should_allow_buying_insurance_bang
|
162
|
-
assert @vehicle.buy_insurance!
|
163
|
-
end
|
164
|
-
|
165
|
-
def test_should_allow_ignite_buying_insurance_with_skipped_action
|
166
|
-
assert @vehicle.buy_insurance!(false)
|
167
|
-
assert @vehicle.new_record?
|
168
|
-
end
|
169
|
-
|
170
|
-
def test_should_not_be_insurance_active
|
171
|
-
refute @vehicle.insurance_active?
|
172
|
-
end
|
173
|
-
|
174
|
-
def test_should_not_be_able_to_cancel
|
175
|
-
refute @vehicle.can_cancel_insurance?
|
176
|
-
end
|
177
|
-
|
178
|
-
def test_should_not_allow_cancelling_insurance
|
179
|
-
refute @vehicle.cancel_insurance
|
180
|
-
end
|
181
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
require_relative '../test_helper'
|
2
|
-
require_relative '../files/models/vehicle'
|
3
|
-
|
4
|
-
class VehicleWithEventAttributesTest < MiniTest::Test
|
5
|
-
def setup
|
6
|
-
@vehicle = Vehicle.new
|
7
|
-
@vehicle.state_event = 'ignite'
|
8
|
-
end
|
9
|
-
|
10
|
-
def test_should_fail_if_event_is_invalid
|
11
|
-
@vehicle.state_event = 'invalid'
|
12
|
-
refute @vehicle.save
|
13
|
-
assert_equal 'parked', @vehicle.state
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_should_fail_if_event_has_no_transition
|
17
|
-
@vehicle.state_event = 'park'
|
18
|
-
refute @vehicle.save
|
19
|
-
assert_equal 'parked', @vehicle.state
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_should_return_original_action_value_on_success
|
23
|
-
assert_equal @vehicle, @vehicle.save
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_should_transition_state_on_success
|
27
|
-
@vehicle.save
|
28
|
-
assert_equal 'idling', @vehicle.state
|
29
|
-
end
|
30
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
require_relative '../test_helper'
|
2
|
-
require_relative '../files/models/vehicle'
|
3
|
-
|
4
|
-
class VehicleWithParallelEventsTest < MiniTest::Test
|
5
|
-
def setup
|
6
|
-
@vehicle = Vehicle.new
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_should_fail_if_any_event_cannot_transition
|
10
|
-
refute @vehicle.fire_events(:ignite, :cancel_insurance)
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_be_successful_if_all_events_transition
|
14
|
-
assert @vehicle.fire_events(:ignite, :buy_insurance)
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_should_not_save_if_skipping_action
|
18
|
-
assert @vehicle.fire_events(:ignite, :buy_insurance, false)
|
19
|
-
refute @vehicle.saved
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_should_raise_exception_if_any_event_cannot_transition_on_bang
|
23
|
-
exception = assert_raises(StateMachines::InvalidParallelTransition) { @vehicle.fire_events!(:ignite, :cancel_insurance) }
|
24
|
-
assert_equal @vehicle, exception.object
|
25
|
-
assert_equal [:ignite, :cancel_insurance], exception.events
|
26
|
-
end
|
27
|
-
|
28
|
-
def test_should_not_raise_exception_if_all_events_transition_on_bang
|
29
|
-
assert @vehicle.fire_events!(:ignite, :buy_insurance)
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_should_not_save_if_skipping_action_on_bang
|
33
|
-
assert @vehicle.fire_events!(:ignite, :buy_insurance, false)
|
34
|
-
refute @vehicle.saved
|
35
|
-
end
|
36
|
-
end
|
data/test/test_helper.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
require 'state_machines'
|
2
|
-
require 'minitest/autorun'
|
3
|
-
begin
|
4
|
-
require 'pry-byebug'
|
5
|
-
rescue LoadError
|
6
|
-
end
|
7
|
-
require 'minitest/reporters'
|
8
|
-
Minitest::Reporters.use! [Minitest::Reporters::ProgressReporter.new]
|
9
|
-
|
10
|
-
class StateMachinesTest < MiniTest::Test
|
11
|
-
def before_setup
|
12
|
-
super
|
13
|
-
StateMachines::Integrations.reset
|
14
|
-
end
|
15
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class AssertExclusiveKeysTest < StateMachinesTest
|
4
|
-
def test_should_not_raise_exception_if_no_keys_found
|
5
|
-
{ on: :park }.assert_exclusive_keys(:only, :except)
|
6
|
-
end
|
7
|
-
|
8
|
-
def test_should_not_raise_exception_if_one_key_found
|
9
|
-
{ only: :parked }.assert_exclusive_keys(:only, :except)
|
10
|
-
{ except: :parked }.assert_exclusive_keys(:only, :except)
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_raise_exception_if_two_keys_found
|
14
|
-
exception = assert_raises(ArgumentError) { { only: :parked, except: :parked }.assert_exclusive_keys(:only, :except) }
|
15
|
-
assert_equal 'Conflicting keys: only, except', exception.message
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_should_raise_exception_if_multiple_keys_found
|
19
|
-
exception = assert_raises(ArgumentError) { { only: :parked, except: :parked, on: :park }.assert_exclusive_keys(:only, :except, :with) }
|
20
|
-
assert_equal 'Conflicting keys: only, except', exception.message
|
21
|
-
end
|
22
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class AssertValidKeysTest < StateMachinesTest
|
4
|
-
def test_should_not_raise_exception_if_key_is_valid
|
5
|
-
{ name: 'foo', value: 'bar' }.assert_valid_keys(:name, :value, :force)
|
6
|
-
end
|
7
|
-
|
8
|
-
def test_should_raise_exception_if_key_is_invalid
|
9
|
-
exception = assert_raises(ArgumentError) { { name: 'foo', value: 'bar', invalid: true }.assert_valid_keys(:name, :value, :force) }
|
10
|
-
assert_equal 'Unknown key: :invalid. Valid keys are: :name, :value, :force', exception.message
|
11
|
-
end
|
12
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchTest < StateMachinesTest
|
4
|
-
def setup
|
5
|
-
@branch = StateMachines::Branch.new(from: :parked, to: :idling)
|
6
|
-
end
|
7
|
-
|
8
|
-
def test_should_not_raise_exception_if_implicit_option_specified
|
9
|
-
StateMachines::Branch.new(invalid: :valid)
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_should_not_have_an_if_condition
|
13
|
-
assert_nil @branch.if_condition
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_should_not_have_an_unless_condition
|
17
|
-
assert_nil @branch.unless_condition
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_should_have_a_state_requirement
|
21
|
-
assert_equal 1, @branch.state_requirements.length
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_should_raise_an_exception_if_invalid_match_option_specified
|
25
|
-
exception = assert_raises(ArgumentError) { @branch.match(Object.new, invalid: true) }
|
26
|
-
assert_equal 'Unknown key: :invalid. Valid keys are: :from, :to, :on, :guard', exception.message
|
27
|
-
end
|
28
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
2
|
-
|
3
|
-
class BranchWithConflictingConditionalsTest < StateMachinesTest
|
4
|
-
def setup
|
5
|
-
@object = Object.new
|
6
|
-
end
|
7
|
-
|
8
|
-
def test_should_match_if_if_is_true_and_unless_is_false
|
9
|
-
branch = StateMachines::Branch.new(if: lambda { true }, unless: lambda { false })
|
10
|
-
assert branch.match(@object)
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_should_not_match_if_if_is_false_and_unless_is_true
|
14
|
-
branch = StateMachines::Branch.new(if: lambda { false }, unless: lambda { true })
|
15
|
-
refute branch.match(@object)
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_should_not_match_if_if_is_false_and_unless_is_false
|
19
|
-
branch = StateMachines::Branch.new(if: lambda { false }, unless: lambda { false })
|
20
|
-
refute branch.match(@object)
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_should_not_match_if_if_is_true_and_unless_is_true
|
24
|
-
branch = StateMachines::Branch.new(if: lambda { true }, unless: lambda { true })
|
25
|
-
refute branch.match(@object)
|
26
|
-
end
|
27
|
-
end
|