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,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
@@ -1,15 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class MatcherWithValueTest < StateMachinesTest
4
- def setup
5
- @matcher = StateMachines::Matcher.new(nil)
6
- end
7
-
8
- def test_should_have_values
9
- assert_equal [nil], @matcher.values
10
- end
11
-
12
- def test_should_filter_unknown_values
13
- assert_equal [nil], @matcher.filter([nil, :parked])
14
- end
15
- end
@@ -1,30 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class WhitelistMatcherTest < StateMachinesTest
4
- def setup
5
- @matcher = StateMachines::WhitelistMatcher.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, :idling], @matcher.filter([:parked, :idling, :first_gear])
14
- end
15
-
16
- def test_should_match_known_values
17
- assert @matcher.matches?(:parked)
18
- end
19
-
20
- def test_should_not_match_unknown_values
21
- refute @matcher.matches?(:first_gear)
22
- end
23
-
24
- def test_should_have_a_description
25
- assert_equal '[:parked, :idling]', @matcher.description
26
-
27
- matcher = StateMachines::WhitelistMatcher.new([:parked])
28
- assert_equal ':parked', matcher.description
29
- end
30
- end
@@ -1,14 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class MatcherHelpersAllTest < StateMachinesTest
4
- include StateMachines::MatcherHelpers
5
-
6
- def setup
7
- @matcher = all
8
- end
9
-
10
- def test_should_build_an_all_matcher
11
- assert_equal StateMachines::AllMatcher.instance, @matcher
12
- end
13
- end
14
-
@@ -1,14 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class MatcherHelpersAnyTest < StateMachinesTest
4
- include StateMachines::MatcherHelpers
5
-
6
- def setup
7
- @matcher = any
8
- end
9
-
10
- def test_should_build_an_all_matcher
11
- assert_equal StateMachines::AllMatcher.instance, @matcher
12
- end
13
- end
14
-
@@ -1,13 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class MatcherHelpersSameTest < StateMachinesTest
4
- include StateMachines::MatcherHelpers
5
-
6
- def setup
7
- @matcher = same
8
- end
9
-
10
- def test_should_build_a_loopback_matcher
11
- assert_equal StateMachines::LoopbackMatcher.instance, @matcher
12
- end
13
- end