state_machines 0.4.0 → 0.6.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.
Files changed (454) hide show
  1. checksums.yaml +5 -5
  2. data/LICENSE.txt +1 -1
  3. data/README.md +18 -13
  4. data/lib/state_machines/branch.rb +81 -79
  5. data/lib/state_machines/callback.rb +22 -21
  6. data/lib/state_machines/eval_helpers.rb +15 -15
  7. data/lib/state_machines/event.rb +31 -28
  8. data/lib/state_machines/event_collection.rb +26 -25
  9. data/lib/state_machines/extensions.rb +2 -2
  10. data/lib/state_machines/helper_module.rb +1 -1
  11. data/lib/state_machines/integrations/base.rb +2 -5
  12. data/lib/state_machines/integrations.rb +9 -13
  13. data/lib/state_machines/machine.rb +386 -379
  14. data/lib/state_machines/machine_collection.rb +11 -10
  15. data/lib/state_machines/macro_methods.rb +100 -100
  16. data/lib/state_machines/matcher.rb +23 -23
  17. data/lib/state_machines/matcher_helpers.rb +11 -11
  18. data/lib/state_machines/node_collection.rb +15 -13
  19. data/lib/state_machines/path.rb +56 -55
  20. data/lib/state_machines/path_collection.rb +38 -38
  21. data/lib/state_machines/state.rb +28 -22
  22. data/lib/state_machines/state_collection.rb +21 -20
  23. data/lib/state_machines/state_context.rb +33 -35
  24. data/lib/state_machines/transition.rb +180 -178
  25. data/lib/state_machines/transition_collection.rb +170 -168
  26. data/lib/state_machines/version.rb +1 -1
  27. metadata +5 -852
  28. data/.gitignore +0 -21
  29. data/.rspec +0 -3
  30. data/.travis.yml +0 -14
  31. data/Changelog.md +0 -16
  32. data/Contributors.md +0 -39
  33. data/Gemfile +0 -8
  34. data/Rakefile +0 -12
  35. data/Testing.md +0 -0
  36. data/state_machines.gemspec +0 -23
  37. data/test/files/integrations/event_on_failure_integration.rb +0 -10
  38. data/test/files/integrations/vehicle.rb +0 -7
  39. data/test/files/models/auto_shop.rb +0 -31
  40. data/test/files/models/car.rb +0 -21
  41. data/test/files/models/model_base.rb +0 -6
  42. data/test/files/models/motorcycle.rb +0 -11
  43. data/test/files/models/traffic_light.rb +0 -47
  44. data/test/files/models/vehicle.rb +0 -127
  45. data/test/files/node.rb +0 -5
  46. data/test/files/switch.rb +0 -15
  47. data/test/functional/auto_shop_available_test.rb +0 -20
  48. data/test/functional/auto_shop_busy_test.rb +0 -25
  49. data/test/functional/car_backing_up_test.rb +0 -45
  50. data/test/functional/car_test.rb +0 -49
  51. data/test/functional/motorcycle_test.rb +0 -46
  52. data/test/functional/traffic_light_caution_test.rb +0 -17
  53. data/test/functional/traffic_light_proceed_test.rb +0 -17
  54. data/test/functional/traffic_light_stop_test.rb +0 -26
  55. data/test/functional/vehicle_first_gear_test.rb +0 -42
  56. data/test/functional/vehicle_idling_test.rb +0 -59
  57. data/test/functional/vehicle_locked_test.rb +0 -29
  58. data/test/functional/vehicle_parked_test.rb +0 -53
  59. data/test/functional/vehicle_repaired_test.rb +0 -20
  60. data/test/functional/vehicle_second_gear_test.rb +0 -42
  61. data/test/functional/vehicle_stalled_test.rb +0 -65
  62. data/test/functional/vehicle_test.rb +0 -20
  63. data/test/functional/vehicle_third_gear_test.rb +0 -42
  64. data/test/functional/vehicle_unsaved_test.rb +0 -181
  65. data/test/functional/vehicle_with_event_attributes_test.rb +0 -30
  66. data/test/functional/vehicle_with_parallel_events_test.rb +0 -36
  67. data/test/test_helper.rb +0 -15
  68. data/test/unit/assertions/assert_exclusive_keys_test.rb +0 -22
  69. data/test/unit/assertions/assert_valid_key_test.rb +0 -12
  70. data/test/unit/branch/branch_test.rb +0 -28
  71. data/test/unit/branch/branch_with_conflicting_conditionals_test.rb +0 -27
  72. data/test/unit/branch/branch_with_conflicting_from_requirements_test.rb +0 -8
  73. data/test/unit/branch/branch_with_conflicting_on_requirements_test.rb +0 -8
  74. data/test/unit/branch/branch_with_conflicting_to_requirements_test.rb +0 -8
  75. data/test/unit/branch/branch_with_different_requirements_test.rb +0 -41
  76. data/test/unit/branch/branch_with_except_from_matcher_requirement_test.rb +0 -8
  77. data/test/unit/branch/branch_with_except_from_requirement_test.rb +0 -36
  78. data/test/unit/branch/branch_with_except_on_matcher_requirement_test.rb +0 -8
  79. data/test/unit/branch/branch_with_except_on_requirement_test.rb +0 -36
  80. data/test/unit/branch/branch_with_except_to_matcher_requirement_test.rb +0 -8
  81. data/test/unit/branch/branch_with_except_to_requirement_test.rb +0 -36
  82. data/test/unit/branch/branch_with_from_matcher_requirement_test.rb +0 -20
  83. data/test/unit/branch/branch_with_from_requirement_test.rb +0 -45
  84. data/test/unit/branch/branch_with_if_conditional_test.rb +0 -27
  85. data/test/unit/branch/branch_with_implicit_and_explicit_requirements_test.rb +0 -23
  86. data/test/unit/branch/branch_with_implicit_from_requirement_matcher_test.rb +0 -20
  87. data/test/unit/branch/branch_with_implicit_requirement_test.rb +0 -20
  88. data/test/unit/branch/branch_with_implicit_to_requirement_matcher_test.rb +0 -16
  89. data/test/unit/branch/branch_with_multiple_except_from_requirements_test.rb +0 -20
  90. data/test/unit/branch/branch_with_multiple_except_on_requirements_test.rb +0 -16
  91. data/test/unit/branch/branch_with_multiple_except_to_requirements_test.rb +0 -20
  92. data/test/unit/branch/branch_with_multiple_from_requirements_test.rb +0 -16
  93. data/test/unit/branch/branch_with_multiple_if_conditionals_test.rb +0 -20
  94. data/test/unit/branch/branch_with_multiple_implicit_requirements_test.rb +0 -53
  95. data/test/unit/branch/branch_with_multiple_on_requirements_test.rb +0 -20
  96. data/test/unit/branch/branch_with_multiple_to_requirements_test.rb +0 -20
  97. data/test/unit/branch/branch_with_multiple_unless_conditionals_test.rb +0 -20
  98. data/test/unit/branch/branch_with_nil_requirements_test.rb +0 -28
  99. data/test/unit/branch/branch_with_no_requirements_test.rb +0 -36
  100. data/test/unit/branch/branch_with_on_matcher_requirement_test.rb +0 -16
  101. data/test/unit/branch/branch_with_on_requirement_test.rb +0 -45
  102. data/test/unit/branch/branch_with_to_matcher_requirement_test.rb +0 -20
  103. data/test/unit/branch/branch_with_to_requirement_test.rb +0 -45
  104. data/test/unit/branch/branch_with_unless_conditional_test.rb +0 -27
  105. data/test/unit/branch/branch_without_guards_test.rb +0 -27
  106. data/test/unit/callback/callback_by_default_test.rb +0 -25
  107. data/test/unit/callback/callback_test.rb +0 -53
  108. data/test/unit/callback/callback_with_application_bound_object_test.rb +0 -23
  109. data/test/unit/callback/callback_with_application_terminator_test.rb +0 -24
  110. data/test/unit/callback/callback_with_arguments_test.rb +0 -14
  111. data/test/unit/callback/callback_with_around_type_and_arguments_test.rb +0 -25
  112. data/test/unit/callback/callback_with_around_type_and_block_test.rb +0 -44
  113. data/test/unit/callback/callback_with_around_type_and_bound_method_test.rb +0 -23
  114. data/test/unit/callback/callback_with_around_type_and_multiple_methods_test.rb +0 -93
  115. data/test/unit/callback/callback_with_around_type_and_terminator_test.rb +0 -17
  116. data/test/unit/callback/callback_with_block_test.rb +0 -20
  117. data/test/unit/callback/callback_with_bound_method_and_arguments_test.rb +0 -28
  118. data/test/unit/callback/callback_with_bound_method_test.rb +0 -35
  119. data/test/unit/callback/callback_with_do_method_test.rb +0 -18
  120. data/test/unit/callback/callback_with_explicit_requirements_test.rb +0 -32
  121. data/test/unit/callback/callback_with_if_condition_test.rb +0 -17
  122. data/test/unit/callback/callback_with_implicit_requirements_test.rb +0 -32
  123. data/test/unit/callback/callback_with_method_argument_test.rb +0 -18
  124. data/test/unit/callback/callback_with_mixed_methods_test.rb +0 -31
  125. data/test/unit/callback/callback_with_multiple_bound_methods_test.rb +0 -21
  126. data/test/unit/callback/callback_with_multiple_do_methods_test.rb +0 -29
  127. data/test/unit/callback/callback_with_multiple_method_arguments_test.rb +0 -29
  128. data/test/unit/callback/callback_with_terminator_test.rb +0 -22
  129. data/test/unit/callback/callback_with_unbound_method_test.rb +0 -14
  130. data/test/unit/callback/callback_with_unless_condition_test.rb +0 -17
  131. data/test/unit/callback/callback_without_arguments_test.rb +0 -14
  132. data/test/unit/callback/callback_without_terminator_test.rb +0 -12
  133. data/test/unit/error/error_by_default_test.rb +0 -21
  134. data/test/unit/error/error_with_message_test.rb +0 -23
  135. data/test/unit/eval_helper/eval_helpers_base_test.rb +0 -8
  136. data/test/unit/eval_helper/eval_helpers_proc_block_and_explicit_arguments_test.rb +0 -14
  137. data/test/unit/eval_helper/eval_helpers_proc_block_and_implicit_arguments_test.rb +0 -14
  138. data/test/unit/eval_helper/eval_helpers_proc_test.rb +0 -13
  139. data/test/unit/eval_helper/eval_helpers_proc_with_arguments_test.rb +0 -13
  140. data/test/unit/eval_helper/eval_helpers_proc_with_block_test.rb +0 -13
  141. data/test/unit/eval_helper/eval_helpers_proc_with_block_without_arguments_test.rb +0 -18
  142. data/test/unit/eval_helper/eval_helpers_proc_with_block_without_object_test.rb +0 -14
  143. data/test/unit/eval_helper/eval_helpers_proc_without_arguments_test.rb +0 -19
  144. data/test/unit/eval_helper/eval_helpers_string_test.rb +0 -25
  145. data/test/unit/eval_helper/eval_helpers_string_with_block_test.rb +0 -12
  146. data/test/unit/eval_helper/eval_helpers_symbol_method_missing_test.rb +0 -20
  147. data/test/unit/eval_helper/eval_helpers_symbol_private_test.rb +0 -17
  148. data/test/unit/eval_helper/eval_helpers_symbol_protected_test.rb +0 -17
  149. data/test/unit/eval_helper/eval_helpers_symbol_tainted_method_test.rb +0 -18
  150. data/test/unit/eval_helper/eval_helpers_symbol_test.rb +0 -16
  151. data/test/unit/eval_helper/eval_helpers_symbol_with_arguments_and_block_test.rb +0 -16
  152. data/test/unit/eval_helper/eval_helpers_symbol_with_arguments_test.rb +0 -16
  153. data/test/unit/eval_helper/eval_helpers_symbol_with_block_test.rb +0 -16
  154. data/test/unit/eval_helper/eval_helpers_test.rb +0 -13
  155. data/test/unit/event/event_after_being_copied_test.rb +0 -17
  156. data/test/unit/event/event_by_default_test.rb +0 -60
  157. data/test/unit/event/event_context_test.rb +0 -16
  158. data/test/unit/event/event_on_failure_test.rb +0 -44
  159. data/test/unit/event/event_test.rb +0 -34
  160. data/test/unit/event/event_transitions_test.rb +0 -62
  161. data/test/unit/event/event_with_conflicting_helpers_after_definition_test.rb +0 -79
  162. data/test/unit/event/event_with_conflicting_helpers_before_definition_test.rb +0 -58
  163. data/test/unit/event/event_with_conflicting_machine_test.rb +0 -48
  164. data/test/unit/event/event_with_dynamic_human_name_test.rb +0 -26
  165. data/test/unit/event/event_with_human_name_test.rb +0 -13
  166. data/test/unit/event/event_with_invalid_current_state_test.rb +0 -30
  167. data/test/unit/event/event_with_machine_action_test.rb +0 -33
  168. data/test/unit/event/event_with_marshalling_test.rb +0 -47
  169. data/test/unit/event/event_with_matching_disabled_transitions_test.rb +0 -115
  170. data/test/unit/event/event_with_matching_enabled_transitions_test.rb +0 -75
  171. data/test/unit/event/event_with_multiple_transitions_test.rb +0 -61
  172. data/test/unit/event/event_with_namespace_test.rb +0 -34
  173. data/test/unit/event/event_with_transition_with_blacklisted_to_state_test.rb +0 -60
  174. data/test/unit/event/event_with_transition_with_loopback_state_test.rb +0 -36
  175. data/test/unit/event/event_with_transition_with_nil_to_state_test.rb +0 -36
  176. data/test/unit/event/event_with_transition_with_whitelisted_to_state_test.rb +0 -51
  177. data/test/unit/event/event_with_transition_without_to_state_test.rb +0 -36
  178. data/test/unit/event/event_with_transitions_test.rb +0 -32
  179. data/test/unit/event/event_without_matching_transitions_test.rb +0 -41
  180. data/test/unit/event/event_without_transitions_test.rb +0 -28
  181. data/test/unit/event/invalid_event_test.rb +0 -20
  182. data/test/unit/event_collection/event_collection_attribute_with_machine_action_test.rb +0 -62
  183. data/test/unit/event_collection/event_collection_attribute_with_namespaced_machine_test.rb +0 -36
  184. data/test/unit/event_collection/event_collection_by_default_test.rb +0 -26
  185. data/test/unit/event_collection/event_collection_test.rb +0 -39
  186. data/test/unit/event_collection/event_collection_with_custom_machine_attribute_test.rb +0 -31
  187. data/test/unit/event_collection/event_collection_with_events_with_transitions_test.rb +0 -76
  188. data/test/unit/event_collection/event_collection_with_multiple_events_test.rb +0 -27
  189. data/test/unit/event_collection/event_collection_with_validations_test.rb +0 -74
  190. data/test/unit/event_collection/event_collection_without_machine_action_test.rb +0 -18
  191. data/test/unit/event_collection/event_string_collection_test.rb +0 -31
  192. data/test/unit/helper_module_test.rb +0 -17
  193. data/test/unit/integrations/integration_finder_test.rb +0 -16
  194. data/test/unit/integrations/integration_matcher_test.rb +0 -27
  195. data/test/unit/invalid_transition/invalid_parallel_transition_test.rb +0 -18
  196. data/test/unit/invalid_transition/invalid_transition_test.rb +0 -47
  197. data/test/unit/invalid_transition/invalid_transition_with_integration_test.rb +0 -45
  198. data/test/unit/invalid_transition/invalid_transition_with_namespace_test.rb +0 -32
  199. data/test/unit/machine/machine_after_being_copied_test.rb +0 -62
  200. data/test/unit/machine/machine_after_changing_initial_state.rb +0 -28
  201. data/test/unit/machine/machine_after_changing_owner_class_test.rb +0 -31
  202. data/test/unit/machine/machine_by_default_test.rb +0 -160
  203. data/test/unit/machine/machine_finder_custom_options_test.rb +0 -17
  204. data/test/unit/machine/machine_finder_with_existing_machine_on_superclass_test.rb +0 -85
  205. data/test/unit/machine/machine_finder_with_existing_on_same_class_test.rb +0 -23
  206. data/test/unit/machine/machine_finder_without_existing_machine_test.rb +0 -25
  207. data/test/unit/machine/machine_persistence_test.rb +0 -52
  208. data/test/unit/machine/machine_state_initialization_test.rb +0 -56
  209. data/test/unit/machine/machine_test.rb +0 -30
  210. data/test/unit/machine/machine_with_action_already_overridden_test.rb +0 -23
  211. data/test/unit/machine/machine_with_action_defined_in_class_test.rb +0 -37
  212. data/test/unit/machine/machine_with_action_defined_in_included_module_test.rb +0 -46
  213. data/test/unit/machine/machine_with_action_defined_in_superclass_test.rb +0 -43
  214. data/test/unit/machine/machine_with_action_undefined_test.rb +0 -33
  215. data/test/unit/machine/machine_with_cached_state_test.rb +0 -20
  216. data/test/unit/machine/machine_with_class_helpers_test.rb +0 -179
  217. data/test/unit/machine/machine_with_conflicting_helpers_after_definition_test.rb +0 -244
  218. data/test/unit/machine/machine_with_conflicting_helpers_before_definition_test.rb +0 -175
  219. data/test/unit/machine/machine_with_custom_action_test.rb +0 -11
  220. data/test/unit/machine/machine_with_custom_attribute_test.rb +0 -103
  221. data/test/unit/machine/machine_with_custom_initialize_test.rb +0 -24
  222. data/test/unit/machine/machine_with_custom_integration_test.rb +0 -72
  223. data/test/unit/machine/machine_with_custom_invalidation_test.rb +0 -39
  224. data/test/unit/machine/machine_with_custom_name_test.rb +0 -57
  225. data/test/unit/machine/machine_with_custom_plural_test.rb +0 -52
  226. data/test/unit/machine/machine_with_dynamic_initial_state_test.rb +0 -65
  227. data/test/unit/machine/machine_with_event_matchers_test.rb +0 -41
  228. data/test/unit/machine/machine_with_events_test.rb +0 -52
  229. data/test/unit/machine/machine_with_events_with_custom_human_names_test.rb +0 -18
  230. data/test/unit/machine/machine_with_events_with_transitions_test.rb +0 -37
  231. data/test/unit/machine/machine_with_existing_event_test.rb +0 -17
  232. data/test/unit/machine/machine_with_existing_machines_on_owner_class_test.rb +0 -20
  233. data/test/unit/machine/machine_with_existing_machines_with_same_attributes_on_owner_class_test.rb +0 -71
  234. data/test/unit/machine/machine_with_existing_machines_with_same_attributes_on_owner_subclass_test.rb +0 -31
  235. data/test/unit/machine/machine_with_existing_state_test.rb +0 -27
  236. data/test/unit/machine/machine_with_failure_callbacks_test.rb +0 -48
  237. data/test/unit/machine/machine_with_helpers_test.rb +0 -14
  238. data/test/unit/machine/machine_with_initial_state_with_value_and_owner_default.rb +0 -25
  239. data/test/unit/machine/machine_with_initialize_and_super_test.rb +0 -17
  240. data/test/unit/machine/machine_with_initialize_arguments_and_block_test.rb +0 -31
  241. data/test/unit/machine/machine_with_initialize_without_super_test.rb +0 -17
  242. data/test/unit/machine/machine_with_instance_helpers_test.rb +0 -179
  243. data/test/unit/machine/machine_with_integration_test.rb +0 -72
  244. data/test/unit/machine/machine_with_multiple_events_test.rb +0 -32
  245. data/test/unit/machine/machine_with_namespace_test.rb +0 -48
  246. data/test/unit/machine/machine_with_nil_action_test.rb +0 -27
  247. data/test/unit/machine/machine_with_other_states.rb +0 -22
  248. data/test/unit/machine/machine_with_owner_subclass_test.rb +0 -18
  249. data/test/unit/machine/machine_with_paths_test.rb +0 -25
  250. data/test/unit/machine/machine_with_private_action_test.rb +0 -43
  251. data/test/unit/machine/machine_with_state_matchers_test.rb +0 -41
  252. data/test/unit/machine/machine_with_state_with_matchers_test.rb +0 -19
  253. data/test/unit/machine/machine_with_states_test.rb +0 -55
  254. data/test/unit/machine/machine_with_states_with_behaviors_test.rb +0 -23
  255. data/test/unit/machine/machine_with_states_with_custom_human_names_test.rb +0 -18
  256. data/test/unit/machine/machine_with_states_with_custom_values_test.rb +0 -21
  257. data/test/unit/machine/machine_with_states_with_runtime_dependencies_test.rb +0 -19
  258. data/test/unit/machine/machine_with_static_initial_state_test.rb +0 -49
  259. data/test/unit/machine/machine_with_superclass_conflicting_helpers_after_definition_test.rb +0 -36
  260. data/test/unit/machine/machine_with_transition_callbacks_test.rb +0 -144
  261. data/test/unit/machine/machine_with_transitions_test.rb +0 -87
  262. data/test/unit/machine/machine_without_initialization_test.rb +0 -31
  263. data/test/unit/machine/machine_without_initialize_test.rb +0 -14
  264. data/test/unit/machine/machine_without_integration_test.rb +0 -31
  265. data/test/unit/machine_collection/machine_collection_by_default_test.rb +0 -11
  266. data/test/unit/machine_collection/machine_collection_fire_attributes_with_validations_test.rb +0 -72
  267. data/test/unit/machine_collection/machine_collection_fire_test.rb +0 -80
  268. data/test/unit/machine_collection/machine_collection_fire_with_transactions_test.rb +0 -54
  269. data/test/unit/machine_collection/machine_collection_fire_with_validations_test.rb +0 -76
  270. data/test/unit/machine_collection/machine_collection_state_initialization_test.rb +0 -111
  271. data/test/unit/machine_collection/machine_collection_transitions_with_blank_events_test.rb +0 -25
  272. data/test/unit/machine_collection/machine_collection_transitions_with_custom_options_test.rb +0 -20
  273. data/test/unit/machine_collection/machine_collection_transitions_with_different_actions_test.rb +0 -26
  274. data/test/unit/machine_collection/machine_collection_transitions_with_exisiting_transitions_test.rb +0 -25
  275. data/test/unit/machine_collection/machine_collection_transitions_with_invalid_events_test.rb +0 -25
  276. data/test/unit/machine_collection/machine_collection_transitions_with_same_actions_test.rb +0 -31
  277. data/test/unit/machine_collection/machine_collection_transitions_with_transition_test.rb +0 -26
  278. data/test/unit/machine_collection/machine_collection_transitions_without_events_test.rb +0 -25
  279. data/test/unit/machine_collection/machine_collection_transitions_without_transition_test.rb +0 -27
  280. data/test/unit/matcher/all_matcher_test.rb +0 -29
  281. data/test/unit/matcher/blacklist_matcher_test.rb +0 -30
  282. data/test/unit/matcher/loopback_matcher_test.rb +0 -27
  283. data/test/unit/matcher/matcher_by_default_test.rb +0 -15
  284. data/test/unit/matcher/matcher_with_multiple_values_test.rb +0 -15
  285. data/test/unit/matcher/matcher_with_value_test.rb +0 -15
  286. data/test/unit/matcher/whitelist_matcher_test.rb +0 -30
  287. data/test/unit/matcher_helpers/matcher_helpers_all_test.rb +0 -14
  288. data/test/unit/matcher_helpers/matcher_helpers_any_test.rb +0 -14
  289. data/test/unit/matcher_helpers/matcher_helpers_same_test.rb +0 -13
  290. data/test/unit/node_collection/node_collection_after_being_copied_test.rb +0 -46
  291. data/test/unit/node_collection/node_collection_after_update_test.rb +0 -36
  292. data/test/unit/node_collection/node_collection_by_default_test.rb +0 -22
  293. data/test/unit/node_collection/node_collection_test.rb +0 -23
  294. data/test/unit/node_collection/node_collection_with_indices_test.rb +0 -42
  295. data/test/unit/node_collection/node_collection_with_matcher_contexts_test.rb +0 -25
  296. data/test/unit/node_collection/node_collection_with_nodes_test.rb +0 -46
  297. data/test/unit/node_collection/node_collection_with_numeric_index_test.rb +0 -24
  298. data/test/unit/node_collection/node_collection_with_postdefined_contexts_test.rb +0 -22
  299. data/test/unit/node_collection/node_collection_with_predefined_contexts_test.rb +0 -23
  300. data/test/unit/node_collection/node_collection_with_string_index_test.rb +0 -20
  301. data/test/unit/node_collection/node_collection_with_symbol_index_test.rb +0 -20
  302. data/test/unit/node_collection/node_collection_without_indices_test.rb +0 -30
  303. data/test/unit/path/path_by_default_test.rb +0 -54
  304. data/test/unit/path/path_test.rb +0 -14
  305. data/test/unit/path/path_with_available_transitions_after_reaching_target_test.rb +0 -40
  306. data/test/unit/path/path_with_available_transitions_test.rb +0 -54
  307. data/test/unit/path/path_with_deep_target_reached_test.rb +0 -50
  308. data/test/unit/path/path_with_deep_target_test.rb +0 -40
  309. data/test/unit/path/path_with_duplicates_test.rb +0 -32
  310. data/test/unit/path/path_with_encountered_transitions_test.rb +0 -34
  311. data/test/unit/path/path_with_guarded_transitions_test.rb +0 -42
  312. data/test/unit/path/path_with_reached_target_test.rb +0 -35
  313. data/test/unit/path/path_with_transitions_test.rb +0 -54
  314. data/test/unit/path/path_with_unreached_target_test.rb +0 -31
  315. data/test/unit/path/path_without_transitions_test.rb +0 -24
  316. data/test/unit/path_collection/path_collection_by_default_test.rb +0 -46
  317. data/test/unit/path_collection/path_collection_test.rb +0 -24
  318. data/test/unit/path_collection/path_collection_with_deep_paths_test.rb +0 -43
  319. data/test/unit/path_collection/path_collection_with_duplicate_nodes_test.rb +0 -31
  320. data/test/unit/path_collection/path_collection_with_from_state_test.rb +0 -27
  321. data/test/unit/path_collection/path_collection_with_paths_test.rb +0 -47
  322. data/test/unit/path_collection/path_collection_with_to_state_test.rb +0 -29
  323. data/test/unit/path_collection/path_with_guarded_paths_test.rb +0 -25
  324. data/test/unit/state/state_after_being_copied_test.rb +0 -19
  325. data/test/unit/state/state_by_default_test.rb +0 -41
  326. data/test/unit/state/state_final_test.rb +0 -28
  327. data/test/unit/state/state_initial_test.rb +0 -13
  328. data/test/unit/state/state_not_final_test.rb +0 -32
  329. data/test/unit/state/state_not_initial_test.rb +0 -13
  330. data/test/unit/state/state_test.rb +0 -44
  331. data/test/unit/state/state_with_cached_lambda_value_test.rb +0 -29
  332. data/test/unit/state/state_with_conflicting_helpers_after_definition_test.rb +0 -38
  333. data/test/unit/state/state_with_conflicting_helpers_before_definition_test.rb +0 -29
  334. data/test/unit/state/state_with_conflicting_machine_name_test.rb +0 -20
  335. data/test/unit/state/state_with_conflicting_machine_test.rb +0 -37
  336. data/test/unit/state/state_with_context_test.rb +0 -60
  337. data/test/unit/state/state_with_dynamic_human_name_test.rb +0 -25
  338. data/test/unit/state/state_with_existing_context_method_test.rb +0 -24
  339. data/test/unit/state/state_with_human_name_test.rb +0 -13
  340. data/test/unit/state/state_with_integer_value_test.rb +0 -32
  341. data/test/unit/state/state_with_invalid_method_call_test.rb +0 -21
  342. data/test/unit/state/state_with_lambda_value_test.rb +0 -37
  343. data/test/unit/state/state_with_matcher_test.rb +0 -18
  344. data/test/unit/state/state_with_multiple_contexts_test.rb +0 -57
  345. data/test/unit/state/state_with_name_test.rb +0 -43
  346. data/test/unit/state/state_with_namespace_test.rb +0 -22
  347. data/test/unit/state/state_with_nil_value_test.rb +0 -35
  348. data/test/unit/state/state_with_redefined_context_method_test.rb +0 -45
  349. data/test/unit/state/state_with_symbolic_value_test.rb +0 -32
  350. data/test/unit/state/state_with_valid_inherited_method_call_for_current_state_test.rb +0 -40
  351. data/test/unit/state/state_with_valid_method_call_for_current_state_test.rb +0 -33
  352. data/test/unit/state/state_with_valid_method_call_for_different_state_test.rb +0 -41
  353. data/test/unit/state/state_without_cached_lambda_value_test.rb +0 -25
  354. data/test/unit/state/state_without_name_test.rb +0 -39
  355. data/test/unit/state_collection/state_collection_by_default_test.rb +0 -21
  356. data/test/unit/state_collection/state_collection_string_test.rb +0 -35
  357. data/test/unit/state_collection/state_collection_test.rb +0 -74
  358. data/test/unit/state_collection/state_collection_with_custom_state_values_test.rb +0 -29
  359. data/test/unit/state_collection/state_collection_with_event_transitions_test.rb +0 -39
  360. data/test/unit/state_collection/state_collection_with_initial_state_test.rb +0 -40
  361. data/test/unit/state_collection/state_collection_with_namespace_test.rb +0 -21
  362. data/test/unit/state_collection/state_collection_with_state_behaviors_test.rb +0 -40
  363. data/test/unit/state_collection/state_collection_with_state_matchers_test.rb +0 -29
  364. data/test/unit/state_collection/state_collection_with_transition_callbacks_test.rb +0 -40
  365. data/test/unit/state_context/state_context_proxy_test.rb +0 -26
  366. data/test/unit/state_context/state_context_proxy_with_if_and_unless_conditions_test.rb +0 -42
  367. data/test/unit/state_context/state_context_proxy_with_if_condition_test.rb +0 -64
  368. data/test/unit/state_context/state_context_proxy_with_multiple_if_conditions_test.rb +0 -32
  369. data/test/unit/state_context/state_context_proxy_with_multiple_unless_conditions_test.rb +0 -32
  370. data/test/unit/state_context/state_context_proxy_with_unless_condition_test.rb +0 -64
  371. data/test/unit/state_context/state_context_proxy_without_conditions_test.rb +0 -31
  372. data/test/unit/state_context/state_context_test.rb +0 -28
  373. data/test/unit/state_context/state_context_transition_test.rb +0 -104
  374. data/test/unit/state_context/state_context_with_matching_transition_test.rb +0 -27
  375. data/test/unit/state_machine/state_machine_by_default_test.rb +0 -12
  376. data/test/unit/state_machine/state_machine_test.rb +0 -20
  377. data/test/unit/transition/transition_after_being_performed_test.rb +0 -48
  378. data/test/unit/transition/transition_after_being_persisted_test.rb +0 -46
  379. data/test/unit/transition/transition_after_being_rolled_back_test.rb +0 -35
  380. data/test/unit/transition/transition_equality_test.rb +0 -52
  381. data/test/unit/transition/transition_loopback_test.rb +0 -18
  382. data/test/unit/transition/transition_test.rb +0 -96
  383. data/test/unit/transition/transition_transient_test.rb +0 -20
  384. data/test/unit/transition/transition_with_action_test.rb +0 -27
  385. data/test/unit/transition/transition_with_after_callbacks_skipped_test.rb +0 -127
  386. data/test/unit/transition/transition_with_after_callbacks_test.rb +0 -93
  387. data/test/unit/transition/transition_with_around_callbacks_test.rb +0 -141
  388. data/test/unit/transition/transition_with_before_callbacks_skipped_test.rb +0 -30
  389. data/test/unit/transition/transition_with_before_callbacks_test.rb +0 -104
  390. data/test/unit/transition/transition_with_custom_machine_attribute_test.rb +0 -28
  391. data/test/unit/transition/transition_with_different_states_test.rb +0 -18
  392. data/test/unit/transition/transition_with_dynamic_to_value_test.rb +0 -19
  393. data/test/unit/transition/transition_with_failure_callbacks_test.rb +0 -84
  394. data/test/unit/transition/transition_with_invalid_nodes_test.rb +0 -29
  395. data/test/unit/transition/transition_with_mixed_callbacks_test.rb +0 -105
  396. data/test/unit/transition/transition_with_multiple_after_callbacks_test.rb +0 -40
  397. data/test/unit/transition/transition_with_multiple_around_callbacks_test.rb +0 -114
  398. data/test/unit/transition/transition_with_multiple_before_callbacks_test.rb +0 -40
  399. data/test/unit/transition/transition_with_multiple_failure_callbacks_test.rb +0 -40
  400. data/test/unit/transition/transition_with_namespace_test.rb +0 -47
  401. data/test/unit/transition/transition_with_perform_arguments_test.rb +0 -35
  402. data/test/unit/transition/transition_with_transactions_test.rb +0 -42
  403. data/test/unit/transition/transition_without_callbacks_test.rb +0 -33
  404. data/test/unit/transition/transition_without_reading_state_test.rb +0 -22
  405. data/test/unit/transition/transition_without_running_action_test.rb +0 -47
  406. data/test/unit/transition_collection/attribute_transition_collection_by_default_test.rb +0 -23
  407. data/test/unit/transition_collection/attribute_transition_collection_marshalling_test.rb +0 -64
  408. data/test/unit/transition_collection/attribute_transition_collection_with_action_error_test.rb +0 -44
  409. data/test/unit/transition_collection/attribute_transition_collection_with_action_failed_test.rb +0 -44
  410. data/test/unit/transition_collection/attribute_transition_collection_with_after_callback_error_test.rb +0 -32
  411. data/test/unit/transition_collection/attribute_transition_collection_with_after_callback_halt_test.rb +0 -33
  412. data/test/unit/transition_collection/attribute_transition_collection_with_around_after_yield_callback_error_test.rb +0 -32
  413. data/test/unit/transition_collection/attribute_transition_collection_with_around_callback_after_yield_error_test.rb +0 -32
  414. data/test/unit/transition_collection/attribute_transition_collection_with_around_callback_after_yield_halt_test.rb +0 -33
  415. data/test/unit/transition_collection/attribute_transition_collection_with_around_callback_before_yield_halt_test.rb +0 -33
  416. data/test/unit/transition_collection/attribute_transition_collection_with_before_callback_error_test.rb +0 -32
  417. data/test/unit/transition_collection/attribute_transition_collection_with_before_callback_halt_test.rb +0 -33
  418. data/test/unit/transition_collection/attribute_transition_collection_with_callbacks_test.rb +0 -68
  419. data/test/unit/transition_collection/attribute_transition_collection_with_event_transitions_test.rb +0 -41
  420. data/test/unit/transition_collection/attribute_transition_collection_with_events_test.rb +0 -44
  421. data/test/unit/transition_collection/attribute_transition_collection_with_skipped_after_callbacks_test.rb +0 -42
  422. data/test/unit/transition_collection/transition_collection_by_default_test.rb +0 -23
  423. data/test/unit/transition_collection/transition_collection_empty_with_block_test.rb +0 -23
  424. data/test/unit/transition_collection/transition_collection_empty_without_block_test.rb +0 -12
  425. data/test/unit/transition_collection/transition_collection_invalid_test.rb +0 -21
  426. data/test/unit/transition_collection/transition_collection_partial_invalid_test.rb +0 -69
  427. data/test/unit/transition_collection/transition_collection_test.rb +0 -26
  428. data/test/unit/transition_collection/transition_collection_valid_test.rb +0 -57
  429. data/test/unit/transition_collection/transition_collection_with_action_error_test.rb +0 -66
  430. data/test/unit/transition_collection/transition_collection_with_action_failed_test.rb +0 -60
  431. data/test/unit/transition_collection/transition_collection_with_action_hook_and_block_test.rb +0 -17
  432. data/test/unit/transition_collection/transition_collection_with_action_hook_and_skipped_action_test.rb +0 -17
  433. data/test/unit/transition_collection/transition_collection_with_action_hook_and_skipped_after_callbacks_test.rb +0 -37
  434. data/test/unit/transition_collection/transition_collection_with_action_hook_base_test.rb +0 -34
  435. data/test/unit/transition_collection/transition_collection_with_action_hook_error_test.rb +0 -29
  436. data/test/unit/transition_collection/transition_collection_with_action_hook_invalid_test.rb +0 -17
  437. data/test/unit/transition_collection/transition_collection_with_action_hook_multiple_test.rb +0 -79
  438. data/test/unit/transition_collection/transition_collection_with_action_hook_test.rb +0 -45
  439. data/test/unit/transition_collection/transition_collection_with_action_hook_with_different_actions_test.rb +0 -48
  440. data/test/unit/transition_collection/transition_collection_with_action_hook_with_nil_action_test.rb +0 -42
  441. data/test/unit/transition_collection/transition_collection_with_after_callback_halt_test.rb +0 -51
  442. data/test/unit/transition_collection/transition_collection_with_before_callback_halt_test.rb +0 -47
  443. data/test/unit/transition_collection/transition_collection_with_block_test.rb +0 -46
  444. data/test/unit/transition_collection/transition_collection_with_callbacks_test.rb +0 -135
  445. data/test/unit/transition_collection/transition_collection_with_different_actions_test.rb +0 -189
  446. data/test/unit/transition_collection/transition_collection_with_duplicate_actions_test.rb +0 -48
  447. data/test/unit/transition_collection/transition_collection_with_empty_actions_test.rb +0 -41
  448. data/test/unit/transition_collection/transition_collection_with_mixed_actions_test.rb +0 -41
  449. data/test/unit/transition_collection/transition_collection_with_skipped_actions_and_block_test.rb +0 -34
  450. data/test/unit/transition_collection/transition_collection_with_skipped_actions_test.rb +0 -69
  451. data/test/unit/transition_collection/transition_collection_with_skipped_after_callbacks_and_around_callbacks_test.rb +0 -53
  452. data/test/unit/transition_collection/transition_collection_with_skipped_after_callbacks_test.rb +0 -34
  453. data/test/unit/transition_collection/transition_collection_with_transactions_test.rb +0 -65
  454. data/test/unit/transition_collection/transition_collection_without_transactions_test.rb +0 -29
@@ -1,50 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathWithDeepTargetReachedTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.state :parked, :idling
8
- @machine.event :ignite do
9
- transition parked: :idling
10
- end
11
- @machine.event :shift_up do
12
- transition parked: :first_gear
13
- end
14
- @machine.event :park do
15
- transition [:idling, :first_gear] => :parked
16
- end
17
-
18
- @object = @klass.new
19
- @object.state = 'parked'
20
-
21
- @path = StateMachines::Path.new(@object, @machine, target: :parked)
22
- @path.concat([
23
- @ignite_transition = StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling),
24
- @park_transition = StateMachines::Transition.new(@object, @machine, :park, :idling, :parked),
25
- @shift_up_transition = StateMachines::Transition.new(@object, @machine, :shift_up, :parked, :first_gear),
26
- @park_transition_2 = StateMachines::Transition.new(@object, @machine, :park, :first_gear, :parked)
27
- ])
28
- end
29
-
30
- def test_should_be_complete
31
- assert_equal true, @path.complete?
32
- end
33
-
34
- def test_should_not_be_able_to_walk
35
- walked = false
36
- @path.walk { walked = true }
37
- assert_equal false, walked
38
- end
39
-
40
- def test_should_not_be_able_to_walk_with_available_transitions
41
- @machine.event :park do
42
- transition parked: same
43
- end
44
-
45
- walked = false
46
- @path.walk { walked = true }
47
- assert_equal false, walked
48
- end
49
- end
50
-
@@ -1,40 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathWithDeepTargetTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.state :parked, :idling
8
- @machine.event :ignite do
9
- transition parked: :idling
10
- end
11
- @machine.event :shift_up do
12
- transition parked: :first_gear
13
- end
14
- @machine.event :park do
15
- transition [:idling, :first_gear] => :parked
16
- end
17
-
18
- @object = @klass.new
19
- @object.state = 'parked'
20
-
21
- @path = StateMachines::Path.new(@object, @machine, target: :parked)
22
- @path.concat([
23
- @ignite_transition = StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling),
24
- @park_transition = StateMachines::Transition.new(@object, @machine, :park, :idling, :parked),
25
- @shift_up_transition = StateMachines::Transition.new(@object, @machine, :shift_up, :parked, :first_gear)
26
- ])
27
- end
28
-
29
- def test_should_not_be_complete
30
- assert_equal false, @path.complete?
31
- end
32
-
33
- def test_should_be_able_to_walk
34
- paths = []
35
- @path.walk { |path| paths << path }
36
- assert_equal [
37
- [@ignite_transition, @park_transition, @shift_up_transition, StateMachines::Transition.new(@object, @machine, :park, :first_gear, :parked)]
38
- ], paths
39
- end
40
- end
@@ -1,32 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathWithDuplicatesTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.state :parked, :idling
8
- @machine.event :park, :ignite
9
-
10
- @object = @klass.new
11
- @object.state = 'parked'
12
-
13
- @path = StateMachines::Path.new(@object, @machine)
14
- @path.concat([
15
- @ignite_transition = StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling),
16
- @park_transition = StateMachines::Transition.new(@object, @machine, :park, :idling, :parked),
17
- @ignite_again_transition = StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling)
18
- ])
19
- end
20
-
21
- def test_should_not_include_duplicates_in_from_states
22
- assert_equal [:parked, :idling], @path.from_states
23
- end
24
-
25
- def test_should_not_include_duplicates_in_to_states
26
- assert_equal [:idling, :parked], @path.to_states
27
- end
28
-
29
- def test_should_not_include_duplicates_in_events
30
- assert_equal [:ignite, :park], @path.events
31
- end
32
- end
@@ -1,34 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathWithEncounteredTransitionsTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.state :parked, :idling, :first_gear
8
- @machine.event :ignite do
9
- transition parked: :idling
10
- end
11
- @machine.event :park do
12
- transition idling: :parked
13
- end
14
-
15
- @object = @klass.new
16
- @object.state = 'parked'
17
-
18
- @path = StateMachines::Path.new(@object, @machine)
19
- @path.concat([
20
- @ignite_transition = StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling),
21
- @park_transition = StateMachines::Transition.new(@object, @machine, :park, :idling, :parked)
22
- ])
23
- end
24
-
25
- def test_should_be_complete
26
- assert_equal true, @path.complete?
27
- end
28
-
29
- def test_should_not_be_able_to_walk
30
- walked = false
31
- @path.walk { walked = true }
32
- assert_equal false, walked
33
- end
34
- end
@@ -1,42 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathWithGuardedTransitionsTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.state :parked, :idling
8
- @machine.event :ignite
9
- @machine.event :shift_up do
10
- transition idling: :first_gear, if: lambda { false }
11
- end
12
-
13
- @object = @klass.new
14
- @object.state = 'parked'
15
- end
16
-
17
- def test_should_not_walk_transitions_if_guard_enabled
18
- path = StateMachines::Path.new(@object, @machine)
19
- path.concat([
20
- StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling)
21
- ])
22
-
23
- paths = []
24
- path.walk { |next_path| paths << next_path }
25
-
26
- assert_equal [], paths
27
- end
28
-
29
- def test_should_not_walk_transitions_if_guard_disabled
30
- path = StateMachines::Path.new(@object, @machine, guard: false)
31
- path.concat([
32
- ignite_transition = StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling)
33
- ])
34
-
35
- paths = []
36
- path.walk { |next_path| paths << next_path }
37
-
38
- assert_equal [
39
- [ignite_transition, StateMachines::Transition.new(@object, @machine, :shift_up, :idling, :first_gear)]
40
- ], paths
41
- end
42
- end
@@ -1,35 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathWithReachedTargetTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.state :parked, :idling
8
- @machine.event :ignite do
9
- transition parked: :idling
10
- end
11
- @machine.event :park do
12
- transition idling: :parked
13
- end
14
-
15
- @object = @klass.new
16
- @object.state = 'parked'
17
-
18
- @path = StateMachines::Path.new(@object, @machine, target: :parked)
19
- @path.concat([
20
- @ignite_transition = StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling),
21
- @park_transition = StateMachines::Transition.new(@object, @machine, :park, :idling, :parked)
22
- ])
23
- end
24
-
25
- def test_should_be_complete
26
- assert_equal true, @path.complete?
27
- end
28
-
29
- def test_should_not_be_able_to_walk
30
- walked = false
31
- @path.walk { walked = true }
32
- assert_equal false, walked
33
- end
34
- end
35
-
@@ -1,54 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathWithTransitionsTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.state :parked, :idling, :first_gear
8
- @machine.event :ignite, :shift_up
9
-
10
- @object = @klass.new
11
- @object.state = 'parked'
12
-
13
- @path = StateMachines::Path.new(@object, @machine)
14
- @path.concat([
15
- @ignite_transition = StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling),
16
- @shift_up_transition = StateMachines::Transition.new(@object, @machine, :shift_up, :idling, :first_gear)
17
- ])
18
- end
19
-
20
- def test_should_enumerate_transitions
21
- assert_equal [@ignite_transition, @shift_up_transition], @path
22
- end
23
-
24
- def test_should_have_a_from_name
25
- assert_equal :parked, @path.from_name
26
- end
27
-
28
- def test_should_have_from_states
29
- assert_equal [:parked, :idling], @path.from_states
30
- end
31
-
32
- def test_should_have_a_to_name
33
- assert_equal :first_gear, @path.to_name
34
- end
35
-
36
- def test_should_have_to_states
37
- assert_equal [:idling, :first_gear], @path.to_states
38
- end
39
-
40
- def test_should_have_events
41
- assert_equal [:ignite, :shift_up], @path.events
42
- end
43
-
44
- def test_should_not_be_able_to_walk_anywhere
45
- walked = false
46
- @path.walk { walked = true }
47
- assert_equal false, walked
48
- end
49
-
50
- def test_should_be_complete
51
- assert_equal true, @path.complete?
52
- end
53
- end
54
-
@@ -1,31 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathWithUnreachedTargetTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.state :parked, :idling
8
- @machine.event :ignite do
9
- transition parked: :idling
10
- end
11
-
12
- @object = @klass.new
13
- @object.state = 'parked'
14
-
15
- @path = StateMachines::Path.new(@object, @machine, target: :parked)
16
- @path.concat([
17
- @ignite_transition = StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling)
18
- ])
19
- end
20
-
21
- def test_should_not_be_complete
22
- assert_equal false, @path.complete?
23
- end
24
-
25
- def test_should_not_be_able_to_walk
26
- walked = false
27
- @path.walk { walked = true }
28
- assert_equal false, walked
29
- end
30
- end
31
-
@@ -1,24 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathWithoutTransitionsTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.state :parked, :idling
8
- @machine.event :ignite
9
-
10
- @object = @klass.new
11
-
12
- @path = StateMachines::Path.new(@object, @machine)
13
- @path.concat([
14
- @ignite_transition = StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling)
15
- ])
16
- end
17
-
18
- def test_should_not_be_able_to_walk_anywhere
19
- walked = false
20
- @path.walk { walked = true }
21
- assert_equal false, walked
22
- end
23
- end
24
-
@@ -1,46 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathCollectionByDefaultTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.state :parked
8
-
9
- @object = @klass.new
10
- @object.state = 'parked'
11
-
12
- @paths = StateMachines::PathCollection.new(@object, @machine)
13
- end
14
-
15
- def test_should_have_an_object
16
- assert_equal @object, @paths.object
17
- end
18
-
19
- def test_should_have_a_machine
20
- assert_equal @machine, @paths.machine
21
- end
22
-
23
- def test_should_have_a_from_name
24
- assert_equal :parked, @paths.from_name
25
- end
26
-
27
- def test_should_not_have_a_to_name
28
- assert_nil @paths.to_name
29
- end
30
-
31
- def test_should_have_no_from_states
32
- assert_equal [], @paths.from_states
33
- end
34
-
35
- def test_should_have_no_to_states
36
- assert_equal [], @paths.to_states
37
- end
38
-
39
- def test_should_have_no_events
40
- assert_equal [], @paths.events
41
- end
42
-
43
- def test_should_have_no_paths
44
- assert @paths.empty?
45
- end
46
- end
@@ -1,24 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathCollectionTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @object = @klass.new
8
- end
9
-
10
- def test_should_raise_exception_if_invalid_option_specified
11
- exception = assert_raises(ArgumentError) { StateMachines::PathCollection.new(@object, @machine, invalid: true) }
12
- assert_equal 'Unknown key: :invalid. Valid keys are: :from, :to, :deep, :guard', exception.message
13
- end
14
-
15
- def test_should_raise_exception_if_invalid_from_state_specified
16
- exception = assert_raises(IndexError) { StateMachines::PathCollection.new(@object, @machine, from: :invalid) }
17
- assert_equal ':invalid is an invalid name', exception.message
18
- end
19
-
20
- def test_should_raise_exception_if_invalid_to_state_specified
21
- exception = assert_raises(IndexError) { StateMachines::PathCollection.new(@object, @machine, to: :invalid) }
22
- assert_equal ':invalid is an invalid name', exception.message
23
- end
24
- end
@@ -1,43 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathCollectionWithDeepPathsTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.state :parked, :idling
8
- @machine.event :ignite do
9
- transition parked: :idling
10
- end
11
- @machine.event :shift_up do
12
- transition parked: :idling, idling: :first_gear
13
- end
14
- @machine.event :shift_down do
15
- transition first_gear: :idling
16
- end
17
- @object = @klass.new
18
- @object.state = 'parked'
19
-
20
- @paths = StateMachines::PathCollection.new(@object, @machine, to: :idling, deep: true)
21
- end
22
-
23
- def test_should_allow_target_to_be_reached_more_than_once_per_path
24
- assert_equal [
25
- [
26
- StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling)
27
- ],
28
- [
29
- StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling),
30
- StateMachines::Transition.new(@object, @machine, :shift_up, :idling, :first_gear),
31
- StateMachines::Transition.new(@object, @machine, :shift_down, :first_gear, :idling)
32
- ],
33
- [
34
- StateMachines::Transition.new(@object, @machine, :shift_up, :parked, :idling)
35
- ],
36
- [
37
- StateMachines::Transition.new(@object, @machine, :shift_up, :parked, :idling),
38
- StateMachines::Transition.new(@object, @machine, :shift_up, :idling, :first_gear),
39
- StateMachines::Transition.new(@object, @machine, :shift_down, :first_gear, :idling)
40
- ]
41
- ], @paths
42
- end
43
- end
@@ -1,31 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathCollectionWithDuplicateNodesTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.state :parked, :idling
8
- @machine.event :shift_up do
9
- transition parked: :idling, idling: :first_gear
10
- end
11
- @machine.event :park do
12
- transition first_gear: :idling
13
- end
14
- @object = @klass.new
15
- @object.state = 'parked'
16
-
17
- @paths = StateMachines::PathCollection.new(@object, @machine)
18
- end
19
-
20
- def test_should_not_include_duplicates_in_from_states
21
- assert_equal [:parked, :idling, :first_gear], @paths.from_states
22
- end
23
-
24
- def test_should_not_include_duplicates_in_to_states
25
- assert_equal [:idling, :first_gear], @paths.to_states
26
- end
27
-
28
- def test_should_not_include_duplicates_in_events
29
- assert_equal [:shift_up, :park], @paths.events
30
- end
31
- end
@@ -1,27 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathCollectionWithFromStateTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.state :parked, :idling, :first_gear
8
- @machine.event :park do
9
- transition idling: :parked
10
- end
11
-
12
- @object = @klass.new
13
- @object.state = 'parked'
14
-
15
- @paths = StateMachines::PathCollection.new(@object, @machine, from: :idling)
16
- end
17
-
18
- def test_should_generate_paths_from_custom_from_state
19
- assert_equal [[
20
- StateMachines::Transition.new(@object, @machine, :park, :idling, :parked)
21
- ]], @paths
22
- end
23
-
24
- def test_should_have_a_from_name
25
- assert_equal :idling, @paths.from_name
26
- end
27
- end
@@ -1,47 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathCollectionWithPathsTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.state :parked, :idling, :first_gear
8
- @machine.event :ignite do
9
- transition parked: :idling
10
- end
11
- @machine.event :shift_up do
12
- transition idling: :first_gear
13
- end
14
-
15
- @object = @klass.new
16
- @object.state = 'parked'
17
-
18
- @paths = StateMachines::PathCollection.new(@object, @machine)
19
- end
20
-
21
- def test_should_enumerate_paths
22
- assert_equal [[
23
- StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling),
24
- StateMachines::Transition.new(@object, @machine, :shift_up, :idling, :first_gear)
25
- ]], @paths
26
- end
27
-
28
- def test_should_have_a_from_name
29
- assert_equal :parked, @paths.from_name
30
- end
31
-
32
- def test_should_not_have_a_to_name
33
- assert_nil @paths.to_name
34
- end
35
-
36
- def test_should_have_from_states
37
- assert_equal [:parked, :idling], @paths.from_states
38
- end
39
-
40
- def test_should_have_to_states
41
- assert_equal [:idling, :first_gear], @paths.to_states
42
- end
43
-
44
- def test_should_have_no_events
45
- assert_equal [:ignite, :shift_up], @paths.events
46
- end
47
- end
@@ -1,29 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathCollectionWithToStateTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.state :parked, :idling
8
- @machine.event :ignite do
9
- transition parked: :idling
10
- end
11
- @machine.event :shift_up do
12
- transition parked: :idling, idling: :first_gear
13
- end
14
- @machine.event :shift_down do
15
- transition first_gear: :idling
16
- end
17
- @object = @klass.new
18
- @object.state = 'parked'
19
-
20
- @paths = StateMachines::PathCollection.new(@object, @machine, to: :idling)
21
- end
22
-
23
- def test_should_stop_paths_once_target_state_reached
24
- assert_equal [
25
- [StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling)],
26
- [StateMachines::Transition.new(@object, @machine, :shift_up, :parked, :idling)]
27
- ], @paths
28
- end
29
- end
@@ -1,25 +0,0 @@
1
- require_relative '../../test_helper'
2
- class PathWithGuardedPathsTest < StateMachinesTest
3
- def setup
4
- @klass = Class.new
5
- @machine = StateMachines::Machine.new(@klass)
6
- @machine.state :parked, :idling, :first_gear
7
- @machine.event :ignite do
8
- transition parked: :idling, if: lambda { false }
9
- end
10
-
11
- @object = @klass.new
12
- @object.state = 'parked'
13
- end
14
-
15
- def test_should_not_enumerate_paths_if_guard_enabled
16
- assert_equal [], StateMachines::PathCollection.new(@object, @machine)
17
- end
18
-
19
- def test_should_enumerate_paths_if_guard_disabled
20
- paths = StateMachines::PathCollection.new(@object, @machine, guard: false)
21
- assert_equal [[
22
- StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling)
23
- ]], paths
24
- end
25
- end
@@ -1,19 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateAfterBeingCopiedTest < StateMachinesTest
4
- def setup
5
- @machine = StateMachines::Machine.new(Class.new)
6
- @machine.states << @state = StateMachines::State.new(@machine, :parked)
7
- @copied_state = @state.dup
8
- end
9
-
10
- def test_should_not_have_the_context
11
- state_context = nil
12
- @state.context { state_context = self }
13
-
14
- copied_state_context = nil
15
- @copied_state.context { copied_state_context = self }
16
-
17
- refute_same state_context, copied_state_context
18
- end
19
- end