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,34 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathWithEncounteredTransitionsTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.state :parked, :idling, :first_gear
8
- @machine.event :ignite do
9
- transition parked: :idling
10
- end
11
- @machine.event :park do
12
- transition idling: :parked
13
- end
14
-
15
- @object = @klass.new
16
- @object.state = 'parked'
17
-
18
- @path = StateMachines::Path.new(@object, @machine)
19
- @path.concat([
20
- @ignite_transition = StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling),
21
- @park_transition = StateMachines::Transition.new(@object, @machine, :park, :idling, :parked)
22
- ])
23
- end
24
-
25
- def test_should_be_complete
26
- assert_equal true, @path.complete?
27
- end
28
-
29
- def test_should_not_be_able_to_walk
30
- walked = false
31
- @path.walk { walked = true }
32
- assert_equal false, walked
33
- end
34
- end
@@ -1,42 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathWithGuardedTransitionsTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.state :parked, :idling
8
- @machine.event :ignite
9
- @machine.event :shift_up do
10
- transition idling: :first_gear, if: lambda { false }
11
- end
12
-
13
- @object = @klass.new
14
- @object.state = 'parked'
15
- end
16
-
17
- def test_should_not_walk_transitions_if_guard_enabled
18
- path = StateMachines::Path.new(@object, @machine)
19
- path.concat([
20
- StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling)
21
- ])
22
-
23
- paths = []
24
- path.walk { |next_path| paths << next_path }
25
-
26
- assert_equal [], paths
27
- end
28
-
29
- def test_should_not_walk_transitions_if_guard_disabled
30
- path = StateMachines::Path.new(@object, @machine, guard: false)
31
- path.concat([
32
- ignite_transition = StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling)
33
- ])
34
-
35
- paths = []
36
- path.walk { |next_path| paths << next_path }
37
-
38
- assert_equal [
39
- [ignite_transition, StateMachines::Transition.new(@object, @machine, :shift_up, :idling, :first_gear)]
40
- ], paths
41
- end
42
- end
@@ -1,35 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathWithReachedTargetTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.state :parked, :idling
8
- @machine.event :ignite do
9
- transition parked: :idling
10
- end
11
- @machine.event :park do
12
- transition idling: :parked
13
- end
14
-
15
- @object = @klass.new
16
- @object.state = 'parked'
17
-
18
- @path = StateMachines::Path.new(@object, @machine, target: :parked)
19
- @path.concat([
20
- @ignite_transition = StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling),
21
- @park_transition = StateMachines::Transition.new(@object, @machine, :park, :idling, :parked)
22
- ])
23
- end
24
-
25
- def test_should_be_complete
26
- assert_equal true, @path.complete?
27
- end
28
-
29
- def test_should_not_be_able_to_walk
30
- walked = false
31
- @path.walk { walked = true }
32
- assert_equal false, walked
33
- end
34
- end
35
-
@@ -1,54 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathWithTransitionsTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.state :parked, :idling, :first_gear
8
- @machine.event :ignite, :shift_up
9
-
10
- @object = @klass.new
11
- @object.state = 'parked'
12
-
13
- @path = StateMachines::Path.new(@object, @machine)
14
- @path.concat([
15
- @ignite_transition = StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling),
16
- @shift_up_transition = StateMachines::Transition.new(@object, @machine, :shift_up, :idling, :first_gear)
17
- ])
18
- end
19
-
20
- def test_should_enumerate_transitions
21
- assert_equal [@ignite_transition, @shift_up_transition], @path
22
- end
23
-
24
- def test_should_have_a_from_name
25
- assert_equal :parked, @path.from_name
26
- end
27
-
28
- def test_should_have_from_states
29
- assert_equal [:parked, :idling], @path.from_states
30
- end
31
-
32
- def test_should_have_a_to_name
33
- assert_equal :first_gear, @path.to_name
34
- end
35
-
36
- def test_should_have_to_states
37
- assert_equal [:idling, :first_gear], @path.to_states
38
- end
39
-
40
- def test_should_have_events
41
- assert_equal [:ignite, :shift_up], @path.events
42
- end
43
-
44
- def test_should_not_be_able_to_walk_anywhere
45
- walked = false
46
- @path.walk { walked = true }
47
- assert_equal false, walked
48
- end
49
-
50
- def test_should_be_complete
51
- assert_equal true, @path.complete?
52
- end
53
- end
54
-
@@ -1,31 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathWithUnreachedTargetTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.state :parked, :idling
8
- @machine.event :ignite do
9
- transition parked: :idling
10
- end
11
-
12
- @object = @klass.new
13
- @object.state = 'parked'
14
-
15
- @path = StateMachines::Path.new(@object, @machine, target: :parked)
16
- @path.concat([
17
- @ignite_transition = StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling)
18
- ])
19
- end
20
-
21
- def test_should_not_be_complete
22
- assert_equal false, @path.complete?
23
- end
24
-
25
- def test_should_not_be_able_to_walk
26
- walked = false
27
- @path.walk { walked = true }
28
- assert_equal false, walked
29
- end
30
- end
31
-
@@ -1,24 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathWithoutTransitionsTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.state :parked, :idling
8
- @machine.event :ignite
9
-
10
- @object = @klass.new
11
-
12
- @path = StateMachines::Path.new(@object, @machine)
13
- @path.concat([
14
- @ignite_transition = StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling)
15
- ])
16
- end
17
-
18
- def test_should_not_be_able_to_walk_anywhere
19
- walked = false
20
- @path.walk { walked = true }
21
- assert_equal false, walked
22
- end
23
- end
24
-
@@ -1,46 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathCollectionByDefaultTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.state :parked
8
-
9
- @object = @klass.new
10
- @object.state = 'parked'
11
-
12
- @paths = StateMachines::PathCollection.new(@object, @machine)
13
- end
14
-
15
- def test_should_have_an_object
16
- assert_equal @object, @paths.object
17
- end
18
-
19
- def test_should_have_a_machine
20
- assert_equal @machine, @paths.machine
21
- end
22
-
23
- def test_should_have_a_from_name
24
- assert_equal :parked, @paths.from_name
25
- end
26
-
27
- def test_should_not_have_a_to_name
28
- assert_nil @paths.to_name
29
- end
30
-
31
- def test_should_have_no_from_states
32
- assert_equal [], @paths.from_states
33
- end
34
-
35
- def test_should_have_no_to_states
36
- assert_equal [], @paths.to_states
37
- end
38
-
39
- def test_should_have_no_events
40
- assert_equal [], @paths.events
41
- end
42
-
43
- def test_should_have_no_paths
44
- assert @paths.empty?
45
- end
46
- end
@@ -1,24 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathCollectionTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @object = @klass.new
8
- end
9
-
10
- def test_should_raise_exception_if_invalid_option_specified
11
- exception = assert_raises(ArgumentError) { StateMachines::PathCollection.new(@object, @machine, invalid: true) }
12
- assert_equal 'Unknown key: :invalid. Valid keys are: :from, :to, :deep, :guard', exception.message
13
- end
14
-
15
- def test_should_raise_exception_if_invalid_from_state_specified
16
- exception = assert_raises(IndexError) { StateMachines::PathCollection.new(@object, @machine, from: :invalid) }
17
- assert_equal ':invalid is an invalid name', exception.message
18
- end
19
-
20
- def test_should_raise_exception_if_invalid_to_state_specified
21
- exception = assert_raises(IndexError) { StateMachines::PathCollection.new(@object, @machine, to: :invalid) }
22
- assert_equal ':invalid is an invalid name', exception.message
23
- end
24
- end
@@ -1,43 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathCollectionWithDeepPathsTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.state :parked, :idling
8
- @machine.event :ignite do
9
- transition parked: :idling
10
- end
11
- @machine.event :shift_up do
12
- transition parked: :idling, idling: :first_gear
13
- end
14
- @machine.event :shift_down do
15
- transition first_gear: :idling
16
- end
17
- @object = @klass.new
18
- @object.state = 'parked'
19
-
20
- @paths = StateMachines::PathCollection.new(@object, @machine, to: :idling, deep: true)
21
- end
22
-
23
- def test_should_allow_target_to_be_reached_more_than_once_per_path
24
- assert_equal [
25
- [
26
- StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling)
27
- ],
28
- [
29
- StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling),
30
- StateMachines::Transition.new(@object, @machine, :shift_up, :idling, :first_gear),
31
- StateMachines::Transition.new(@object, @machine, :shift_down, :first_gear, :idling)
32
- ],
33
- [
34
- StateMachines::Transition.new(@object, @machine, :shift_up, :parked, :idling)
35
- ],
36
- [
37
- StateMachines::Transition.new(@object, @machine, :shift_up, :parked, :idling),
38
- StateMachines::Transition.new(@object, @machine, :shift_up, :idling, :first_gear),
39
- StateMachines::Transition.new(@object, @machine, :shift_down, :first_gear, :idling)
40
- ]
41
- ], @paths
42
- end
43
- end
@@ -1,31 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathCollectionWithDuplicateNodesTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.state :parked, :idling
8
- @machine.event :shift_up do
9
- transition parked: :idling, idling: :first_gear
10
- end
11
- @machine.event :park do
12
- transition first_gear: :idling
13
- end
14
- @object = @klass.new
15
- @object.state = 'parked'
16
-
17
- @paths = StateMachines::PathCollection.new(@object, @machine)
18
- end
19
-
20
- def test_should_not_include_duplicates_in_from_states
21
- assert_equal [:parked, :idling, :first_gear], @paths.from_states
22
- end
23
-
24
- def test_should_not_include_duplicates_in_to_states
25
- assert_equal [:idling, :first_gear], @paths.to_states
26
- end
27
-
28
- def test_should_not_include_duplicates_in_events
29
- assert_equal [:shift_up, :park], @paths.events
30
- end
31
- end
@@ -1,27 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathCollectionWithFromStateTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.state :parked, :idling, :first_gear
8
- @machine.event :park do
9
- transition idling: :parked
10
- end
11
-
12
- @object = @klass.new
13
- @object.state = 'parked'
14
-
15
- @paths = StateMachines::PathCollection.new(@object, @machine, from: :idling)
16
- end
17
-
18
- def test_should_generate_paths_from_custom_from_state
19
- assert_equal [[
20
- StateMachines::Transition.new(@object, @machine, :park, :idling, :parked)
21
- ]], @paths
22
- end
23
-
24
- def test_should_have_a_from_name
25
- assert_equal :idling, @paths.from_name
26
- end
27
- end
@@ -1,47 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathCollectionWithPathsTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.state :parked, :idling, :first_gear
8
- @machine.event :ignite do
9
- transition parked: :idling
10
- end
11
- @machine.event :shift_up do
12
- transition idling: :first_gear
13
- end
14
-
15
- @object = @klass.new
16
- @object.state = 'parked'
17
-
18
- @paths = StateMachines::PathCollection.new(@object, @machine)
19
- end
20
-
21
- def test_should_enumerate_paths
22
- assert_equal [[
23
- StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling),
24
- StateMachines::Transition.new(@object, @machine, :shift_up, :idling, :first_gear)
25
- ]], @paths
26
- end
27
-
28
- def test_should_have_a_from_name
29
- assert_equal :parked, @paths.from_name
30
- end
31
-
32
- def test_should_not_have_a_to_name
33
- assert_nil @paths.to_name
34
- end
35
-
36
- def test_should_have_from_states
37
- assert_equal [:parked, :idling], @paths.from_states
38
- end
39
-
40
- def test_should_have_to_states
41
- assert_equal [:idling, :first_gear], @paths.to_states
42
- end
43
-
44
- def test_should_have_no_events
45
- assert_equal [:ignite, :shift_up], @paths.events
46
- end
47
- end
@@ -1,29 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class PathCollectionWithToStateTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.state :parked, :idling
8
- @machine.event :ignite do
9
- transition parked: :idling
10
- end
11
- @machine.event :shift_up do
12
- transition parked: :idling, idling: :first_gear
13
- end
14
- @machine.event :shift_down do
15
- transition first_gear: :idling
16
- end
17
- @object = @klass.new
18
- @object.state = 'parked'
19
-
20
- @paths = StateMachines::PathCollection.new(@object, @machine, to: :idling)
21
- end
22
-
23
- def test_should_stop_paths_once_target_state_reached
24
- assert_equal [
25
- [StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling)],
26
- [StateMachines::Transition.new(@object, @machine, :shift_up, :parked, :idling)]
27
- ], @paths
28
- end
29
- end
@@ -1,25 +0,0 @@
1
- require_relative '../../test_helper'
2
- class PathWithGuardedPathsTest < StateMachinesTest
3
- def setup
4
- @klass = Class.new
5
- @machine = StateMachines::Machine.new(@klass)
6
- @machine.state :parked, :idling, :first_gear
7
- @machine.event :ignite do
8
- transition parked: :idling, if: lambda { false }
9
- end
10
-
11
- @object = @klass.new
12
- @object.state = 'parked'
13
- end
14
-
15
- def test_should_not_enumerate_paths_if_guard_enabled
16
- assert_equal [], StateMachines::PathCollection.new(@object, @machine)
17
- end
18
-
19
- def test_should_enumerate_paths_if_guard_disabled
20
- paths = StateMachines::PathCollection.new(@object, @machine, guard: false)
21
- assert_equal [[
22
- StateMachines::Transition.new(@object, @machine, :ignite, :parked, :idling)
23
- ]], paths
24
- end
25
- end
@@ -1,19 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateAfterBeingCopiedTest < StateMachinesTest
4
- def setup
5
- @machine = StateMachines::Machine.new(Class.new)
6
- @machine.states << @state = StateMachines::State.new(@machine, :parked)
7
- @copied_state = @state.dup
8
- end
9
-
10
- def test_should_not_have_the_context
11
- state_context = nil
12
- @state.context { state_context = self }
13
-
14
- copied_state_context = nil
15
- @copied_state.context { copied_state_context = self }
16
-
17
- refute_same state_context, copied_state_context
18
- end
19
- end
@@ -1,41 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateByDefaultTest < StateMachinesTest
4
- def setup
5
- @machine = StateMachines::Machine.new(Class.new)
6
- @machine.states << @state = StateMachines::State.new(@machine, :parked)
7
- end
8
-
9
- def test_should_have_a_machine
10
- assert_equal @machine, @state.machine
11
- end
12
-
13
- def test_should_have_a_name
14
- assert_equal :parked, @state.name
15
- end
16
-
17
- def test_should_have_a_qualified_name
18
- assert_equal :parked, @state.qualified_name
19
- end
20
-
21
- def test_should_have_a_human_name
22
- assert_equal 'parked', @state.human_name
23
- end
24
-
25
- def test_should_use_stringify_the_name_as_the_value
26
- assert_equal 'parked', @state.value
27
- end
28
-
29
- def test_should_not_be_initial
30
- refute @state.initial
31
- end
32
-
33
- def test_should_not_have_a_matcher
34
- assert_nil @state.matcher
35
- end
36
-
37
- def test_should_not_have_any_methods
38
- expected = {}
39
- assert_equal expected, @state.context_methods
40
- end
41
- end
@@ -1,28 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateFinalTest < StateMachinesTest
4
- def setup
5
- @machine = StateMachines::Machine.new(Class.new)
6
- @machine.states << @state = StateMachines::State.new(@machine, :parked)
7
- end
8
-
9
- def test_should_be_final_without_input_transitions
10
- assert @state.final?
11
- end
12
-
13
- def test_should_be_final_with_input_transitions
14
- @machine.event :park do
15
- transition idling: :parked
16
- end
17
-
18
- assert @state.final?
19
- end
20
-
21
- def test_should_be_final_with_loopback
22
- @machine.event :ignite do
23
- transition parked: same
24
- end
25
-
26
- assert @state.final?
27
- end
28
- end
@@ -1,13 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateInitialTest < StateMachinesTest
4
- def setup
5
- @machine = StateMachines::Machine.new(Class.new)
6
- @machine.states << @state = StateMachines::State.new(@machine, :parked, initial: true)
7
- end
8
-
9
- def test_should_be_initial
10
- assert @state.initial
11
- assert @state.initial?
12
- end
13
- end
@@ -1,32 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateNotFinalTest < StateMachinesTest
4
- def setup
5
- @machine = StateMachines::Machine.new(Class.new)
6
- @machine.states << @state = StateMachines::State.new(@machine, :parked)
7
- end
8
-
9
- def test_should_not_be_final_with_outgoing_whitelist_transitions
10
- @machine.event :ignite do
11
- transition parked: :idling
12
- end
13
-
14
- refute @state.final?
15
- end
16
-
17
- def test_should_not_be_final_with_outgoing_all_transitions
18
- @machine.event :ignite do
19
- transition all => :idling
20
- end
21
-
22
- refute @state.final?
23
- end
24
-
25
- def test_should_not_be_final_with_outgoing_blacklist_transitions
26
- @machine.event :ignite do
27
- transition all - :first_gear => :idling
28
- end
29
-
30
- refute @state.final?
31
- end
32
- end
@@ -1,13 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateNotInitialTest < StateMachinesTest
4
- def setup
5
- @machine = StateMachines::Machine.new(Class.new)
6
- @machine.states << @state = StateMachines::State.new(@machine, :parked, initial: false)
7
- end
8
-
9
- def test_should_not_be_initial
10
- refute @state.initial
11
- refute @state.initial?
12
- end
13
- end