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,42 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class AttributeTransitionCollectionWithSkippedAfterCallbacksTest < 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
- ], after: false)
23
- end
24
-
25
- def test_should_clear_events
26
- @transitions.perform
27
- assert_nil @object.state_event
28
- assert_nil @object.status_event
29
- end
30
-
31
- def test_should_write_event_transitions_if_success
32
- @transitions.perform { true }
33
- assert_equal @state_transition, @object.send(:state_event_transition)
34
- assert_equal @status_transition, @object.send(:status_event_transition)
35
- end
36
-
37
- def test_should_not_write_event_transitions_if_failed
38
- @transitions.perform { false }
39
- assert_nil @object.send(:state_event_transition)
40
- assert_nil @object.send(:status_event_transition)
41
- end
42
- end
@@ -1,23 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class TransitionCollectionByDefaultTest < StateMachinesTest
4
- def setup
5
- @transitions = StateMachines::TransitionCollection.new
6
- end
7
-
8
- def test_should_not_skip_actions
9
- refute @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_use_transaction
17
- assert @transitions.use_transactions
18
- end
19
-
20
- def test_should_be_empty
21
- assert @transitions.empty?
22
- end
23
- end
@@ -1,23 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class TransitionCollectionEmptyWithBlockTest < StateMachinesTest
4
- def setup
5
- @transitions = StateMachines::TransitionCollection.new
6
- end
7
-
8
- def test_should_raise_exception_if_perform_raises_exception
9
- assert_raises(ArgumentError) { @transitions.perform { fail ArgumentError } }
10
- end
11
-
12
- def test_should_use_block_result_if_non_boolean
13
- assert_equal 1, @transitions.perform { 1 }
14
- end
15
-
16
- def test_should_use_block_result_if_false
17
- assert_equal false, @transitions.perform { false }
18
- end
19
-
20
- def test_should_use_block_reslut_if_nil
21
- assert_nil @transitions.perform { nil }
22
- end
23
- end
@@ -1,12 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class TransitionCollectionEmptyWithoutBlockTest < StateMachinesTest
4
- def setup
5
- @transitions = StateMachines::TransitionCollection.new
6
- @result = @transitions.perform
7
- end
8
-
9
- def test_should_succeed
10
- assert_equal true, @result
11
- end
12
- end
@@ -1,21 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class TransitionCollectionInvalidTest < StateMachinesTest
4
- def setup
5
- @transitions = StateMachines::TransitionCollection.new([false])
6
- end
7
-
8
- def test_should_be_empty
9
- assert @transitions.empty?
10
- end
11
-
12
- def test_should_not_succeed
13
- assert_equal false, @transitions.perform
14
- end
15
-
16
- def test_should_not_run_perform_block
17
- ran_block = false
18
- @transitions.perform { ran_block = true }
19
- refute ran_block
20
- end
21
- end
@@ -1,69 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class TransitionCollectionPartialInvalidTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new do
6
- attr_accessor :ran_transaction
7
- end
8
-
9
- @callbacks = []
10
-
11
- @machine = StateMachines::Machine.new(@klass, initial: :parked)
12
- @machine.state :idling
13
- @machine.event :ignite
14
- @machine.before_transition { @callbacks << :before }
15
- @machine.after_transition { @callbacks << :after }
16
- @machine.around_transition { |block| @callbacks << :around_before; block.call; @callbacks << :around_after }
17
-
18
- class << @machine
19
- def within_transaction(object)
20
- object.ran_transaction = true
21
- end
22
- end
23
-
24
- @object = @klass.new
25
-
26
- @transitions = StateMachines::TransitionCollection.new([
27
- StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling),
28
- false
29
- ])
30
- end
31
-
32
- def test_should_not_store_invalid_values
33
- assert_equal 1, @transitions.length
34
- end
35
-
36
- def test_should_not_succeed
37
- assert_equal false, @transitions.perform
38
- end
39
-
40
- def test_should_not_start_transaction
41
- refute @object.ran_transaction
42
- end
43
-
44
- def test_should_not_run_perform_block
45
- ran_block = false
46
- @transitions.perform { ran_block = true }
47
- refute ran_block
48
- end
49
-
50
- def test_should_not_run_before_callbacks
51
- refute @callbacks.include?(:before)
52
- end
53
-
54
- def test_should_not_persist_states
55
- assert_equal 'parked', @object.state
56
- end
57
-
58
- def test_should_not_run_after_callbacks
59
- refute @callbacks.include?(:after)
60
- end
61
-
62
- def test_should_not_run_around_callbacks_before_yield
63
- refute @callbacks.include?(:around_before)
64
- end
65
-
66
- def test_should_not_run_around_callbacks_after_yield
67
- refute @callbacks.include?(:around_after)
68
- end
69
- end
@@ -1,26 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class TransitionCollectionTest < StateMachinesTest
4
- def test_should_raise_exception_if_invalid_option_specified
5
- exception = assert_raises(ArgumentError) { StateMachines::TransitionCollection.new([], invalid: true) }
6
- assert_equal 'Unknown key: :invalid. Valid keys are: :actions, :after, :use_transactions', exception.message
7
- end
8
-
9
- def test_should_raise_exception_if_multiple_transitions_for_same_attribute_specified
10
- @klass = Class.new
11
-
12
- @machine = StateMachines::Machine.new(@klass, initial: :parked)
13
- @machine.state :parked, :idling
14
- @machine.event :ignite
15
-
16
- @object = @klass.new
17
-
18
- exception = assert_raises(ArgumentError) do
19
- StateMachines::TransitionCollection.new([
20
- StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling),
21
- StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling)
22
- ])
23
- end
24
- assert_equal 'Cannot perform multiple transitions in parallel for the same state machine attribute', exception.message
25
- end
26
- end
@@ -1,57 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class TransitionCollectionValidTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new do
6
- attr_reader :persisted
7
-
8
- def initialize
9
- @persisted = nil
10
- super
11
- @persisted = []
12
- end
13
-
14
- def state=(value)
15
- @persisted << 'state' if @persisted
16
- @state = value
17
- end
18
-
19
- def status=(value)
20
- @persisted << 'status' if @persisted
21
- @status = value
22
- end
23
- end
24
-
25
- @state = StateMachines::Machine.new(@klass, initial: :parked)
26
- @state.state :idling
27
- @state.event :ignite
28
- @status = StateMachines::Machine.new(@klass, :status, initial: :first_gear)
29
- @status.state :second_gear
30
- @status.event :shift_up
31
-
32
- @object = @klass.new
33
-
34
- @result = StateMachines::TransitionCollection.new([
35
- @state_transition = StateMachines::Transition.new(@object, @state, :ignite, :parked, :idling),
36
- @status_transition = StateMachines::Transition.new(@object, @status, :shift_up, :first_gear, :second_gear)
37
- ]).perform
38
- end
39
-
40
- def test_should_succeed
41
- assert_equal true, @result
42
- end
43
-
44
- def test_should_persist_each_state
45
- assert_equal 'idling', @object.state
46
- assert_equal 'second_gear', @object.status
47
- end
48
-
49
- def test_should_persist_in_order
50
- assert_equal %w(state status), @object.persisted
51
- end
52
-
53
- def test_should_store_results_in_transitions
54
- assert_nil @state_transition.result
55
- assert_nil @status_transition.result
56
- end
57
- end
@@ -1,66 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class TransitionCollectionWithActionErrorTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new do
6
- def save
7
- fail ArgumentError
8
- end
9
- end
10
- @before_count = 0
11
- @around_before_count = 0
12
- @after_count = 0
13
- @around_after_count = 0
14
- @failure_count = 0
15
-
16
- @machine = StateMachines::Machine.new(@klass, initial: :parked, action: :save)
17
- @machine.state :idling
18
- @machine.event :ignite
19
-
20
- @machine.before_transition { @before_count += 1 }
21
- @machine.after_transition { @after_count += 1 }
22
- @machine.around_transition { |block| @around_before_count += 1; block.call; @around_after_count += 1 }
23
- @machine.after_failure { @failure_count += 1 }
24
-
25
- @object = @klass.new
26
-
27
- @transitions = StateMachines::TransitionCollection.new([
28
- StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling)
29
- ])
30
-
31
- @raised = true
32
- begin
33
- @transitions.perform
34
- @raised = false
35
- rescue ArgumentError
36
- end
37
- end
38
-
39
- def test_should_not_catch_exception
40
- assert @raised
41
- end
42
-
43
- def test_should_not_persist_state
44
- assert_equal 'parked', @object.state
45
- end
46
-
47
- def test_should_run_before_callbacks
48
- assert_equal 1, @before_count
49
- end
50
-
51
- def test_should_run_around_callbacks_before_yield
52
- assert_equal 1, @around_before_count
53
- end
54
-
55
- def test_should_not_run_after_callbacks
56
- assert_equal 0, @after_count
57
- end
58
-
59
- def test_should_not_run_around_callbacks_after_yield
60
- assert_equal 0, @around_after_count
61
- end
62
-
63
- def test_should_not_run_failure_callbacks
64
- assert_equal 0, @failure_count
65
- end
66
- end
@@ -1,60 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class TransitionCollectionWithActionFailedTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new do
6
- def save
7
- false
8
- end
9
- end
10
- @before_count = 0
11
- @around_before_count = 0
12
- @after_count = 0
13
- @around_after_count = 0
14
- @failure_count = 0
15
-
16
- @machine = StateMachines::Machine.new(@klass, initial: :parked, action: :save)
17
- @machine.state :idling
18
- @machine.event :ignite
19
-
20
- @machine.before_transition { @before_count += 1 }
21
- @machine.after_transition { @after_count += 1 }
22
- @machine.around_transition { |block| @around_before_count += 1; block.call; @around_after_count += 1 }
23
- @machine.after_failure { @failure_count += 1 }
24
-
25
- @object = @klass.new
26
-
27
- @transitions = StateMachines::TransitionCollection.new([
28
- StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling)
29
- ])
30
- @result = @transitions.perform
31
- end
32
-
33
- def test_should_not_succeed
34
- assert_equal false, @result
35
- end
36
-
37
- def test_should_not_persist_state
38
- assert_equal 'parked', @object.state
39
- end
40
-
41
- def test_should_run_before_callbacks
42
- assert_equal 1, @before_count
43
- end
44
-
45
- def test_should_run_around_callbacks_before_yield
46
- assert_equal 1, @around_before_count
47
- end
48
-
49
- def test_should_not_run_after_callbacks
50
- assert_equal 0, @after_count
51
- end
52
-
53
- def test_should_not_run_around_callbacks
54
- assert_equal 0, @around_after_count
55
- end
56
-
57
- def test_should_run_failure_callbacks
58
- assert_equal 1, @failure_count
59
- end
60
- end
@@ -1,17 +0,0 @@
1
- require_relative '../../test_helper'
2
- require_relative 'transition_collection_with_action_hook_base_test'
3
-
4
- class TransitionCollectionWithActionHookAndBlockTest < TransitionCollectionWithActionHookBaseTest
5
- def setup
6
- super
7
- @result = StateMachines::TransitionCollection.new([@transition]).perform { true }
8
- end
9
-
10
- def test_should_succeed
11
- assert_equal true, @result
12
- end
13
-
14
- def test_should_not_run_action
15
- refute @object.saved
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- require_relative '../../test_helper'
2
- require_relative 'transition_collection_with_action_hook_base_test.rb'
3
-
4
- class TransitionCollectionWithActionHookAndSkippedActionTest < TransitionCollectionWithActionHookBaseTest
5
- def setup
6
- super
7
- @result = StateMachines::TransitionCollection.new([@transition], actions: false).perform
8
- end
9
-
10
- def test_should_succeed
11
- assert_equal true, @result
12
- end
13
-
14
- def test_should_not_run_action
15
- refute @object.saved
16
- end
17
- end
@@ -1,37 +0,0 @@
1
- require_relative '../../test_helper'
2
- require_relative 'transition_collection_with_action_hook_base_test.rb'
3
-
4
- class TransitionCollectionWithActionHookAndSkippedAfterCallbacksTest < TransitionCollectionWithActionHookBaseTest
5
- def setup
6
- super
7
- @result = StateMachines::TransitionCollection.new([@transition], after: false).perform
8
- end
9
-
10
- def test_should_succeed
11
- assert_equal true, @result
12
- end
13
-
14
- def test_should_run_action
15
- assert @object.saved
16
- end
17
-
18
- def test_should_have_already_persisted_when_running_action
19
- assert_equal 'idling', @object.state_on_save
20
- end
21
-
22
- def test_should_not_have_event_during_action
23
- assert_nil @object.state_event_on_save
24
- end
25
-
26
- def test_should_not_write_event
27
- assert_nil @object.state_event
28
- end
29
-
30
- def test_should_not_have_event_transition_during_save
31
- assert_nil @object.state_event_transition_on_save
32
- end
33
-
34
- def test_should_not_write_event_attribute
35
- assert_nil @object.send(:state_event_transition)
36
- end
37
- end
@@ -1,34 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class TransitionCollectionWithActionHookBaseTest < StateMachinesTest
4
- def setup
5
- @superclass = Class.new do
6
- def save
7
- true
8
- end
9
- end
10
-
11
- @klass = Class.new(@superclass) do
12
- attr_reader :saved, :state_on_save, :state_event_on_save, :state_event_transition_on_save
13
-
14
- def save
15
- @saved = true
16
- @state_on_save = state
17
- @state_event_on_save = state_event
18
- @state_event_transition_on_save = state_event_transition
19
- super
20
- end
21
- end
22
-
23
- @machine = StateMachines::Machine.new(@klass, initial: :parked, action: :save)
24
- @machine.state :idling
25
- @machine.event :ignite
26
-
27
- @object = @klass.new
28
-
29
- @transition = StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling)
30
- end
31
-
32
- def default_test
33
- end
34
- end
@@ -1,29 +0,0 @@
1
- require_relative '../../test_helper'
2
- require_relative 'transition_collection_with_action_hook_base_test.rb'
3
-
4
- class TransitionCollectionWithActionHookErrorTest < TransitionCollectionWithActionHookBaseTest
5
- def setup
6
- super
7
-
8
- @superclass.class_eval do
9
- remove_method :save
10
-
11
- def save
12
- fail ArgumentError
13
- end
14
- end
15
-
16
- begin
17
- ; StateMachines::TransitionCollection.new([@transition]).perform
18
- rescue
19
- end
20
- end
21
-
22
- def test_should_not_write_event
23
- assert_nil @object.state_event
24
- end
25
-
26
- def test_should_not_write_event_transition
27
- assert_nil @object.send(:state_event_transition)
28
- end
29
- end
@@ -1,17 +0,0 @@
1
- require_relative '../../test_helper'
2
- require_relative 'transition_collection_with_action_hook_base_test.rb'
3
-
4
- class TransitionCollectionWithActionHookInvalidTest < TransitionCollectionWithActionHookBaseTest
5
- def setup
6
- super
7
- @result = StateMachines::TransitionCollection.new([@transition, nil]).perform
8
- end
9
-
10
- def test_should_not_succeed
11
- assert_equal false, @result
12
- end
13
-
14
- def test_should_not_run_action
15
- refute @object.saved
16
- end
17
- end
@@ -1,79 +0,0 @@
1
- require_relative '../../test_helper'
2
- require_relative 'transition_collection_with_action_hook_base_test.rb'
3
-
4
- class TransitionCollectionWithActionHookMultipleTest < TransitionCollectionWithActionHookBaseTest
5
- def setup
6
- super
7
-
8
- @status_machine = StateMachines::Machine.new(@klass, :status, initial: :first_gear, action: :save)
9
- @status_machine.state :second_gear
10
- @status_machine.event :shift_up
11
-
12
- @klass.class_eval do
13
- attr_reader :status_on_save, :status_event_on_save, :status_event_transition_on_save
14
-
15
- remove_method :save
16
-
17
- def save
18
- @saved = true
19
- @state_on_save = state
20
- @state_event_on_save = state_event
21
- @state_event_transition_on_save = state_event_transition
22
- @status_on_save = status
23
- @status_event_on_save = status_event
24
- @status_event_transition_on_save = status_event_transition
25
- super
26
- 1
27
- end
28
- end
29
-
30
- @object = @klass.new
31
- @state_transition = StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling)
32
- @status_transition = StateMachines::Transition.new(@object, @status_machine, :shift_up, :first_gear, :second_gear)
33
-
34
- @result = StateMachines::TransitionCollection.new([@state_transition, @status_transition]).perform
35
- end
36
-
37
- def test_should_succeed
38
- assert_equal 1, @result
39
- end
40
-
41
- def test_should_run_action
42
- assert @object.saved
43
- end
44
-
45
- def test_should_not_have_already_persisted_when_running_action
46
- assert_equal 'parked', @object.state_on_save
47
- assert_equal 'first_gear', @object.status_on_save
48
- end
49
-
50
- def test_should_persist
51
- assert_equal 'idling', @object.state
52
- assert_equal 'second_gear', @object.status
53
- end
54
-
55
- def test_should_not_have_events_during_action
56
- assert_nil @object.state_event_on_save
57
- assert_nil @object.status_event_on_save
58
- end
59
-
60
- def test_should_not_write_events
61
- assert_nil @object.state_event
62
- assert_nil @object.status_event
63
- end
64
-
65
- def test_should_have_event_transitions_during_action
66
- assert_equal @state_transition, @object.state_event_transition_on_save
67
- assert_equal @status_transition, @object.status_event_transition_on_save
68
- end
69
-
70
- def test_should_not_write_event_transitions
71
- assert_nil @object.send(:state_event_transition)
72
- assert_nil @object.send(:status_event_transition)
73
- end
74
-
75
- def test_should_mark_event_transitions_as_transient
76
- assert @state_transition.transient?
77
- assert @status_transition.transient?
78
- end
79
- end
@@ -1,45 +0,0 @@
1
- require_relative '../../test_helper'
2
- require_relative 'transition_collection_with_action_hook_base_test.rb'
3
-
4
- class TransitionCollectionWithActionHookTest < TransitionCollectionWithActionHookBaseTest
5
- def setup
6
- super
7
- @result = StateMachines::TransitionCollection.new([@transition]).perform
8
- end
9
-
10
- def test_should_succeed
11
- assert_equal true, @result
12
- end
13
-
14
- def test_should_run_action
15
- assert @object.saved
16
- end
17
-
18
- def test_should_not_have_already_persisted_when_running_action
19
- assert_equal 'parked', @object.state_on_save
20
- end
21
-
22
- def test_should_persist
23
- assert_equal 'idling', @object.state
24
- end
25
-
26
- def test_should_not_have_event_during_action
27
- assert_nil @object.state_event_on_save
28
- end
29
-
30
- def test_should_not_write_event
31
- assert_nil @object.state_event
32
- end
33
-
34
- def test_should_have_event_transition_during_action
35
- assert_equal @transition, @object.state_event_transition_on_save
36
- end
37
-
38
- def test_should_not_write_event_transition
39
- assert_nil @object.send(:state_event_transition)
40
- end
41
-
42
- def test_should_mark_event_transition_as_transient
43
- assert @transition.transient?
44
- end
45
- end