state_machines 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (454) hide show
  1. checksums.yaml +5 -5
  2. data/LICENSE.txt +1 -1
  3. data/README.md +18 -13
  4. data/lib/state_machines/branch.rb +81 -79
  5. data/lib/state_machines/callback.rb +22 -21
  6. data/lib/state_machines/eval_helpers.rb +15 -15
  7. data/lib/state_machines/event.rb +31 -28
  8. data/lib/state_machines/event_collection.rb +26 -25
  9. data/lib/state_machines/extensions.rb +2 -2
  10. data/lib/state_machines/helper_module.rb +1 -1
  11. data/lib/state_machines/integrations/base.rb +2 -5
  12. data/lib/state_machines/integrations.rb +9 -13
  13. data/lib/state_machines/machine.rb +386 -379
  14. data/lib/state_machines/machine_collection.rb +11 -10
  15. data/lib/state_machines/macro_methods.rb +100 -100
  16. data/lib/state_machines/matcher.rb +23 -23
  17. data/lib/state_machines/matcher_helpers.rb +11 -11
  18. data/lib/state_machines/node_collection.rb +15 -13
  19. data/lib/state_machines/path.rb +56 -55
  20. data/lib/state_machines/path_collection.rb +38 -38
  21. data/lib/state_machines/state.rb +28 -22
  22. data/lib/state_machines/state_collection.rb +21 -20
  23. data/lib/state_machines/state_context.rb +33 -35
  24. data/lib/state_machines/transition.rb +180 -178
  25. data/lib/state_machines/transition_collection.rb +170 -168
  26. data/lib/state_machines/version.rb +1 -1
  27. metadata +5 -852
  28. data/.gitignore +0 -21
  29. data/.rspec +0 -3
  30. data/.travis.yml +0 -14
  31. data/Changelog.md +0 -16
  32. data/Contributors.md +0 -39
  33. data/Gemfile +0 -8
  34. data/Rakefile +0 -12
  35. data/Testing.md +0 -0
  36. data/state_machines.gemspec +0 -23
  37. data/test/files/integrations/event_on_failure_integration.rb +0 -10
  38. data/test/files/integrations/vehicle.rb +0 -7
  39. data/test/files/models/auto_shop.rb +0 -31
  40. data/test/files/models/car.rb +0 -21
  41. data/test/files/models/model_base.rb +0 -6
  42. data/test/files/models/motorcycle.rb +0 -11
  43. data/test/files/models/traffic_light.rb +0 -47
  44. data/test/files/models/vehicle.rb +0 -127
  45. data/test/files/node.rb +0 -5
  46. data/test/files/switch.rb +0 -15
  47. data/test/functional/auto_shop_available_test.rb +0 -20
  48. data/test/functional/auto_shop_busy_test.rb +0 -25
  49. data/test/functional/car_backing_up_test.rb +0 -45
  50. data/test/functional/car_test.rb +0 -49
  51. data/test/functional/motorcycle_test.rb +0 -46
  52. data/test/functional/traffic_light_caution_test.rb +0 -17
  53. data/test/functional/traffic_light_proceed_test.rb +0 -17
  54. data/test/functional/traffic_light_stop_test.rb +0 -26
  55. data/test/functional/vehicle_first_gear_test.rb +0 -42
  56. data/test/functional/vehicle_idling_test.rb +0 -59
  57. data/test/functional/vehicle_locked_test.rb +0 -29
  58. data/test/functional/vehicle_parked_test.rb +0 -53
  59. data/test/functional/vehicle_repaired_test.rb +0 -20
  60. data/test/functional/vehicle_second_gear_test.rb +0 -42
  61. data/test/functional/vehicle_stalled_test.rb +0 -65
  62. data/test/functional/vehicle_test.rb +0 -20
  63. data/test/functional/vehicle_third_gear_test.rb +0 -42
  64. data/test/functional/vehicle_unsaved_test.rb +0 -181
  65. data/test/functional/vehicle_with_event_attributes_test.rb +0 -30
  66. data/test/functional/vehicle_with_parallel_events_test.rb +0 -36
  67. data/test/test_helper.rb +0 -15
  68. data/test/unit/assertions/assert_exclusive_keys_test.rb +0 -22
  69. data/test/unit/assertions/assert_valid_key_test.rb +0 -12
  70. data/test/unit/branch/branch_test.rb +0 -28
  71. data/test/unit/branch/branch_with_conflicting_conditionals_test.rb +0 -27
  72. data/test/unit/branch/branch_with_conflicting_from_requirements_test.rb +0 -8
  73. data/test/unit/branch/branch_with_conflicting_on_requirements_test.rb +0 -8
  74. data/test/unit/branch/branch_with_conflicting_to_requirements_test.rb +0 -8
  75. data/test/unit/branch/branch_with_different_requirements_test.rb +0 -41
  76. data/test/unit/branch/branch_with_except_from_matcher_requirement_test.rb +0 -8
  77. data/test/unit/branch/branch_with_except_from_requirement_test.rb +0 -36
  78. data/test/unit/branch/branch_with_except_on_matcher_requirement_test.rb +0 -8
  79. data/test/unit/branch/branch_with_except_on_requirement_test.rb +0 -36
  80. data/test/unit/branch/branch_with_except_to_matcher_requirement_test.rb +0 -8
  81. data/test/unit/branch/branch_with_except_to_requirement_test.rb +0 -36
  82. data/test/unit/branch/branch_with_from_matcher_requirement_test.rb +0 -20
  83. data/test/unit/branch/branch_with_from_requirement_test.rb +0 -45
  84. data/test/unit/branch/branch_with_if_conditional_test.rb +0 -27
  85. data/test/unit/branch/branch_with_implicit_and_explicit_requirements_test.rb +0 -23
  86. data/test/unit/branch/branch_with_implicit_from_requirement_matcher_test.rb +0 -20
  87. data/test/unit/branch/branch_with_implicit_requirement_test.rb +0 -20
  88. data/test/unit/branch/branch_with_implicit_to_requirement_matcher_test.rb +0 -16
  89. data/test/unit/branch/branch_with_multiple_except_from_requirements_test.rb +0 -20
  90. data/test/unit/branch/branch_with_multiple_except_on_requirements_test.rb +0 -16
  91. data/test/unit/branch/branch_with_multiple_except_to_requirements_test.rb +0 -20
  92. data/test/unit/branch/branch_with_multiple_from_requirements_test.rb +0 -16
  93. data/test/unit/branch/branch_with_multiple_if_conditionals_test.rb +0 -20
  94. data/test/unit/branch/branch_with_multiple_implicit_requirements_test.rb +0 -53
  95. data/test/unit/branch/branch_with_multiple_on_requirements_test.rb +0 -20
  96. data/test/unit/branch/branch_with_multiple_to_requirements_test.rb +0 -20
  97. data/test/unit/branch/branch_with_multiple_unless_conditionals_test.rb +0 -20
  98. data/test/unit/branch/branch_with_nil_requirements_test.rb +0 -28
  99. data/test/unit/branch/branch_with_no_requirements_test.rb +0 -36
  100. data/test/unit/branch/branch_with_on_matcher_requirement_test.rb +0 -16
  101. data/test/unit/branch/branch_with_on_requirement_test.rb +0 -45
  102. data/test/unit/branch/branch_with_to_matcher_requirement_test.rb +0 -20
  103. data/test/unit/branch/branch_with_to_requirement_test.rb +0 -45
  104. data/test/unit/branch/branch_with_unless_conditional_test.rb +0 -27
  105. data/test/unit/branch/branch_without_guards_test.rb +0 -27
  106. data/test/unit/callback/callback_by_default_test.rb +0 -25
  107. data/test/unit/callback/callback_test.rb +0 -53
  108. data/test/unit/callback/callback_with_application_bound_object_test.rb +0 -23
  109. data/test/unit/callback/callback_with_application_terminator_test.rb +0 -24
  110. data/test/unit/callback/callback_with_arguments_test.rb +0 -14
  111. data/test/unit/callback/callback_with_around_type_and_arguments_test.rb +0 -25
  112. data/test/unit/callback/callback_with_around_type_and_block_test.rb +0 -44
  113. data/test/unit/callback/callback_with_around_type_and_bound_method_test.rb +0 -23
  114. data/test/unit/callback/callback_with_around_type_and_multiple_methods_test.rb +0 -93
  115. data/test/unit/callback/callback_with_around_type_and_terminator_test.rb +0 -17
  116. data/test/unit/callback/callback_with_block_test.rb +0 -20
  117. data/test/unit/callback/callback_with_bound_method_and_arguments_test.rb +0 -28
  118. data/test/unit/callback/callback_with_bound_method_test.rb +0 -35
  119. data/test/unit/callback/callback_with_do_method_test.rb +0 -18
  120. data/test/unit/callback/callback_with_explicit_requirements_test.rb +0 -32
  121. data/test/unit/callback/callback_with_if_condition_test.rb +0 -17
  122. data/test/unit/callback/callback_with_implicit_requirements_test.rb +0 -32
  123. data/test/unit/callback/callback_with_method_argument_test.rb +0 -18
  124. data/test/unit/callback/callback_with_mixed_methods_test.rb +0 -31
  125. data/test/unit/callback/callback_with_multiple_bound_methods_test.rb +0 -21
  126. data/test/unit/callback/callback_with_multiple_do_methods_test.rb +0 -29
  127. data/test/unit/callback/callback_with_multiple_method_arguments_test.rb +0 -29
  128. data/test/unit/callback/callback_with_terminator_test.rb +0 -22
  129. data/test/unit/callback/callback_with_unbound_method_test.rb +0 -14
  130. data/test/unit/callback/callback_with_unless_condition_test.rb +0 -17
  131. data/test/unit/callback/callback_without_arguments_test.rb +0 -14
  132. data/test/unit/callback/callback_without_terminator_test.rb +0 -12
  133. data/test/unit/error/error_by_default_test.rb +0 -21
  134. data/test/unit/error/error_with_message_test.rb +0 -23
  135. data/test/unit/eval_helper/eval_helpers_base_test.rb +0 -8
  136. data/test/unit/eval_helper/eval_helpers_proc_block_and_explicit_arguments_test.rb +0 -14
  137. data/test/unit/eval_helper/eval_helpers_proc_block_and_implicit_arguments_test.rb +0 -14
  138. data/test/unit/eval_helper/eval_helpers_proc_test.rb +0 -13
  139. data/test/unit/eval_helper/eval_helpers_proc_with_arguments_test.rb +0 -13
  140. data/test/unit/eval_helper/eval_helpers_proc_with_block_test.rb +0 -13
  141. data/test/unit/eval_helper/eval_helpers_proc_with_block_without_arguments_test.rb +0 -18
  142. data/test/unit/eval_helper/eval_helpers_proc_with_block_without_object_test.rb +0 -14
  143. data/test/unit/eval_helper/eval_helpers_proc_without_arguments_test.rb +0 -19
  144. data/test/unit/eval_helper/eval_helpers_string_test.rb +0 -25
  145. data/test/unit/eval_helper/eval_helpers_string_with_block_test.rb +0 -12
  146. data/test/unit/eval_helper/eval_helpers_symbol_method_missing_test.rb +0 -20
  147. data/test/unit/eval_helper/eval_helpers_symbol_private_test.rb +0 -17
  148. data/test/unit/eval_helper/eval_helpers_symbol_protected_test.rb +0 -17
  149. data/test/unit/eval_helper/eval_helpers_symbol_tainted_method_test.rb +0 -18
  150. data/test/unit/eval_helper/eval_helpers_symbol_test.rb +0 -16
  151. data/test/unit/eval_helper/eval_helpers_symbol_with_arguments_and_block_test.rb +0 -16
  152. data/test/unit/eval_helper/eval_helpers_symbol_with_arguments_test.rb +0 -16
  153. data/test/unit/eval_helper/eval_helpers_symbol_with_block_test.rb +0 -16
  154. data/test/unit/eval_helper/eval_helpers_test.rb +0 -13
  155. data/test/unit/event/event_after_being_copied_test.rb +0 -17
  156. data/test/unit/event/event_by_default_test.rb +0 -60
  157. data/test/unit/event/event_context_test.rb +0 -16
  158. data/test/unit/event/event_on_failure_test.rb +0 -44
  159. data/test/unit/event/event_test.rb +0 -34
  160. data/test/unit/event/event_transitions_test.rb +0 -62
  161. data/test/unit/event/event_with_conflicting_helpers_after_definition_test.rb +0 -79
  162. data/test/unit/event/event_with_conflicting_helpers_before_definition_test.rb +0 -58
  163. data/test/unit/event/event_with_conflicting_machine_test.rb +0 -48
  164. data/test/unit/event/event_with_dynamic_human_name_test.rb +0 -26
  165. data/test/unit/event/event_with_human_name_test.rb +0 -13
  166. data/test/unit/event/event_with_invalid_current_state_test.rb +0 -30
  167. data/test/unit/event/event_with_machine_action_test.rb +0 -33
  168. data/test/unit/event/event_with_marshalling_test.rb +0 -47
  169. data/test/unit/event/event_with_matching_disabled_transitions_test.rb +0 -115
  170. data/test/unit/event/event_with_matching_enabled_transitions_test.rb +0 -75
  171. data/test/unit/event/event_with_multiple_transitions_test.rb +0 -61
  172. data/test/unit/event/event_with_namespace_test.rb +0 -34
  173. data/test/unit/event/event_with_transition_with_blacklisted_to_state_test.rb +0 -60
  174. data/test/unit/event/event_with_transition_with_loopback_state_test.rb +0 -36
  175. data/test/unit/event/event_with_transition_with_nil_to_state_test.rb +0 -36
  176. data/test/unit/event/event_with_transition_with_whitelisted_to_state_test.rb +0 -51
  177. data/test/unit/event/event_with_transition_without_to_state_test.rb +0 -36
  178. data/test/unit/event/event_with_transitions_test.rb +0 -32
  179. data/test/unit/event/event_without_matching_transitions_test.rb +0 -41
  180. data/test/unit/event/event_without_transitions_test.rb +0 -28
  181. data/test/unit/event/invalid_event_test.rb +0 -20
  182. data/test/unit/event_collection/event_collection_attribute_with_machine_action_test.rb +0 -62
  183. data/test/unit/event_collection/event_collection_attribute_with_namespaced_machine_test.rb +0 -36
  184. data/test/unit/event_collection/event_collection_by_default_test.rb +0 -26
  185. data/test/unit/event_collection/event_collection_test.rb +0 -39
  186. data/test/unit/event_collection/event_collection_with_custom_machine_attribute_test.rb +0 -31
  187. data/test/unit/event_collection/event_collection_with_events_with_transitions_test.rb +0 -76
  188. data/test/unit/event_collection/event_collection_with_multiple_events_test.rb +0 -27
  189. data/test/unit/event_collection/event_collection_with_validations_test.rb +0 -74
  190. data/test/unit/event_collection/event_collection_without_machine_action_test.rb +0 -18
  191. data/test/unit/event_collection/event_string_collection_test.rb +0 -31
  192. data/test/unit/helper_module_test.rb +0 -17
  193. data/test/unit/integrations/integration_finder_test.rb +0 -16
  194. data/test/unit/integrations/integration_matcher_test.rb +0 -27
  195. data/test/unit/invalid_transition/invalid_parallel_transition_test.rb +0 -18
  196. data/test/unit/invalid_transition/invalid_transition_test.rb +0 -47
  197. data/test/unit/invalid_transition/invalid_transition_with_integration_test.rb +0 -45
  198. data/test/unit/invalid_transition/invalid_transition_with_namespace_test.rb +0 -32
  199. data/test/unit/machine/machine_after_being_copied_test.rb +0 -62
  200. data/test/unit/machine/machine_after_changing_initial_state.rb +0 -28
  201. data/test/unit/machine/machine_after_changing_owner_class_test.rb +0 -31
  202. data/test/unit/machine/machine_by_default_test.rb +0 -160
  203. data/test/unit/machine/machine_finder_custom_options_test.rb +0 -17
  204. data/test/unit/machine/machine_finder_with_existing_machine_on_superclass_test.rb +0 -85
  205. data/test/unit/machine/machine_finder_with_existing_on_same_class_test.rb +0 -23
  206. data/test/unit/machine/machine_finder_without_existing_machine_test.rb +0 -25
  207. data/test/unit/machine/machine_persistence_test.rb +0 -52
  208. data/test/unit/machine/machine_state_initialization_test.rb +0 -56
  209. data/test/unit/machine/machine_test.rb +0 -30
  210. data/test/unit/machine/machine_with_action_already_overridden_test.rb +0 -23
  211. data/test/unit/machine/machine_with_action_defined_in_class_test.rb +0 -37
  212. data/test/unit/machine/machine_with_action_defined_in_included_module_test.rb +0 -46
  213. data/test/unit/machine/machine_with_action_defined_in_superclass_test.rb +0 -43
  214. data/test/unit/machine/machine_with_action_undefined_test.rb +0 -33
  215. data/test/unit/machine/machine_with_cached_state_test.rb +0 -20
  216. data/test/unit/machine/machine_with_class_helpers_test.rb +0 -179
  217. data/test/unit/machine/machine_with_conflicting_helpers_after_definition_test.rb +0 -244
  218. data/test/unit/machine/machine_with_conflicting_helpers_before_definition_test.rb +0 -175
  219. data/test/unit/machine/machine_with_custom_action_test.rb +0 -11
  220. data/test/unit/machine/machine_with_custom_attribute_test.rb +0 -103
  221. data/test/unit/machine/machine_with_custom_initialize_test.rb +0 -24
  222. data/test/unit/machine/machine_with_custom_integration_test.rb +0 -72
  223. data/test/unit/machine/machine_with_custom_invalidation_test.rb +0 -39
  224. data/test/unit/machine/machine_with_custom_name_test.rb +0 -57
  225. data/test/unit/machine/machine_with_custom_plural_test.rb +0 -52
  226. data/test/unit/machine/machine_with_dynamic_initial_state_test.rb +0 -65
  227. data/test/unit/machine/machine_with_event_matchers_test.rb +0 -41
  228. data/test/unit/machine/machine_with_events_test.rb +0 -52
  229. data/test/unit/machine/machine_with_events_with_custom_human_names_test.rb +0 -18
  230. data/test/unit/machine/machine_with_events_with_transitions_test.rb +0 -37
  231. data/test/unit/machine/machine_with_existing_event_test.rb +0 -17
  232. data/test/unit/machine/machine_with_existing_machines_on_owner_class_test.rb +0 -20
  233. data/test/unit/machine/machine_with_existing_machines_with_same_attributes_on_owner_class_test.rb +0 -71
  234. data/test/unit/machine/machine_with_existing_machines_with_same_attributes_on_owner_subclass_test.rb +0 -31
  235. data/test/unit/machine/machine_with_existing_state_test.rb +0 -27
  236. data/test/unit/machine/machine_with_failure_callbacks_test.rb +0 -48
  237. data/test/unit/machine/machine_with_helpers_test.rb +0 -14
  238. data/test/unit/machine/machine_with_initial_state_with_value_and_owner_default.rb +0 -25
  239. data/test/unit/machine/machine_with_initialize_and_super_test.rb +0 -17
  240. data/test/unit/machine/machine_with_initialize_arguments_and_block_test.rb +0 -31
  241. data/test/unit/machine/machine_with_initialize_without_super_test.rb +0 -17
  242. data/test/unit/machine/machine_with_instance_helpers_test.rb +0 -179
  243. data/test/unit/machine/machine_with_integration_test.rb +0 -72
  244. data/test/unit/machine/machine_with_multiple_events_test.rb +0 -32
  245. data/test/unit/machine/machine_with_namespace_test.rb +0 -48
  246. data/test/unit/machine/machine_with_nil_action_test.rb +0 -27
  247. data/test/unit/machine/machine_with_other_states.rb +0 -22
  248. data/test/unit/machine/machine_with_owner_subclass_test.rb +0 -18
  249. data/test/unit/machine/machine_with_paths_test.rb +0 -25
  250. data/test/unit/machine/machine_with_private_action_test.rb +0 -43
  251. data/test/unit/machine/machine_with_state_matchers_test.rb +0 -41
  252. data/test/unit/machine/machine_with_state_with_matchers_test.rb +0 -19
  253. data/test/unit/machine/machine_with_states_test.rb +0 -55
  254. data/test/unit/machine/machine_with_states_with_behaviors_test.rb +0 -23
  255. data/test/unit/machine/machine_with_states_with_custom_human_names_test.rb +0 -18
  256. data/test/unit/machine/machine_with_states_with_custom_values_test.rb +0 -21
  257. data/test/unit/machine/machine_with_states_with_runtime_dependencies_test.rb +0 -19
  258. data/test/unit/machine/machine_with_static_initial_state_test.rb +0 -49
  259. data/test/unit/machine/machine_with_superclass_conflicting_helpers_after_definition_test.rb +0 -36
  260. data/test/unit/machine/machine_with_transition_callbacks_test.rb +0 -144
  261. data/test/unit/machine/machine_with_transitions_test.rb +0 -87
  262. data/test/unit/machine/machine_without_initialization_test.rb +0 -31
  263. data/test/unit/machine/machine_without_initialize_test.rb +0 -14
  264. data/test/unit/machine/machine_without_integration_test.rb +0 -31
  265. data/test/unit/machine_collection/machine_collection_by_default_test.rb +0 -11
  266. data/test/unit/machine_collection/machine_collection_fire_attributes_with_validations_test.rb +0 -72
  267. data/test/unit/machine_collection/machine_collection_fire_test.rb +0 -80
  268. data/test/unit/machine_collection/machine_collection_fire_with_transactions_test.rb +0 -54
  269. data/test/unit/machine_collection/machine_collection_fire_with_validations_test.rb +0 -76
  270. data/test/unit/machine_collection/machine_collection_state_initialization_test.rb +0 -111
  271. data/test/unit/machine_collection/machine_collection_transitions_with_blank_events_test.rb +0 -25
  272. data/test/unit/machine_collection/machine_collection_transitions_with_custom_options_test.rb +0 -20
  273. data/test/unit/machine_collection/machine_collection_transitions_with_different_actions_test.rb +0 -26
  274. data/test/unit/machine_collection/machine_collection_transitions_with_exisiting_transitions_test.rb +0 -25
  275. data/test/unit/machine_collection/machine_collection_transitions_with_invalid_events_test.rb +0 -25
  276. data/test/unit/machine_collection/machine_collection_transitions_with_same_actions_test.rb +0 -31
  277. data/test/unit/machine_collection/machine_collection_transitions_with_transition_test.rb +0 -26
  278. data/test/unit/machine_collection/machine_collection_transitions_without_events_test.rb +0 -25
  279. data/test/unit/machine_collection/machine_collection_transitions_without_transition_test.rb +0 -27
  280. data/test/unit/matcher/all_matcher_test.rb +0 -29
  281. data/test/unit/matcher/blacklist_matcher_test.rb +0 -30
  282. data/test/unit/matcher/loopback_matcher_test.rb +0 -27
  283. data/test/unit/matcher/matcher_by_default_test.rb +0 -15
  284. data/test/unit/matcher/matcher_with_multiple_values_test.rb +0 -15
  285. data/test/unit/matcher/matcher_with_value_test.rb +0 -15
  286. data/test/unit/matcher/whitelist_matcher_test.rb +0 -30
  287. data/test/unit/matcher_helpers/matcher_helpers_all_test.rb +0 -14
  288. data/test/unit/matcher_helpers/matcher_helpers_any_test.rb +0 -14
  289. data/test/unit/matcher_helpers/matcher_helpers_same_test.rb +0 -13
  290. data/test/unit/node_collection/node_collection_after_being_copied_test.rb +0 -46
  291. data/test/unit/node_collection/node_collection_after_update_test.rb +0 -36
  292. data/test/unit/node_collection/node_collection_by_default_test.rb +0 -22
  293. data/test/unit/node_collection/node_collection_test.rb +0 -23
  294. data/test/unit/node_collection/node_collection_with_indices_test.rb +0 -42
  295. data/test/unit/node_collection/node_collection_with_matcher_contexts_test.rb +0 -25
  296. data/test/unit/node_collection/node_collection_with_nodes_test.rb +0 -46
  297. data/test/unit/node_collection/node_collection_with_numeric_index_test.rb +0 -24
  298. data/test/unit/node_collection/node_collection_with_postdefined_contexts_test.rb +0 -22
  299. data/test/unit/node_collection/node_collection_with_predefined_contexts_test.rb +0 -23
  300. data/test/unit/node_collection/node_collection_with_string_index_test.rb +0 -20
  301. data/test/unit/node_collection/node_collection_with_symbol_index_test.rb +0 -20
  302. data/test/unit/node_collection/node_collection_without_indices_test.rb +0 -30
  303. data/test/unit/path/path_by_default_test.rb +0 -54
  304. data/test/unit/path/path_test.rb +0 -14
  305. data/test/unit/path/path_with_available_transitions_after_reaching_target_test.rb +0 -40
  306. data/test/unit/path/path_with_available_transitions_test.rb +0 -54
  307. data/test/unit/path/path_with_deep_target_reached_test.rb +0 -50
  308. data/test/unit/path/path_with_deep_target_test.rb +0 -40
  309. data/test/unit/path/path_with_duplicates_test.rb +0 -32
  310. data/test/unit/path/path_with_encountered_transitions_test.rb +0 -34
  311. data/test/unit/path/path_with_guarded_transitions_test.rb +0 -42
  312. data/test/unit/path/path_with_reached_target_test.rb +0 -35
  313. data/test/unit/path/path_with_transitions_test.rb +0 -54
  314. data/test/unit/path/path_with_unreached_target_test.rb +0 -31
  315. data/test/unit/path/path_without_transitions_test.rb +0 -24
  316. data/test/unit/path_collection/path_collection_by_default_test.rb +0 -46
  317. data/test/unit/path_collection/path_collection_test.rb +0 -24
  318. data/test/unit/path_collection/path_collection_with_deep_paths_test.rb +0 -43
  319. data/test/unit/path_collection/path_collection_with_duplicate_nodes_test.rb +0 -31
  320. data/test/unit/path_collection/path_collection_with_from_state_test.rb +0 -27
  321. data/test/unit/path_collection/path_collection_with_paths_test.rb +0 -47
  322. data/test/unit/path_collection/path_collection_with_to_state_test.rb +0 -29
  323. data/test/unit/path_collection/path_with_guarded_paths_test.rb +0 -25
  324. data/test/unit/state/state_after_being_copied_test.rb +0 -19
  325. data/test/unit/state/state_by_default_test.rb +0 -41
  326. data/test/unit/state/state_final_test.rb +0 -28
  327. data/test/unit/state/state_initial_test.rb +0 -13
  328. data/test/unit/state/state_not_final_test.rb +0 -32
  329. data/test/unit/state/state_not_initial_test.rb +0 -13
  330. data/test/unit/state/state_test.rb +0 -44
  331. data/test/unit/state/state_with_cached_lambda_value_test.rb +0 -29
  332. data/test/unit/state/state_with_conflicting_helpers_after_definition_test.rb +0 -38
  333. data/test/unit/state/state_with_conflicting_helpers_before_definition_test.rb +0 -29
  334. data/test/unit/state/state_with_conflicting_machine_name_test.rb +0 -20
  335. data/test/unit/state/state_with_conflicting_machine_test.rb +0 -37
  336. data/test/unit/state/state_with_context_test.rb +0 -60
  337. data/test/unit/state/state_with_dynamic_human_name_test.rb +0 -25
  338. data/test/unit/state/state_with_existing_context_method_test.rb +0 -24
  339. data/test/unit/state/state_with_human_name_test.rb +0 -13
  340. data/test/unit/state/state_with_integer_value_test.rb +0 -32
  341. data/test/unit/state/state_with_invalid_method_call_test.rb +0 -21
  342. data/test/unit/state/state_with_lambda_value_test.rb +0 -37
  343. data/test/unit/state/state_with_matcher_test.rb +0 -18
  344. data/test/unit/state/state_with_multiple_contexts_test.rb +0 -57
  345. data/test/unit/state/state_with_name_test.rb +0 -43
  346. data/test/unit/state/state_with_namespace_test.rb +0 -22
  347. data/test/unit/state/state_with_nil_value_test.rb +0 -35
  348. data/test/unit/state/state_with_redefined_context_method_test.rb +0 -45
  349. data/test/unit/state/state_with_symbolic_value_test.rb +0 -32
  350. data/test/unit/state/state_with_valid_inherited_method_call_for_current_state_test.rb +0 -40
  351. data/test/unit/state/state_with_valid_method_call_for_current_state_test.rb +0 -33
  352. data/test/unit/state/state_with_valid_method_call_for_different_state_test.rb +0 -41
  353. data/test/unit/state/state_without_cached_lambda_value_test.rb +0 -25
  354. data/test/unit/state/state_without_name_test.rb +0 -39
  355. data/test/unit/state_collection/state_collection_by_default_test.rb +0 -21
  356. data/test/unit/state_collection/state_collection_string_test.rb +0 -35
  357. data/test/unit/state_collection/state_collection_test.rb +0 -74
  358. data/test/unit/state_collection/state_collection_with_custom_state_values_test.rb +0 -29
  359. data/test/unit/state_collection/state_collection_with_event_transitions_test.rb +0 -39
  360. data/test/unit/state_collection/state_collection_with_initial_state_test.rb +0 -40
  361. data/test/unit/state_collection/state_collection_with_namespace_test.rb +0 -21
  362. data/test/unit/state_collection/state_collection_with_state_behaviors_test.rb +0 -40
  363. data/test/unit/state_collection/state_collection_with_state_matchers_test.rb +0 -29
  364. data/test/unit/state_collection/state_collection_with_transition_callbacks_test.rb +0 -40
  365. data/test/unit/state_context/state_context_proxy_test.rb +0 -26
  366. data/test/unit/state_context/state_context_proxy_with_if_and_unless_conditions_test.rb +0 -42
  367. data/test/unit/state_context/state_context_proxy_with_if_condition_test.rb +0 -64
  368. data/test/unit/state_context/state_context_proxy_with_multiple_if_conditions_test.rb +0 -32
  369. data/test/unit/state_context/state_context_proxy_with_multiple_unless_conditions_test.rb +0 -32
  370. data/test/unit/state_context/state_context_proxy_with_unless_condition_test.rb +0 -64
  371. data/test/unit/state_context/state_context_proxy_without_conditions_test.rb +0 -31
  372. data/test/unit/state_context/state_context_test.rb +0 -28
  373. data/test/unit/state_context/state_context_transition_test.rb +0 -104
  374. data/test/unit/state_context/state_context_with_matching_transition_test.rb +0 -27
  375. data/test/unit/state_machine/state_machine_by_default_test.rb +0 -12
  376. data/test/unit/state_machine/state_machine_test.rb +0 -20
  377. data/test/unit/transition/transition_after_being_performed_test.rb +0 -48
  378. data/test/unit/transition/transition_after_being_persisted_test.rb +0 -46
  379. data/test/unit/transition/transition_after_being_rolled_back_test.rb +0 -35
  380. data/test/unit/transition/transition_equality_test.rb +0 -52
  381. data/test/unit/transition/transition_loopback_test.rb +0 -18
  382. data/test/unit/transition/transition_test.rb +0 -96
  383. data/test/unit/transition/transition_transient_test.rb +0 -20
  384. data/test/unit/transition/transition_with_action_test.rb +0 -27
  385. data/test/unit/transition/transition_with_after_callbacks_skipped_test.rb +0 -127
  386. data/test/unit/transition/transition_with_after_callbacks_test.rb +0 -93
  387. data/test/unit/transition/transition_with_around_callbacks_test.rb +0 -141
  388. data/test/unit/transition/transition_with_before_callbacks_skipped_test.rb +0 -30
  389. data/test/unit/transition/transition_with_before_callbacks_test.rb +0 -104
  390. data/test/unit/transition/transition_with_custom_machine_attribute_test.rb +0 -28
  391. data/test/unit/transition/transition_with_different_states_test.rb +0 -18
  392. data/test/unit/transition/transition_with_dynamic_to_value_test.rb +0 -19
  393. data/test/unit/transition/transition_with_failure_callbacks_test.rb +0 -84
  394. data/test/unit/transition/transition_with_invalid_nodes_test.rb +0 -29
  395. data/test/unit/transition/transition_with_mixed_callbacks_test.rb +0 -105
  396. data/test/unit/transition/transition_with_multiple_after_callbacks_test.rb +0 -40
  397. data/test/unit/transition/transition_with_multiple_around_callbacks_test.rb +0 -114
  398. data/test/unit/transition/transition_with_multiple_before_callbacks_test.rb +0 -40
  399. data/test/unit/transition/transition_with_multiple_failure_callbacks_test.rb +0 -40
  400. data/test/unit/transition/transition_with_namespace_test.rb +0 -47
  401. data/test/unit/transition/transition_with_perform_arguments_test.rb +0 -35
  402. data/test/unit/transition/transition_with_transactions_test.rb +0 -42
  403. data/test/unit/transition/transition_without_callbacks_test.rb +0 -33
  404. data/test/unit/transition/transition_without_reading_state_test.rb +0 -22
  405. data/test/unit/transition/transition_without_running_action_test.rb +0 -47
  406. data/test/unit/transition_collection/attribute_transition_collection_by_default_test.rb +0 -23
  407. data/test/unit/transition_collection/attribute_transition_collection_marshalling_test.rb +0 -64
  408. data/test/unit/transition_collection/attribute_transition_collection_with_action_error_test.rb +0 -44
  409. data/test/unit/transition_collection/attribute_transition_collection_with_action_failed_test.rb +0 -44
  410. data/test/unit/transition_collection/attribute_transition_collection_with_after_callback_error_test.rb +0 -32
  411. data/test/unit/transition_collection/attribute_transition_collection_with_after_callback_halt_test.rb +0 -33
  412. data/test/unit/transition_collection/attribute_transition_collection_with_around_after_yield_callback_error_test.rb +0 -32
  413. data/test/unit/transition_collection/attribute_transition_collection_with_around_callback_after_yield_error_test.rb +0 -32
  414. data/test/unit/transition_collection/attribute_transition_collection_with_around_callback_after_yield_halt_test.rb +0 -33
  415. data/test/unit/transition_collection/attribute_transition_collection_with_around_callback_before_yield_halt_test.rb +0 -33
  416. data/test/unit/transition_collection/attribute_transition_collection_with_before_callback_error_test.rb +0 -32
  417. data/test/unit/transition_collection/attribute_transition_collection_with_before_callback_halt_test.rb +0 -33
  418. data/test/unit/transition_collection/attribute_transition_collection_with_callbacks_test.rb +0 -68
  419. data/test/unit/transition_collection/attribute_transition_collection_with_event_transitions_test.rb +0 -41
  420. data/test/unit/transition_collection/attribute_transition_collection_with_events_test.rb +0 -44
  421. data/test/unit/transition_collection/attribute_transition_collection_with_skipped_after_callbacks_test.rb +0 -42
  422. data/test/unit/transition_collection/transition_collection_by_default_test.rb +0 -23
  423. data/test/unit/transition_collection/transition_collection_empty_with_block_test.rb +0 -23
  424. data/test/unit/transition_collection/transition_collection_empty_without_block_test.rb +0 -12
  425. data/test/unit/transition_collection/transition_collection_invalid_test.rb +0 -21
  426. data/test/unit/transition_collection/transition_collection_partial_invalid_test.rb +0 -69
  427. data/test/unit/transition_collection/transition_collection_test.rb +0 -26
  428. data/test/unit/transition_collection/transition_collection_valid_test.rb +0 -57
  429. data/test/unit/transition_collection/transition_collection_with_action_error_test.rb +0 -66
  430. data/test/unit/transition_collection/transition_collection_with_action_failed_test.rb +0 -60
  431. data/test/unit/transition_collection/transition_collection_with_action_hook_and_block_test.rb +0 -17
  432. data/test/unit/transition_collection/transition_collection_with_action_hook_and_skipped_action_test.rb +0 -17
  433. data/test/unit/transition_collection/transition_collection_with_action_hook_and_skipped_after_callbacks_test.rb +0 -37
  434. data/test/unit/transition_collection/transition_collection_with_action_hook_base_test.rb +0 -34
  435. data/test/unit/transition_collection/transition_collection_with_action_hook_error_test.rb +0 -29
  436. data/test/unit/transition_collection/transition_collection_with_action_hook_invalid_test.rb +0 -17
  437. data/test/unit/transition_collection/transition_collection_with_action_hook_multiple_test.rb +0 -79
  438. data/test/unit/transition_collection/transition_collection_with_action_hook_test.rb +0 -45
  439. data/test/unit/transition_collection/transition_collection_with_action_hook_with_different_actions_test.rb +0 -48
  440. data/test/unit/transition_collection/transition_collection_with_action_hook_with_nil_action_test.rb +0 -42
  441. data/test/unit/transition_collection/transition_collection_with_after_callback_halt_test.rb +0 -51
  442. data/test/unit/transition_collection/transition_collection_with_before_callback_halt_test.rb +0 -47
  443. data/test/unit/transition_collection/transition_collection_with_block_test.rb +0 -46
  444. data/test/unit/transition_collection/transition_collection_with_callbacks_test.rb +0 -135
  445. data/test/unit/transition_collection/transition_collection_with_different_actions_test.rb +0 -189
  446. data/test/unit/transition_collection/transition_collection_with_duplicate_actions_test.rb +0 -48
  447. data/test/unit/transition_collection/transition_collection_with_empty_actions_test.rb +0 -41
  448. data/test/unit/transition_collection/transition_collection_with_mixed_actions_test.rb +0 -41
  449. data/test/unit/transition_collection/transition_collection_with_skipped_actions_and_block_test.rb +0 -34
  450. data/test/unit/transition_collection/transition_collection_with_skipped_actions_test.rb +0 -69
  451. data/test/unit/transition_collection/transition_collection_with_skipped_after_callbacks_and_around_callbacks_test.rb +0 -53
  452. data/test/unit/transition_collection/transition_collection_with_skipped_after_callbacks_test.rb +0 -34
  453. data/test/unit/transition_collection/transition_collection_with_transactions_test.rb +0 -65
  454. data/test/unit/transition_collection/transition_collection_without_transactions_test.rb +0 -29
@@ -1,80 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class MachineCollectionFireTest < StateMachinesTest
4
- def setup
5
- @machines = StateMachines::MachineCollection.new
6
-
7
- @klass = Class.new do
8
- attr_reader :saved
9
-
10
- def save
11
- @saved = true
12
- end
13
- end
14
-
15
- # First machine
16
- @machines[:state] = @state = StateMachines::Machine.new(@klass, :state, initial: :parked, action: :save)
17
- @state.event :ignite do
18
- transition parked: :idling
19
- end
20
- @state.event :park do
21
- transition idling: :parked
22
- end
23
-
24
- # Second machine
25
- @machines[:alarm_state] = @alarm_state = StateMachines::Machine.new(@klass, :alarm_state, initial: :active, action: :save, namespace: 'alarm')
26
- @alarm_state.event :enable do
27
- transition off: :active
28
- end
29
- @alarm_state.event :disable do
30
- transition active: :off
31
- end
32
-
33
- @object = @klass.new
34
- end
35
-
36
- def test_should_raise_exception_if_invalid_event_specified
37
- exception = assert_raises(StateMachines::InvalidEvent) { @machines.fire_events(@object, :invalid) }
38
- assert_equal :invalid, exception.event
39
-
40
- exception = assert_raises(StateMachines::InvalidEvent) { @machines.fire_events(@object, :ignite, :invalid) }
41
- assert_equal :invalid, exception.event
42
- end
43
-
44
- def test_should_fail_if_any_event_cannot_transition
45
- refute @machines.fire_events(@object, :park, :disable_alarm)
46
- assert_equal 'parked', @object.state
47
- assert_equal 'active', @object.alarm_state
48
- refute @object.saved
49
-
50
- refute @machines.fire_events(@object, :ignite, :enable_alarm)
51
- assert_equal 'parked', @object.state
52
- assert_equal 'active', @object.alarm_state
53
- refute @object.saved
54
- end
55
-
56
- def test_should_run_failure_callbacks_if_any_event_cannot_transition
57
- @state_failure_run = @alarm_state_failure_run = false
58
-
59
- @machines[:state].after_failure { @state_failure_run = true }
60
- @machines[:alarm_state].after_failure { @alarm_state_failure_run = true }
61
-
62
- refute @machines.fire_events(@object, :park, :disable_alarm)
63
- assert @state_failure_run
64
- refute @alarm_state_failure_run
65
- end
66
-
67
- def test_should_be_successful_if_all_events_transition
68
- assert @machines.fire_events(@object, :ignite, :disable_alarm)
69
- assert_equal 'idling', @object.state
70
- assert_equal 'off', @object.alarm_state
71
- assert @object.saved
72
- end
73
-
74
- def test_should_not_save_if_skipping_action
75
- assert @machines.fire_events(@object, :ignite, :disable_alarm, false)
76
- assert_equal 'idling', @object.state
77
- assert_equal 'off', @object.alarm_state
78
- refute @object.saved
79
- end
80
- end
@@ -1,54 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class MachineCollectionFireAttributesWithValidationsTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new do
6
- attr_accessor :errors
7
-
8
- def initialize
9
- @errors = []
10
- super
11
- end
12
- end
13
-
14
- @machines = StateMachines::MachineCollection.new
15
- @machines[:state] = @machine = StateMachines::Machine.new(@klass, :state, initial: :parked, action: :save)
16
- @machine.event :ignite do
17
- transition parked: :idling
18
- end
19
-
20
- class << @machine
21
- def invalidate(object, _attribute, message, values = [])
22
- (object.errors ||= []) << generate_message(message, values)
23
- end
24
-
25
- def reset(object)
26
- object.errors = []
27
- end
28
- end
29
-
30
- @object = @klass.new
31
- end
32
-
33
- def test_should_invalidate_if_event_is_invalid
34
- @object.state_event = 'invalid'
35
- @machines.transitions(@object, :save)
36
-
37
- refute @object.errors.empty?
38
- end
39
-
40
- def test_should_invalidate_if_no_transition_exists
41
- @object.state = 'idling'
42
- @object.state_event = 'ignite'
43
- @machines.transitions(@object, :save)
44
-
45
- refute @object.errors.empty?
46
- end
47
-
48
- def test_should_not_invalidate_if_transition_exists
49
- @object.state_event = 'ignite'
50
- @machines.transitions(@object, :save)
51
-
52
- assert @object.errors.empty?
53
- end
54
- end
@@ -1,76 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- module MachineCollectionFireWithValidationsIntegration
4
- include StateMachines::Integrations::Base
5
-
6
- def self.integration_name
7
- :custom_validation
8
- end
9
-
10
- def invalidate(object, _attribute, message, values = [])
11
- (object.errors ||= []) << generate_message(message, values)
12
- end
13
-
14
- def reset(object)
15
- object.errors = []
16
- end
17
- end
18
-
19
- class MachineCollectionFireWithValidationsTest < StateMachinesTest
20
- def setup
21
- StateMachines::Integrations.reset
22
- StateMachines::Integrations.register(MachineCollectionFireWithValidationsIntegration)
23
-
24
- @klass = Class.new do
25
- attr_accessor :errors
26
-
27
- def initialize
28
- @errors = []
29
- super
30
- end
31
- end
32
-
33
- @machines = StateMachines::MachineCollection.new
34
- @machines[:state] = @state = StateMachines::Machine.new(@klass, :state, initial: :parked, integration: :custom_validation)
35
- @state.event :ignite do
36
- transition parked: :idling
37
- end
38
-
39
- @machines[:alarm_state] = @alarm_state = StateMachines::Machine.new(@klass, :alarm_state, initial: :active, namespace: 'alarm', integration: :custom_validation)
40
- @alarm_state.event :disable do
41
- transition active: :off
42
- end
43
-
44
- @object = @klass.new
45
- end
46
-
47
- def test_should_not_invalidate_if_transitions_exist
48
- assert @machines.fire_events(@object, :ignite, :disable_alarm)
49
- assert_equal [], @object.errors
50
- end
51
-
52
- def test_should_invalidate_if_no_transitions_exist
53
- @object.state = 'idling'
54
- @object.alarm_state = 'off'
55
-
56
- refute @machines.fire_events(@object, :ignite, :disable_alarm)
57
- assert_equal ['cannot transition via "ignite"', 'cannot transition via "disable"'], @object.errors
58
- end
59
-
60
- def test_should_run_failure_callbacks_if_no_transitions_exist
61
- @object.state = 'idling'
62
- @object.alarm_state = 'off'
63
- @state_failure_run = @alarm_state_failure_run = false
64
-
65
- @machines[:state].after_failure { @state_failure_run = true }
66
- @machines[:alarm_state].after_failure { @alarm_state_failure_run = true }
67
-
68
- refute @machines.fire_events(@object, :ignite, :disable_alarm)
69
- assert @state_failure_run
70
- assert @alarm_state_failure_run
71
- end
72
-
73
- def teardown
74
- StateMachines::Integrations.reset
75
- end
76
- end
@@ -1,111 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class MachineCollectionStateInitializationTest < StateMachinesTest
4
- def setup
5
- @machines = StateMachines::MachineCollection.new
6
-
7
- @klass = Class.new
8
-
9
- @machines[:state] = StateMachines::Machine.new(@klass, :state, initial: :parked)
10
- @machines[:alarm_state] = StateMachines::Machine.new(@klass, :alarm_state, initial: ->(_object) { :active })
11
- @machines[:alarm_state].state :active, value: -> { 'active' }
12
-
13
- # Prevent the auto-initialization hook from firing
14
- @klass.class_eval do
15
- def initialize
16
- end
17
- end
18
-
19
- @object = @klass.new
20
- @object.state = nil
21
- @object.alarm_state = nil
22
- end
23
-
24
- def test_should_raise_exception_if_invalid_option_specified
25
- assert_raises(ArgumentError) { @machines.initialize_states(@object, invalid: true) }
26
- end
27
-
28
- def test_should_initialize_static_states_after_block
29
- @machines.initialize_states(@object) do
30
- @state_in_block = @object.state
31
- @alarm_state_in_block = @object.alarm_state
32
- end
33
-
34
- assert_nil @state_in_block
35
- assert_nil @alarm_state_in_block
36
- end
37
-
38
- def test_should_initialize_dynamic_states_after_block
39
- @machines.initialize_states(@object) do
40
- @alarm_state_in_block = @object.alarm_state
41
- end
42
-
43
- assert_nil @alarm_state_in_block
44
- assert_equal 'active', @object.alarm_state
45
- end
46
-
47
- def test_should_initialize_all_states_without_block
48
- @machines.initialize_states(@object)
49
-
50
- assert_equal 'parked', @object.state
51
- assert_equal 'active', @object.alarm_state
52
- end
53
-
54
- def test_should_skip_static_states_if_disabled
55
- @machines.initialize_states(@object, static: false)
56
- assert_nil @object.state
57
- assert_equal 'active', @object.alarm_state
58
- end
59
-
60
- def test_should_initialize_existing_static_states_by_default
61
- @object.state = 'idling'
62
- @machines.initialize_states(@object)
63
- assert_equal 'parked', @object.state
64
- end
65
-
66
- def test_should_initialize_existing_static_states_if_forced
67
- @object.state = 'idling'
68
- @machines.initialize_states(@object, static: :force)
69
- assert_equal 'parked', @object.state
70
- end
71
-
72
- def test_should_initialize_existing_static_states_if_not_forced
73
- @object.state = 'idling'
74
- @machines.initialize_states(@object, static: true)
75
- assert_equal 'parked', @object.state
76
- end
77
-
78
- def test_should_skip_dynamic_states_if_disabled
79
- @machines.initialize_states(@object, dynamic: false)
80
- assert_equal 'parked', @object.state
81
- assert_nil @object.alarm_state
82
- end
83
-
84
- def test_should_not_initialize_existing_dynamic_states_by_default
85
- @object.alarm_state = 'inactive'
86
- @machines.initialize_states(@object)
87
- assert_equal 'inactive', @object.alarm_state
88
- end
89
-
90
- def test_should_initialize_existing_dynamic_states_if_forced
91
- @object.alarm_state = 'inactive'
92
- @machines.initialize_states(@object, dynamic: :force)
93
- assert_equal 'active', @object.alarm_state
94
- end
95
-
96
- def test_should_not_initialize_existing_dynamic_states_if_not_forced
97
- @object.alarm_state = 'inactive'
98
- @machines.initialize_states(@object, dynamic: true)
99
- assert_equal 'inactive', @object.alarm_state
100
- end
101
-
102
- def test_shouldnt_force_state_given_either_as_string_or_symbol
103
- @object.state = 'notparked'
104
-
105
- @machines.initialize_states(@object, {}, { state: "parked" })
106
- assert_equal 'notparked', @object.state
107
-
108
- @machines.initialize_states(@object, {}, { "state" => "parked" })
109
- assert_equal 'notparked', @object.state
110
- end
111
- end
@@ -1,25 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class MachineCollectionTransitionsWithBlankEventsTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
-
7
- @machines = StateMachines::MachineCollection.new
8
- @machines[:state] = @machine = StateMachines::Machine.new(@klass, :state, initial: :parked, action: :save)
9
- @machine.event :ignite do
10
- transition parked: :idling
11
- end
12
-
13
- @object = @klass.new
14
- @object.state_event = ''
15
- @transitions = @machines.transitions(@object, :save)
16
- end
17
-
18
- def test_should_be_empty
19
- assert @transitions.empty?
20
- end
21
-
22
- def test_should_perform
23
- assert_equal true, @transitions.perform
24
- end
25
- end
@@ -1,20 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class MachineCollectionTransitionsWithCustomOptionsTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
-
7
- @machines = StateMachines::MachineCollection.new
8
- @machines[:state] = @machine = StateMachines::Machine.new(@klass, :state, initial: :parked, action: :save)
9
- @machine.event :ignite do
10
- transition parked: :idling
11
- end
12
-
13
- @object = @klass.new
14
- @transitions = @machines.transitions(@object, :save, after: false)
15
- end
16
-
17
- def test_should_use_custom_options
18
- assert @transitions.skip_after
19
- end
20
- end
@@ -1,26 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class MachineCollectionTransitionsWithDifferentActionsTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
-
7
- @machines = StateMachines::MachineCollection.new
8
- @machines[:state] = @state = StateMachines::Machine.new(@klass, :state, initial: :parked, action: :save)
9
- @state.event :ignite do
10
- transition parked: :idling
11
- end
12
- @machines[:status] = @status = StateMachines::Machine.new(@klass, :status, initial: :first_gear, action: :persist)
13
- @status.event :shift_up do
14
- transition first_gear: :second_gear
15
- end
16
-
17
- @object = @klass.new
18
- @object.state_event = 'ignite'
19
- @object.status_event = 'shift_up'
20
- @transitions = @machines.transitions(@object, :save)
21
- end
22
-
23
- def test_should_only_select_matching_actions
24
- assert_equal 1, @transitions.length
25
- end
26
- end
@@ -1,25 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class MachineCollectionTransitionsWithExisitingTransitionsTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
-
7
- @machines = StateMachines::MachineCollection.new
8
- @machines[:state] = @machine = StateMachines::Machine.new(@klass, :state, initial: :parked, action: :save)
9
- @machine.event :ignite do
10
- transition parked: :idling
11
- end
12
-
13
- @object = @klass.new
14
- @object.send(:state_event_transition=, StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling))
15
- @transitions = @machines.transitions(@object, :save)
16
- end
17
-
18
- def test_should_not_be_empty
19
- assert_equal 1, @transitions.length
20
- end
21
-
22
- def test_should_perform
23
- assert_equal true, @transitions.perform
24
- end
25
- end
@@ -1,25 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class MachineCollectionTransitionsWithInvalidEventsTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
-
7
- @machines = StateMachines::MachineCollection.new
8
- @machines[:state] = @machine = StateMachines::Machine.new(@klass, :state, initial: :parked, action: :save)
9
- @machine.event :ignite do
10
- transition parked: :idling
11
- end
12
-
13
- @object = @klass.new
14
- @object.state_event = 'invalid'
15
- @transitions = @machines.transitions(@object, :save)
16
- end
17
-
18
- def test_should_be_empty
19
- assert @transitions.empty?
20
- end
21
-
22
- def test_should_not_perform
23
- assert_equal false, @transitions.perform
24
- end
25
- end
@@ -1,31 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class MachineCollectionTransitionsWithSameActionsTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
-
7
- @machines = StateMachines::MachineCollection.new
8
- @machines[:state] = @machine = StateMachines::Machine.new(@klass, :state, initial: :parked, action: :save)
9
- @machine.event :ignite do
10
- transition parked: :idling
11
- end
12
- @machines[:status] = @machine = StateMachines::Machine.new(@klass, :status, initial: :first_gear, action: :save)
13
- @machine.event :shift_up do
14
- transition first_gear: :second_gear
15
- end
16
-
17
- @object = @klass.new
18
- @object.state_event = 'ignite'
19
- @object.status_event = 'shift_up'
20
- @transitions = @machines.transitions(@object, :save)
21
- end
22
-
23
- def test_should_not_be_empty
24
- assert_equal 2, @transitions.length
25
- end
26
-
27
- def test_should_perform
28
- assert_equal true, @transitions.perform
29
- end
30
- end
31
-
@@ -1,26 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class MachineCollectionTransitionsWithTransitionTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
-
7
- @machines = StateMachines::MachineCollection.new
8
- @machines[:state] = @machine = StateMachines::Machine.new(@klass, :state, initial: :parked, action: :save)
9
- @machine.event :ignite do
10
- transition parked: :idling
11
- end
12
-
13
- @object = @klass.new
14
- @object.state_event = 'ignite'
15
- @transitions = @machines.transitions(@object, :save)
16
- end
17
-
18
- def test_should_not_be_empty
19
- assert_equal 1, @transitions.length
20
- end
21
-
22
- def test_should_perform
23
- assert_equal true, @transitions.perform
24
- end
25
- end
26
-
@@ -1,25 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class MachineCollectionTransitionsWithoutEventsTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
-
7
- @machines = StateMachines::MachineCollection.new
8
- @machines[:state] = @machine = StateMachines::Machine.new(@klass, :state, initial: :parked, action: :save)
9
- @machine.event :ignite do
10
- transition parked: :idling
11
- end
12
-
13
- @object = @klass.new
14
- @object.state_event = nil
15
- @transitions = @machines.transitions(@object, :save)
16
- end
17
-
18
- def test_should_be_empty
19
- assert @transitions.empty?
20
- end
21
-
22
- def test_should_perform
23
- assert_equal true, @transitions.perform
24
- end
25
- end
@@ -1,27 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class MachineCollectionTransitionsWithoutTransitionTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
-
7
- @machines = StateMachines::MachineCollection.new
8
- @machines[:state] = @machine = StateMachines::Machine.new(@klass, :state, initial: :parked, action: :save)
9
- @machine.event :ignite do
10
- transition parked: :idling
11
- end
12
-
13
- @object = @klass.new
14
- @object.state = 'idling'
15
- @object.state_event = 'ignite'
16
- @transitions = @machines.transitions(@object, :save)
17
- end
18
-
19
- def test_should_be_empty
20
- assert @transitions.empty?
21
- end
22
-
23
- def test_should_not_perform
24
- assert_equal false, @transitions.perform
25
- end
26
- end
27
-
@@ -1,29 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class AllMatcherTest < StateMachinesTest
4
- def setup
5
- @matcher = StateMachines::AllMatcher.instance
6
- end
7
-
8
- def test_should_have_no_values
9
- assert_equal [], @matcher.values
10
- end
11
-
12
- def test_should_always_match
13
- [nil, :parked, :idling].each { |value| assert @matcher.matches?(value) }
14
- end
15
-
16
- def test_should_not_filter_any_values
17
- assert_equal [:parked, :idling], @matcher.filter([:parked, :idling])
18
- end
19
-
20
- def test_should_generate_blacklist_matcher_after_subtraction
21
- matcher = @matcher - [:parked, :idling]
22
- assert_instance_of StateMachines::BlacklistMatcher, matcher
23
- assert_equal [:parked, :idling], matcher.values
24
- end
25
-
26
- def test_should_have_a_description
27
- assert_equal 'all', @matcher.description
28
- end
29
- end
@@ -1,30 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BlacklistMatcherTest < StateMachinesTest
4
- def setup
5
- @matcher = StateMachines::BlacklistMatcher.new([:parked, :idling])
6
- end
7
-
8
- def test_should_have_values
9
- assert_equal [:parked, :idling], @matcher.values
10
- end
11
-
12
- def test_should_filter_known_values
13
- assert_equal [:first_gear], @matcher.filter([:parked, :idling, :first_gear])
14
- end
15
-
16
- def test_should_match_unknown_values
17
- assert @matcher.matches?(:first_gear)
18
- end
19
-
20
- def test_should_not_match_known_values
21
- refute @matcher.matches?(:parked)
22
- end
23
-
24
- def test_should_have_a_description
25
- assert_equal 'all - [:parked, :idling]', @matcher.description
26
-
27
- matcher = StateMachines::BlacklistMatcher.new([:parked])
28
- assert_equal 'all - :parked', matcher.description
29
- end
30
- end
@@ -1,27 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class LoopbackMatcherTest < StateMachinesTest
4
- def setup
5
- @matcher = StateMachines::LoopbackMatcher.instance
6
- end
7
-
8
- def test_should_have_no_values
9
- assert_equal [], @matcher.values
10
- end
11
-
12
- def test_should_filter_all_values
13
- assert_equal [], @matcher.filter([:parked, :idling])
14
- end
15
-
16
- def test_should_match_if_from_context_is_same
17
- assert @matcher.matches?(:parked, from: :parked)
18
- end
19
-
20
- def test_should_not_match_if_from_context_is_different
21
- refute @matcher.matches?(:parked, from: :idling)
22
- end
23
-
24
- def test_should_have_a_description
25
- assert_equal 'same', @matcher.description
26
- end
27
- end
@@ -1,15 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class MatcherByDefaultTest < StateMachinesTest
4
- def setup
5
- @matcher = StateMachines::Matcher.new
6
- end
7
-
8
- def test_should_have_no_values
9
- assert_equal [], @matcher.values
10
- end
11
-
12
- def test_should_filter_all_values
13
- assert_equal [], @matcher.filter([:parked, :idling])
14
- end
15
- end
@@ -1,15 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class MatcherWithMultipleValuesTest < StateMachinesTest
4
- def setup
5
- @matcher = StateMachines::Matcher.new([:parked, :idling])
6
- end
7
-
8
- def test_should_have_values
9
- assert_equal [:parked, :idling], @matcher.values
10
- end
11
-
12
- def test_should_filter_unknown_values
13
- assert_equal [:parked], @matcher.filter([:parked, :first_gear])
14
- end
15
- end