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,40 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateWithValidInheritedMethodCallForCurrentStateTest < StateMachinesTest
4
- def setup
5
- @superclass = Class.new do
6
- def speed(arg = nil)
7
- [arg]
8
- end
9
- end
10
- @klass = Class.new(@superclass)
11
- @machine = StateMachines::Machine.new(@klass, initial: :idling)
12
- @ancestors = @klass.ancestors
13
- @state = @machine.state(:idling)
14
- @state.context do
15
- def speed(arg = nil)
16
- [arg] + super(2)
17
- end
18
- end
19
-
20
- @object = @klass.new
21
- end
22
-
23
- def test_should_not_raise_an_exception
24
- @state.call(@object, :speed, method_missing: lambda { fail })
25
- end
26
-
27
- def test_should_be_able_to_call_super
28
- assert_equal [1, 2], @state.call(@object, :speed, 1)
29
- end
30
-
31
- def test_should_allow_redefinition
32
- @state.context do
33
- def speed(arg = nil)
34
- [arg] + super(3)
35
- end
36
- end
37
-
38
- assert_equal [1, 3], @state.call(@object, :speed, 1)
39
- end
40
- end
@@ -1,33 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateWithValidMethodCallForCurrentStateTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass, initial: :idling)
7
- @ancestors = @klass.ancestors
8
- @state = @machine.state(:idling)
9
- @state.context do
10
- def speed(arg = nil)
11
- block_given? ? [arg, yield] : arg
12
- end
13
- end
14
-
15
- @object = @klass.new
16
- end
17
-
18
- def test_should_not_raise_an_exception
19
- @state.call(@object, :speed, method_missing: lambda { fail })
20
- end
21
-
22
- def test_should_pass_arguments_through
23
- assert_equal 1, @state.call(@object, :speed, 1, method_missing: lambda {})
24
- end
25
-
26
- def test_should_pass_blocks_through
27
- assert_equal [nil, 1], @state.call(@object, :speed) { 1 }
28
- end
29
-
30
- def test_should_pass_both_arguments_and_blocks_through
31
- assert_equal [1, 2], @state.call(@object, :speed, 1, method_missing: lambda {}) { 2 }
32
- end
33
- end
@@ -1,41 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateWithValidMethodCallForDifferentStateTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @ancestors = @klass.ancestors
8
- @machine.states << @state = StateMachines::State.new(@machine, :idling)
9
- @state.context do
10
- def speed
11
- 0
12
- end
13
- end
14
-
15
- @object = @klass.new
16
- end
17
-
18
- def test_should_call_method_missing_arg
19
- assert_equal 1, @state.call(@object, :speed, method_missing: lambda { 1 })
20
- end
21
-
22
- def test_should_raise_invalid_context_on_no_method_error
23
- exception = assert_raises(StateMachines::InvalidContext) do
24
- @state.call(@object, :speed, method_missing: lambda { fail NoMethodError.new('Invalid', :speed, []) })
25
- end
26
- assert_equal @object, exception.object
27
- assert_equal 'State nil for :state is not a valid context for calling #speed', exception.message
28
- end
29
-
30
- def test_should_raise_original_error_on_no_method_error_with_different_arguments
31
- assert_raises(NoMethodError) do
32
- @state.call(@object, :speed, method_missing: lambda { fail NoMethodError.new('Invalid', :speed, [1]) })
33
- end
34
- end
35
-
36
- def test_should_raise_original_error_on_no_method_error_for_different_method
37
- assert_raises(NoMethodError) do
38
- @state.call(@object, :speed, method_missing: lambda { fail NoMethodError.new('Invalid', :rpm, []) })
39
- end
40
- end
41
- end
@@ -1,25 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateWithoutCachedLambdaValueTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @dynamic_value = -> { 'value' }
8
- @machine.states << @state = StateMachines::State.new(@machine, :parked, value: @dynamic_value)
9
- end
10
-
11
- def test_should_not_be_caching
12
- refute @state.cache
13
- end
14
-
15
- def test_should_evaluate_value_each_time
16
- value = @state.value
17
- refute_same value, @state.value
18
- end
19
-
20
- def test_should_not_update_value_index_for_state_collection
21
- @state.value
22
- assert_nil @machine.states['value', :value]
23
- assert_equal @state, @machine.states[@dynamic_value, :value]
24
- end
25
- end
@@ -1,39 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateWithoutNameTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.states << @state = StateMachines::State.new(@machine, nil)
8
- end
9
-
10
- def test_should_have_a_nil_name
11
- assert_nil @state.name
12
- end
13
-
14
- def test_should_have_a_nil_qualified_name
15
- assert_nil @state.qualified_name
16
- end
17
-
18
- def test_should_have_an_empty_human_name
19
- assert_equal 'nil', @state.human_name
20
- end
21
-
22
- def test_should_have_a_nil_value
23
- assert_nil @state.value
24
- end
25
-
26
- def test_should_not_redefine_nil_predicate
27
- object = @klass.new
28
- refute object.nil?
29
- refute object.respond_to?('?')
30
- end
31
-
32
- def test_should_have_a_description
33
- assert_equal 'nil', @state.description
34
- end
35
-
36
- def test_should_have_a_description_using_human_name
37
- assert_equal 'nil', @state.description(human_name: true)
38
- end
39
- end
@@ -1,21 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateCollectionByDefaultTest < StateMachinesTest
4
- def setup
5
- @machine = StateMachines::Machine.new(Class.new)
6
- @states = StateMachines::StateCollection.new(@machine)
7
- end
8
-
9
- def test_should_not_have_any_nodes
10
- assert_equal 0, @states.length
11
- end
12
-
13
- def test_should_have_a_machine
14
- assert_equal @machine, @states.machine
15
- end
16
-
17
- def test_should_be_empty_by_priority
18
- assert_equal [], @states.by_priority
19
- end
20
- end
21
-
@@ -1,35 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateCollectionStringTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @states = StateMachines::StateCollection.new(@machine)
8
-
9
- @states << @nil = StateMachines::State.new(@machine, nil)
10
- @states << @parked = StateMachines::State.new(@machine, 'parked')
11
- @machine.states.concat(@states)
12
-
13
- @object = @klass.new
14
- end
15
-
16
- def test_should_index_by_name
17
- assert_equal @parked, @states['parked', :name]
18
- end
19
-
20
- def test_should_index_by_name_by_default
21
- assert_equal @parked, @states['parked']
22
- end
23
-
24
- def test_should_index_by_symbol_name
25
- assert_equal @parked, @states[:parked]
26
- end
27
-
28
- def test_should_index_by_qualified_name
29
- assert_equal @parked, @states['parked', :qualified_name]
30
- end
31
-
32
- def test_should_index_by_symbol_qualified_name
33
- assert_equal @parked, @states[:parked, :qualified_name]
34
- end
35
- end
@@ -1,74 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateCollectionTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @states = StateMachines::StateCollection.new(@machine)
8
-
9
- @states << @nil = StateMachines::State.new(@machine, nil)
10
- @states << @parked = StateMachines::State.new(@machine, :parked)
11
- @states << @idling = StateMachines::State.new(@machine, :idling)
12
- @machine.states.concat(@states)
13
-
14
- @object = @klass.new
15
- end
16
-
17
- def test_should_index_by_name
18
- assert_equal @parked, @states[:parked, :name]
19
- end
20
-
21
- def test_should_index_by_name_by_default
22
- assert_equal @parked, @states[:parked]
23
- end
24
-
25
- def test_should_index_by_string_name
26
- assert_equal @parked, @states['parked']
27
- end
28
-
29
- def test_should_index_by_qualified_name
30
- assert_equal @parked, @states[:parked, :qualified_name]
31
- end
32
-
33
- def test_should_index_by_string_qualified_name
34
- assert_equal @parked, @states['parked', :qualified_name]
35
- end
36
-
37
- def test_should_index_by_value
38
- assert_equal @parked, @states['parked', :value]
39
- end
40
-
41
- def test_should_not_match_if_value_does_not_match
42
- refute @states.matches?(@object, :parked)
43
- refute @states.matches?(@object, :idling)
44
- end
45
-
46
- def test_should_match_if_value_matches
47
- assert @states.matches?(@object, nil)
48
- end
49
-
50
- def test_raise_exception_if_matching_invalid_state
51
- assert_raises(IndexError) { @states.matches?(@object, :invalid) }
52
- end
53
-
54
- def test_should_find_state_for_object_if_value_is_known
55
- @object.state = 'parked'
56
- assert_equal @parked, @states.match(@object)
57
- end
58
-
59
- def test_should_find_bang_state_for_object_if_value_is_known
60
- @object.state = 'parked'
61
- assert_equal @parked, @states.match!(@object)
62
- end
63
-
64
- def test_should_not_find_state_for_object_with_unknown_value
65
- @object.state = 'invalid'
66
- assert_nil @states.match(@object)
67
- end
68
-
69
- def test_should_raise_exception_if_finding_bang_state_for_object_with_unknown_value
70
- @object.state = 'invalid'
71
- exception = assert_raises(ArgumentError) { @states.match!(@object) }
72
- assert_equal '"invalid" is not a known state value', exception.message
73
- end
74
- end
@@ -1,29 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateCollectionWithCustomStateValuesTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @states = StateMachines::StateCollection.new(@machine)
8
-
9
- @states << @state = StateMachines::State.new(@machine, :parked, value: 1)
10
- @machine.states.concat(@states)
11
-
12
- @object = @klass.new
13
- @object.state = 1
14
- end
15
-
16
- def test_should_match_if_value_matches
17
- assert @states.matches?(@object, :parked)
18
- end
19
-
20
- def test_should_not_match_if_value_does_not_match
21
- @object.state = 2
22
- refute @states.matches?(@object, :parked)
23
- end
24
-
25
- def test_should_find_state_for_object_if_value_is_known
26
- assert_equal @state, @states.match(@object)
27
- end
28
- end
29
-
@@ -1,39 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateCollectionWithEventTransitionsTest < StateMachinesTest
4
- def setup
5
- @machine = StateMachines::Machine.new(Class.new)
6
- @states = StateMachines::StateCollection.new(@machine)
7
-
8
- @states << @parked = StateMachines::State.new(@machine, :parked)
9
- @states << @idling = StateMachines::State.new(@machine, :idling)
10
- @machine.states.concat(@states)
11
-
12
- @machine.event :ignite do
13
- transition to: :idling
14
- end
15
- end
16
-
17
- def test_should_order_states_after_initial_state
18
- @parked.initial = true
19
- assert_equal [@parked, @idling], @states.by_priority
20
- end
21
-
22
- def test_should_order_states_before_states_with_behaviors
23
- @parked.context do
24
- def speed
25
- 0
26
- end
27
- end
28
- assert_equal [@idling, @parked], @states.by_priority
29
- end
30
-
31
- def test_should_order_states_before_other_states
32
- assert_equal [@idling, @parked], @states.by_priority
33
- end
34
-
35
- def test_should_order_state_before_callback_states
36
- @machine.before_transition from: :parked, do: lambda {}
37
- assert_equal [@idling, @parked], @states.by_priority
38
- end
39
- end
@@ -1,40 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateCollectionWithInitialStateTest < StateMachinesTest
4
- def setup
5
- @machine = StateMachines::Machine.new(Class.new)
6
- @states = StateMachines::StateCollection.new(@machine)
7
-
8
- @states << @parked = StateMachines::State.new(@machine, :parked)
9
- @states << @idling = StateMachines::State.new(@machine, :idling)
10
- @machine.states.concat(@states)
11
-
12
- @parked.initial = true
13
- end
14
-
15
- def test_should_order_state_before_transition_states
16
- @machine.event :ignite do
17
- transition to: :idling
18
- end
19
- assert_equal [@parked, @idling], @states.by_priority
20
- end
21
-
22
- def test_should_order_state_before_states_with_behaviors
23
- @idling.context do
24
- def speed
25
- 0
26
- end
27
- end
28
- assert_equal [@parked, @idling], @states.by_priority
29
- end
30
-
31
- def test_should_order_state_before_other_states
32
- assert_equal [@parked, @idling], @states.by_priority
33
- end
34
-
35
- def test_should_order_state_before_callback_states
36
- @machine.before_transition from: :idling, do: lambda {}
37
- assert_equal [@parked, @idling], @states.by_priority
38
- end
39
- end
40
-
@@ -1,21 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateCollectionWithNamespaceTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass, namespace: 'vehicle')
7
- @states = StateMachines::StateCollection.new(@machine)
8
-
9
- @states << @state = StateMachines::State.new(@machine, :parked)
10
- @machine.states.concat(@states)
11
- end
12
-
13
- def test_should_index_by_name
14
- assert_equal @state, @states[:parked, :name]
15
- end
16
-
17
- def test_should_index_by_qualified_name
18
- assert_equal @state, @states[:vehicle_parked, :qualified_name]
19
- end
20
- end
21
-
@@ -1,40 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateCollectionWithStateBehaviorsTest < StateMachinesTest
4
- def setup
5
- @machine = StateMachines::Machine.new(Class.new)
6
- @states = StateMachines::StateCollection.new(@machine)
7
-
8
- @states << @parked = StateMachines::State.new(@machine, :parked)
9
- @states << @idling = StateMachines::State.new(@machine, :idling)
10
- @machine.states.concat(@states)
11
-
12
- @idling.context do
13
- def speed
14
- 0
15
- end
16
- end
17
- end
18
-
19
- def test_should_order_states_after_initial_state
20
- @parked.initial = true
21
- assert_equal [@parked, @idling], @states.by_priority
22
- end
23
-
24
- def test_should_order_states_after_transition_states
25
- @machine.event :ignite do
26
- transition from: :parked
27
- end
28
- assert_equal [@parked, @idling], @states.by_priority
29
- end
30
-
31
- def test_should_order_states_before_other_states
32
- assert_equal [@idling, @parked], @states.by_priority
33
- end
34
-
35
- def test_should_order_state_before_callback_states
36
- @machine.before_transition from: :parked, do: lambda {}
37
- assert_equal [@idling, @parked], @states.by_priority
38
- end
39
- end
40
-
@@ -1,29 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateCollectionWithStateMatchersTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @states = StateMachines::StateCollection.new(@machine)
8
-
9
- @states << @state = StateMachines::State.new(@machine, :parked, if: lambda { |value| !value.nil? })
10
- @machine.states.concat(@states)
11
-
12
- @object = @klass.new
13
- @object.state = 1
14
- end
15
-
16
- def test_should_match_if_value_matches
17
- assert @states.matches?(@object, :parked)
18
- end
19
-
20
- def test_should_not_match_if_value_does_not_match
21
- @object.state = nil
22
- refute @states.matches?(@object, :parked)
23
- end
24
-
25
- def test_should_find_state_for_object_if_value_is_known
26
- assert_equal @state, @states.match(@object)
27
- end
28
- end
29
-
@@ -1,40 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateCollectionWithTransitionCallbacksTest < StateMachinesTest
4
- def setup
5
- @machine = StateMachines::Machine.new(Class.new)
6
- @states = StateMachines::StateCollection.new(@machine)
7
-
8
- @states << @parked = StateMachines::State.new(@machine, :parked)
9
- @states << @idling = StateMachines::State.new(@machine, :idling)
10
- @machine.states.concat(@states)
11
-
12
- @machine.before_transition to: :idling, do: lambda {}
13
- end
14
-
15
- def test_should_order_states_after_initial_state
16
- @parked.initial = true
17
- assert_equal [@parked, @idling], @states.by_priority
18
- end
19
-
20
- def test_should_order_states_after_transition_states
21
- @machine.event :ignite do
22
- transition from: :parked
23
- end
24
- assert_equal [@parked, @idling], @states.by_priority
25
- end
26
-
27
- def test_should_order_states_after_states_with_behaviors
28
- @parked.context do
29
- def speed
30
- 0
31
- end
32
- end
33
- assert_equal [@parked, @idling], @states.by_priority
34
- end
35
-
36
- def test_should_order_states_after_other_states
37
- assert_equal [@parked, @idling], @states.by_priority
38
- end
39
- end
40
-
@@ -1,26 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateContextProxyTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new(Validateable)
6
- machine = StateMachines::Machine.new(@klass, initial: :parked)
7
- state = machine.state :parked
8
-
9
- @state_context = StateMachines::StateContext.new(state)
10
- end
11
-
12
- def test_should_call_class_with_same_arguments
13
- options = {}
14
- validation = @state_context.validate(:name, options)
15
-
16
- assert_equal [:name, options], validation
17
- end
18
-
19
- def test_should_pass_block_through_to_class
20
- options = {}
21
- proxy_block = lambda {}
22
- validation = @state_context.validate(:name, options, &proxy_block)
23
-
24
- assert_equal [:name, options, proxy_block], validation
25
- end
26
- end
@@ -1,42 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateContextProxyWithIfAndUnlessConditionsTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new(Validateable)
6
- machine = StateMachines::Machine.new(@klass, initial: :parked)
7
- state = machine.state :parked
8
-
9
- @state_context = StateMachines::StateContext.new(state)
10
- @object = @klass.new
11
-
12
- @if_condition_result = nil
13
- @unless_condition_result = nil
14
- @options = @state_context.validate(if: lambda { @if_condition_result }, unless: lambda { @unless_condition_result })[0]
15
- end
16
-
17
- def test_should_be_false_if_if_condition_is_false
18
- @if_condition_result = false
19
- @unless_condition_result = false
20
- refute @options[:if].call(@object)
21
-
22
- @if_condition_result = false
23
- @unless_condition_result = true
24
- refute @options[:if].call(@object)
25
- end
26
-
27
- def test_should_be_false_if_unless_condition_is_true
28
- @if_condition_result = false
29
- @unless_condition_result = true
30
- refute @options[:if].call(@object)
31
-
32
- @if_condition_result = true
33
- @unless_condition_result = true
34
- refute @options[:if].call(@object)
35
- end
36
-
37
- def test_should_be_true_if_if_condition_is_true_and_unless_condition_is_false
38
- @if_condition_result = true
39
- @unless_condition_result = false
40
- assert @options[:if].call(@object)
41
- end
42
- end