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