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,44 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateTest < 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_raise_exception_if_invalid_option_specified
10
- exception = assert_raises(ArgumentError) { StateMachines::State.new(@machine, :parked, invalid: true) }
11
- assert_equal 'Unknown key: :invalid. Valid keys are: :initial, :value, :cache, :if, :human_name', exception.message
12
- end
13
-
14
- def test_should_allow_changing_machine
15
- new_machine = StateMachines::Machine.new(Class.new)
16
- @state.machine = new_machine
17
- assert_equal new_machine, @state.machine
18
- end
19
-
20
- def test_should_allow_changing_value
21
- @state.value = 1
22
- assert_equal 1, @state.value
23
- end
24
-
25
- def test_should_allow_changing_initial
26
- @state.initial = true
27
- assert @state.initial
28
- end
29
-
30
- def test_should_allow_changing_matcher
31
- matcher = lambda {}
32
- @state.matcher = matcher
33
- assert_equal matcher, @state.matcher
34
- end
35
-
36
- def test_should_allow_changing_human_name
37
- @state.human_name = 'stopped'
38
- assert_equal 'stopped', @state.human_name
39
- end
40
-
41
- def test_should_use_pretty_inspect
42
- assert_equal '#<StateMachines::State name=:parked value="parked" initial=false>', @state.inspect
43
- end
44
- end
@@ -1,29 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateWithCachedLambdaValueTest < 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, cache: true)
9
- end
10
-
11
- def test_should_be_caching
12
- assert @state.cache
13
- end
14
-
15
- def test_should_evaluate_value
16
- assert_equal 'value', @state.value
17
- end
18
-
19
- def test_should_only_evaluate_value_once
20
- value = @state.value
21
- assert_same value, @state.value
22
- end
23
-
24
- def test_should_update_value_index_for_state_collection
25
- @state.value
26
- assert_equal @state, @machine.states['value', :value]
27
- assert_nil @machine.states[@dynamic_value, :value]
28
- end
29
- end
@@ -1,38 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateWithConflictingHelpersAfterDefinitionTest < StateMachinesTest
4
- def setup
5
- @original_stderr, $stderr = $stderr, StringIO.new
6
-
7
- @klass = Class.new do
8
- def parked?
9
- 0
10
- end
11
- end
12
- @machine = StateMachines::Machine.new(@klass)
13
- @machine.state :parked
14
- @object = @klass.new
15
- end
16
-
17
- def test_should_not_override_state_predicate
18
- assert_equal 0, @object.parked?
19
- end
20
-
21
- def test_should_still_allow_super_chaining
22
- @klass.class_eval do
23
- def parked?
24
- super
25
- end
26
- end
27
-
28
- assert_equal false, @object.parked?
29
- end
30
-
31
- def test_should_not_output_warning
32
- assert_equal '', $stderr.string
33
- end
34
-
35
- def teardown
36
- $stderr = @original_stderr
37
- end
38
- end
@@ -1,29 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateWithConflictingHelpersBeforeDefinitionTest < StateMachinesTest
4
- def setup
5
- @original_stderr, $stderr = $stderr, StringIO.new
6
-
7
- @superclass = Class.new do
8
- def parked?
9
- 0
10
- end
11
- end
12
- @klass = Class.new(@superclass)
13
- @machine = StateMachines::Machine.new(@klass)
14
- @machine.state :parked
15
- @object = @klass.new
16
- end
17
-
18
- def test_should_not_override_state_predicate
19
- assert_equal 0, @object.parked?
20
- end
21
-
22
- def test_should_output_warning
23
- assert_equal "Instance method \"parked?\" is already defined in #{@superclass}, use generic helper instead or set StateMachines::Machine.ignore_method_conflicts = true.\n", $stderr.string
24
- end
25
-
26
- def teardown
27
- $stderr = @original_stderr
28
- end
29
- end
@@ -1,20 +0,0 @@
1
- require_relative '../../test_helper'
2
- require 'stringio'
3
-
4
- class StateWithConflictingMachineNameTest < StateMachinesTest
5
- def setup
6
- @original_stderr, $stderr = $stderr, StringIO.new
7
-
8
- @klass = Class.new
9
- @state_machine = StateMachines::Machine.new(@klass, :state)
10
- end
11
-
12
- def test_should_output_warning_if_name_conflicts
13
- StateMachines::State.new(@state_machine, :state)
14
- assert_equal "Instance method \"state?\" is already defined in #{@klass} :state instance helpers, use generic helper instead or set StateMachines::Machine.ignore_method_conflicts = true.\n", $stderr.string
15
- end
16
-
17
- def teardown
18
- $stderr = @original_stderr
19
- end
20
- end
@@ -1,37 +0,0 @@
1
- require_relative '../../test_helper'
2
- require 'stringio'
3
-
4
- class StateWithConflictingMachineTest < StateMachinesTest
5
- def setup
6
- @original_stderr, $stderr = $stderr, StringIO.new
7
-
8
- @klass = Class.new
9
- @state_machine = StateMachines::Machine.new(@klass, :state)
10
- @state_machine.states << @state = StateMachines::State.new(@state_machine, :parked)
11
- end
12
-
13
- def test_should_output_warning_if_using_different_attribute
14
- @status_machine = StateMachines::Machine.new(@klass, :status)
15
- @status_machine.states << @state = StateMachines::State.new(@status_machine, :parked)
16
-
17
- assert_equal "State :parked for :status is already defined in :state\n", $stderr.string
18
- end
19
-
20
- def test_should_not_output_warning_if_using_same_attribute
21
- @status_machine = StateMachines::Machine.new(@klass, :status, attribute: :state)
22
- @status_machine.states << @state = StateMachines::State.new(@status_machine, :parked)
23
-
24
- assert_equal '', $stderr.string
25
- end
26
-
27
- def test_should_not_output_warning_if_using_different_namespace
28
- @status_machine = StateMachines::Machine.new(@klass, :status, namespace: 'alarm')
29
- @status_machine.states << @state = StateMachines::State.new(@status_machine, :parked)
30
-
31
- assert_equal '', $stderr.string
32
- end
33
-
34
- def teardown
35
- $stderr = @original_stderr
36
- end
37
- end
@@ -1,60 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateWithContextTest < 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
-
10
- context = nil
11
- speed_method = nil
12
- rpm_method = nil
13
- @result = @state.context do
14
- context = self
15
-
16
- def speed
17
- 0
18
- end
19
-
20
- speed_method = instance_method(:speed)
21
-
22
- def rpm
23
- 1000
24
- end
25
-
26
- rpm_method = instance_method(:rpm)
27
- end
28
-
29
- @context = context
30
- @speed_method = speed_method
31
- @rpm_method = rpm_method
32
- end
33
-
34
- def test_should_return_true
35
- assert_equal true, @result
36
- end
37
-
38
- def test_should_include_new_module_in_owner_class
39
- refute_equal @ancestors, @klass.ancestors
40
- assert_equal [@context], @klass.ancestors - @ancestors
41
- end
42
-
43
- def test_should_define_each_context_method_in_owner_class
44
- %w(speed rpm).each { |method| assert @klass.method_defined?(method) }
45
- end
46
-
47
- def test_should_define_aliased_context_method_in_owner_class
48
- %w(speed rpm).each { |method| assert @klass.method_defined?("__state_idling_#{method}_#{@context.object_id}__") }
49
- end
50
-
51
- def test_should_not_use_context_methods_as_owner_class_methods
52
- refute_equal @speed_method, @state.context_methods[:speed]
53
- refute_equal @rpm_method, @state.context_methods[:rpm]
54
- end
55
-
56
- def test_should_use_context_methods_as_aliased_owner_class_methods
57
- assert_equal @speed_method, @state.context_methods[:"__state_idling_speed_#{@context.object_id}__"]
58
- assert_equal @rpm_method, @state.context_methods[:"__state_idling_rpm_#{@context.object_id}__"]
59
- end
60
- end
@@ -1,25 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateWithDynamicHumanNameTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.states << @state = StateMachines::State.new(@machine, :parked, human_name: lambda { |_state, object| ['stopped', object] })
8
- end
9
-
10
- def test_should_use_custom_human_name
11
- human_name, klass = @state.human_name
12
- assert_equal 'stopped', human_name
13
- assert_equal @klass, klass
14
- end
15
-
16
- def test_should_allow_custom_class_to_be_passed_through
17
- human_name, klass = @state.human_name(1)
18
- assert_equal 'stopped', human_name
19
- assert_equal 1, klass
20
- end
21
-
22
- def test_should_not_cache_value
23
- refute_same @state.human_name, @state.human_name
24
- end
25
- end
@@ -1,24 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateWithExistingContextMethodTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new do
6
- def speed
7
- 60
8
- end
9
- end
10
- @original_speed_method = @klass.instance_method(:speed)
11
-
12
- @machine = StateMachines::Machine.new(@klass)
13
- @machine.states << @state = StateMachines::State.new(@machine, :idling)
14
- @state.context do
15
- def speed
16
- 0
17
- end
18
- end
19
- end
20
-
21
- def test_should_not_override_method
22
- assert_equal @original_speed_method, @klass.instance_method(:speed)
23
- end
24
- end
@@ -1,13 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateWithHumanNameTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.states << @state = StateMachines::State.new(@machine, :parked, human_name: 'stopped')
8
- end
9
-
10
- def test_should_use_custom_human_name
11
- assert_equal 'stopped', @state.human_name
12
- end
13
- end
@@ -1,32 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateWithIntegerValueTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.states << @state = StateMachines::State.new(@machine, :parked, value: 1)
8
- end
9
-
10
- def test_should_use_custom_value
11
- assert_equal 1, @state.value
12
- end
13
-
14
- def test_should_include_value_in_description
15
- assert_equal 'parked (1)', @state.description
16
- end
17
-
18
- def test_should_allow_human_name_in_description
19
- @state.human_name = 'Parked'
20
- assert_equal 'Parked (1)', @state.description(human_name: true)
21
- end
22
-
23
- def test_should_match_integer_value
24
- assert @state.matches?(1)
25
- refute @state.matches?(2)
26
- end
27
-
28
- def test_should_define_predicate
29
- object = @klass.new
30
- assert object.respond_to?(:parked?)
31
- end
32
- end
@@ -1,21 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateWithInvalidMethodCallTest < 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, :invalid, method_missing: -> { 1 })
20
- end
21
- end
@@ -1,37 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateWithLambdaValueTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @args = nil
7
- @machine = StateMachines::Machine.new(@klass)
8
- @value = ->(*args) { @args = args; :parked }
9
- @machine.states << @state = StateMachines::State.new(@machine, :parked, value: @value)
10
- end
11
-
12
- def test_should_use_evaluated_value_by_default
13
- assert_equal :parked, @state.value
14
- end
15
-
16
- def test_should_allow_access_to_original_value
17
- assert_equal @value, @state.value(false)
18
- end
19
-
20
- def test_should_include_masked_value_in_description
21
- assert_equal 'parked (*)', @state.description
22
- end
23
-
24
- def test_should_not_pass_in_any_arguments
25
- @state.value
26
- assert_equal [], @args
27
- end
28
-
29
- def test_should_define_predicate
30
- object = @klass.new
31
- assert object.respond_to?(:parked?)
32
- end
33
-
34
- def test_should_match_evaluated_value
35
- assert @state.matches?(:parked)
36
- end
37
- end
@@ -1,18 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateWithMatcherTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @args = nil
7
- @machine = StateMachines::Machine.new(@klass)
8
- @machine.states << @state = StateMachines::State.new(@machine, :parked, if: lambda { |value| value == 1 })
9
- end
10
-
11
- def test_should_not_match_actual_value
12
- refute @state.matches?('parked')
13
- end
14
-
15
- def test_should_match_evaluated_block
16
- assert @state.matches?(1)
17
- end
18
- end
@@ -1,57 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateWithMultipleContextsTest < 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
-
10
- context = nil
11
- speed_method = nil
12
- @state.context do
13
- context = self
14
-
15
- def speed
16
- 0
17
- end
18
-
19
- speed_method = instance_method(:speed)
20
- end
21
- @context = context
22
- @speed_method = speed_method
23
-
24
- rpm_method = nil
25
- @state.context do
26
- def rpm
27
- 1000
28
- end
29
-
30
- rpm_method = instance_method(:rpm)
31
- end
32
- @rpm_method = rpm_method
33
- end
34
-
35
- def test_should_include_new_module_in_owner_class
36
- refute_equal @ancestors, @klass.ancestors
37
- assert_equal [@context], @klass.ancestors - @ancestors
38
- end
39
-
40
- def test_should_define_each_context_method_in_owner_class
41
- %w(speed rpm).each { |method| assert @klass.method_defined?(method) }
42
- end
43
-
44
- def test_should_define_aliased_context_method_in_owner_class
45
- %w(speed rpm).each { |method| assert @klass.method_defined?("__state_idling_#{method}_#{@context.object_id}__") }
46
- end
47
-
48
- def test_should_not_use_context_methods_as_owner_class_methods
49
- refute_equal @speed_method, @state.context_methods[:speed]
50
- refute_equal @rpm_method, @state.context_methods[:rpm]
51
- end
52
-
53
- def test_should_use_context_methods_as_aliased_owner_class_methods
54
- assert_equal @speed_method, @state.context_methods[:"__state_idling_speed_#{@context.object_id}__"]
55
- assert_equal @rpm_method, @state.context_methods[:"__state_idling_rpm_#{@context.object_id}__"]
56
- end
57
- end
@@ -1,43 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateWithNameTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.states << @state = StateMachines::State.new(@machine, :parked)
8
- end
9
-
10
- def test_should_have_a_name
11
- assert_equal :parked, @state.name
12
- end
13
-
14
- def test_should_have_a_qualified_name
15
- assert_equal :parked, @state.name
16
- end
17
-
18
- def test_should_have_a_human_name
19
- assert_equal 'parked', @state.human_name
20
- end
21
-
22
- def test_should_use_stringify_the_name_as_the_value
23
- assert_equal 'parked', @state.value
24
- end
25
-
26
- def test_should_match_stringified_name
27
- assert @state.matches?('parked')
28
- refute @state.matches?('idling')
29
- end
30
-
31
- def test_should_not_include_value_in_description
32
- assert_equal 'parked', @state.description
33
- end
34
-
35
- def test_should_allow_using_human_name_in_description
36
- @state.human_name = 'Parked'
37
- assert_equal 'Parked', @state.description(human_name: true)
38
- end
39
-
40
- def test_should_define_predicate
41
- assert @klass.new.respond_to?(:parked?)
42
- end
43
- end
@@ -1,22 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateWithNamespaceTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass, namespace: 'alarm')
7
- @machine.states << @state = StateMachines::State.new(@machine, :active)
8
- @object = @klass.new
9
- end
10
-
11
- def test_should_have_a_name
12
- assert_equal :active, @state.name
13
- end
14
-
15
- def test_should_have_a_qualified_name
16
- assert_equal :alarm_active, @state.qualified_name
17
- end
18
-
19
- def test_should_namespace_predicate
20
- assert @object.respond_to?(:alarm_active?)
21
- end
22
- end
@@ -1,35 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateWithNilValueTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.states << @state = StateMachines::State.new(@machine, :parked, value: nil)
8
- end
9
-
10
- def test_should_have_a_name
11
- assert_equal :parked, @state.name
12
- end
13
-
14
- def test_should_have_a_nil_value
15
- assert_nil @state.value
16
- end
17
-
18
- def test_should_match_nil_values
19
- assert @state.matches?(nil)
20
- end
21
-
22
- def test_should_have_a_description
23
- assert_equal 'parked (nil)', @state.description
24
- end
25
-
26
- def test_should_have_a_description_with_human_name
27
- @state.human_name = 'Parked'
28
- assert_equal 'Parked (nil)', @state.description(human_name: true)
29
- end
30
-
31
- def test_should_define_predicate
32
- object = @klass.new
33
- assert object.respond_to?(:parked?)
34
- end
35
- end
@@ -1,45 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateWithRedefinedContextMethodTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.states << @state = StateMachines::State.new(@machine, 'on')
8
-
9
- old_context = nil
10
- old_speed_method = nil
11
- @state.context do
12
- old_context = self
13
-
14
- def speed
15
- 0
16
- end
17
-
18
- old_speed_method = instance_method(:speed)
19
- end
20
- @old_context = old_context
21
- @old_speed_method = old_speed_method
22
-
23
- current_context = nil
24
- current_speed_method = nil
25
- @state.context do
26
- current_context = self
27
-
28
- def speed
29
- 'green'
30
- end
31
-
32
- current_speed_method = instance_method(:speed)
33
- end
34
- @current_context = current_context
35
- @current_speed_method = current_speed_method
36
- end
37
-
38
- def test_should_track_latest_defined_method
39
- assert_equal @current_speed_method, @state.context_methods[:"__state_on_speed_#{@current_context.object_id}__"]
40
- end
41
-
42
- def test_should_have_the_same_context
43
- assert_equal @current_context, @old_context
44
- end
45
- end
@@ -1,32 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class StateWithSymbolicValueTest < StateMachinesTest
4
- def setup
5
- @klass = Class.new
6
- @machine = StateMachines::Machine.new(@klass)
7
- @machine.states << @state = StateMachines::State.new(@machine, :parked, value: :parked)
8
- end
9
-
10
- def test_should_use_custom_value
11
- assert_equal :parked, @state.value
12
- end
13
-
14
- def test_should_not_include_value_in_description
15
- assert_equal 'parked', @state.description
16
- end
17
-
18
- def test_should_allow_human_name_in_description
19
- @state.human_name = 'Parked'
20
- assert_equal 'Parked', @state.description(human_name: true)
21
- end
22
-
23
- def test_should_match_symbolic_value
24
- assert @state.matches?(:parked)
25
- refute @state.matches?('parked')
26
- end
27
-
28
- def test_should_define_predicate
29
- object = @klass.new
30
- assert object.respond_to?(:parked?)
31
- end
32
- end