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,8 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithConflictingFromRequirementsTest < StateMachinesTest
4
- def test_should_raise_an_exception
5
- exception = assert_raises(ArgumentError) { StateMachines::Branch.new(from: :parked, except_from: :parked) }
6
- assert_equal 'Conflicting keys: from, except_from', exception.message
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithConflictingOnRequirementsTest < StateMachinesTest
4
- def test_should_raise_an_exception
5
- exception = assert_raises(ArgumentError) { StateMachines::Branch.new(on: :ignite, except_on: :ignite) }
6
- assert_equal 'Conflicting keys: on, except_on', exception.message
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithConflictingToRequirementsTest < StateMachinesTest
4
- def test_should_raise_an_exception
5
- exception = assert_raises(ArgumentError) { StateMachines::Branch.new(to: :idling, except_to: :idling) }
6
- assert_equal 'Conflicting keys: to, except_to', exception.message
7
- end
8
- end
@@ -1,41 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithDifferentRequirementsTest < StateMachinesTest
4
- def setup
5
- @object = Object.new
6
- @branch = StateMachines::Branch.new(from: :parked, to: :idling, on: :ignite)
7
- end
8
-
9
- def test_should_match_empty_query
10
- assert @branch.matches?(@object)
11
- end
12
-
13
- def test_should_match_if_all_requirements_match
14
- assert @branch.matches?(@object, from: :parked, to: :idling, on: :ignite)
15
- end
16
-
17
- def test_should_not_match_if_from_not_included
18
- refute @branch.matches?(@object, from: :idling)
19
- end
20
-
21
- def test_should_not_match_if_to_not_included
22
- refute @branch.matches?(@object, to: :parked)
23
- end
24
-
25
- def test_should_not_match_if_on_not_included
26
- refute @branch.matches?(@object, on: :park)
27
- end
28
-
29
- def test_should_be_nil_if_unmatched
30
- assert_nil @branch.match(@object, from: :parked, to: :idling, on: :park)
31
- end
32
-
33
- def test_should_include_all_known_states
34
- assert_equal [:parked, :idling], @branch.known_states
35
- end
36
-
37
- def test_should_not_duplicate_known_statse
38
- branch = StateMachines::Branch.new(except_from: :idling, to: :idling, on: :ignite)
39
- assert_equal [:idling], branch.known_states
40
- end
41
- end
@@ -1,8 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithExceptFromMatcherRequirementTest < StateMachinesTest
4
- def test_should_raise_an_exception
5
- exception = assert_raises(ArgumentError) { StateMachines::Branch.new(except_from: StateMachines::AllMatcher.instance) }
6
- assert_equal ':except_from option cannot use matchers; use :from instead', exception.message
7
- end
8
- end
@@ -1,36 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithExceptFromRequirementTest < StateMachinesTest
4
- def setup
5
- @object = Object.new
6
- @branch = StateMachines::Branch.new(except_from: :parked)
7
- end
8
-
9
- def test_should_use_a_blacklist_matcher
10
- assert_instance_of StateMachines::BlacklistMatcher, @branch.state_requirements.first[:from]
11
- end
12
-
13
- def test_should_match_if_not_included
14
- assert @branch.matches?(@object, from: :idling)
15
- end
16
-
17
- def test_should_not_match_if_included
18
- refute @branch.matches?(@object, from: :parked)
19
- end
20
-
21
- def test_should_match_if_nil
22
- assert @branch.matches?(@object, from: nil)
23
- end
24
-
25
- def test_should_ignore_to
26
- assert @branch.matches?(@object, from: :idling, to: :parked)
27
- end
28
-
29
- def test_should_ignore_on
30
- assert @branch.matches?(@object, from: :idling, on: :ignite)
31
- end
32
-
33
- def test_should_be_included_in_known_states
34
- assert_equal [:parked], @branch.known_states
35
- end
36
- end
@@ -1,8 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithExceptOnMatcherRequirementTest < StateMachinesTest
4
- def test_should_raise_an_exception
5
- exception = assert_raises(ArgumentError) { StateMachines::Branch.new(except_on: StateMachines::AllMatcher.instance) }
6
- assert_equal ':except_on option cannot use matchers; use :on instead', exception.message
7
- end
8
- end
@@ -1,36 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithExceptOnRequirementTest < StateMachinesTest
4
- def setup
5
- @object = Object.new
6
- @branch = StateMachines::Branch.new(except_on: :ignite)
7
- end
8
-
9
- def test_should_use_a_blacklist_matcher
10
- assert_instance_of StateMachines::BlacklistMatcher, @branch.event_requirement
11
- end
12
-
13
- def test_should_match_if_not_included
14
- assert @branch.matches?(@object, on: :park)
15
- end
16
-
17
- def test_should_not_match_if_included
18
- refute @branch.matches?(@object, on: :ignite)
19
- end
20
-
21
- def test_should_match_if_nil
22
- assert @branch.matches?(@object, on: nil)
23
- end
24
-
25
- def test_should_ignore_to
26
- assert @branch.matches?(@object, on: :park, to: :idling)
27
- end
28
-
29
- def test_should_ignore_from
30
- assert @branch.matches?(@object, on: :park, from: :parked)
31
- end
32
-
33
- def test_should_not_be_included_in_known_states
34
- assert_equal [], @branch.known_states
35
- end
36
- end
@@ -1,8 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithExceptToMatcherRequirementTest < StateMachinesTest
4
- def test_should_raise_an_exception
5
- exception = assert_raises(ArgumentError) { StateMachines::Branch.new(except_to: StateMachines::AllMatcher.instance) }
6
- assert_equal ':except_to option cannot use matchers; use :to instead', exception.message
7
- end
8
- end
@@ -1,36 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithExceptToRequirementTest < StateMachinesTest
4
- def setup
5
- @object = Object.new
6
- @branch = StateMachines::Branch.new(except_to: :idling)
7
- end
8
-
9
- def test_should_use_a_blacklist_matcher
10
- assert_instance_of StateMachines::BlacklistMatcher, @branch.state_requirements.first[:to]
11
- end
12
-
13
- def test_should_match_if_not_included
14
- assert @branch.matches?(@object, to: :parked)
15
- end
16
-
17
- def test_should_not_match_if_included
18
- refute @branch.matches?(@object, to: :idling)
19
- end
20
-
21
- def test_should_match_if_nil
22
- assert @branch.matches?(@object, to: nil)
23
- end
24
-
25
- def test_should_ignore_from
26
- assert @branch.matches?(@object, to: :parked, from: :idling)
27
- end
28
-
29
- def test_should_ignore_on
30
- assert @branch.matches?(@object, to: :parked, on: :ignite)
31
- end
32
-
33
- def test_should_be_included_in_known_states
34
- assert_equal [:idling], @branch.known_states
35
- end
36
- end
@@ -1,20 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithFromMatcherRequirementTest < StateMachinesTest
4
- def setup
5
- @object = Object.new
6
- @branch = StateMachines::Branch.new(from: StateMachines::BlacklistMatcher.new([:idling, :parked]))
7
- end
8
-
9
- def test_should_match_if_included
10
- assert @branch.matches?(@object, from: :first_gear)
11
- end
12
-
13
- def test_should_not_match_if_not_included
14
- refute @branch.matches?(@object, from: :idling)
15
- end
16
-
17
- def test_include_values_in_known_states
18
- assert_equal [:idling, :parked], @branch.known_states
19
- end
20
- end
@@ -1,45 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithFromRequirementTest < StateMachinesTest
4
- def setup
5
- @object = Object.new
6
- @branch = StateMachines::Branch.new(from: :parked)
7
- end
8
-
9
- def test_should_use_a_whitelist_matcher
10
- assert_instance_of StateMachines::WhitelistMatcher, @branch.state_requirements.first[:from]
11
- end
12
-
13
- def test_should_match_if_not_specified
14
- assert @branch.matches?(@object, to: :idling)
15
- end
16
-
17
- def test_should_match_if_included
18
- assert @branch.matches?(@object, from: :parked)
19
- end
20
-
21
- def test_should_not_match_if_not_included
22
- refute @branch.matches?(@object, from: :idling)
23
- end
24
-
25
- def test_should_not_match_if_nil
26
- refute @branch.matches?(@object, from: nil)
27
- end
28
-
29
- def test_should_ignore_to
30
- assert @branch.matches?(@object, from: :parked, to: :idling)
31
- end
32
-
33
- def test_should_ignore_on
34
- assert @branch.matches?(@object, from: :parked, on: :ignite)
35
- end
36
-
37
- def test_should_be_included_in_known_states
38
- assert_equal [:parked], @branch.known_states
39
- end
40
-
41
- def test_should_include_requirement_in_match
42
- match = @branch.match(@object, from: :parked)
43
- assert_equal @branch.state_requirements.first[:from], match[:from]
44
- end
45
- end
@@ -1,27 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithIfConditionalTest < StateMachinesTest
4
- def setup
5
- @object = Object.new
6
- end
7
-
8
- def test_should_have_an_if_condition
9
- branch = StateMachines::Branch.new(if: lambda { true })
10
- refute_nil branch.if_condition
11
- end
12
-
13
- def test_should_match_if_true
14
- branch = StateMachines::Branch.new(if: lambda { true })
15
- assert branch.matches?(@object)
16
- end
17
-
18
- def test_should_not_match_if_false
19
- branch = StateMachines::Branch.new(if: lambda { false })
20
- refute branch.matches?(@object)
21
- end
22
-
23
- def test_should_be_nil_if_unmatched
24
- branch = StateMachines::Branch.new(if: lambda { false })
25
- assert_nil branch.match(@object)
26
- end
27
- end
@@ -1,23 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithImplicitAndExplicitRequirementsTest < StateMachinesTest
4
- def setup
5
- @branch = StateMachines::Branch.new(parked: :idling, from: :parked)
6
- end
7
-
8
- def test_should_create_multiple_requirements
9
- assert_equal 2, @branch.state_requirements.length
10
- end
11
-
12
- def test_should_create_implicit_requirements_for_implicit_options
13
- assert(@branch.state_requirements.any? do |state_requirement|
14
- state_requirement[:from].values == [:parked] && state_requirement[:to].values == [:idling]
15
- end)
16
- end
17
-
18
- def test_should_create_implicit_requirements_for_explicit_options
19
- assert(@branch.state_requirements.any? do |state_requirement|
20
- state_requirement[:from].values == [:from] && state_requirement[:to].values == [:parked]
21
- end)
22
- end
23
- end
@@ -1,20 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithMultipleFromRequirementsTest < StateMachinesTest
4
- def setup
5
- @object = Object.new
6
- @branch = StateMachines::Branch.new(from: [:idling, :parked])
7
- end
8
-
9
- def test_should_match_if_included
10
- assert @branch.matches?(@object, from: :idling)
11
- end
12
-
13
- def test_should_not_match_if_not_included
14
- refute @branch.matches?(@object, from: :first_gear)
15
- end
16
-
17
- def test_should_be_included_in_known_states
18
- assert_equal [:idling, :parked], @branch.known_states
19
- end
20
- end
@@ -1,20 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithImplicitRequirementTest < StateMachinesTest
4
- def setup
5
- @branch = StateMachines::Branch.new(parked: :idling, on: :ignite)
6
- end
7
-
8
- def test_should_create_an_event_requirement
9
- assert_instance_of StateMachines::WhitelistMatcher, @branch.event_requirement
10
- assert_equal [:ignite], @branch.event_requirement.values
11
- end
12
-
13
- def test_should_use_a_whitelist_from_matcher
14
- assert_instance_of StateMachines::WhitelistMatcher, @branch.state_requirements.first[:from]
15
- end
16
-
17
- def test_should_use_a_whitelist_to_matcher
18
- assert_instance_of StateMachines::WhitelistMatcher, @branch.state_requirements.first[:to]
19
- end
20
- end
@@ -1,16 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithImplicitToRequirementMatcherTest < StateMachinesTest
4
- def setup
5
- @matcher = StateMachines::BlacklistMatcher.new(:idling)
6
- @branch = StateMachines::Branch.new(parked: @matcher)
7
- end
8
-
9
- def test_should_convert_from_to_whitelist_matcher
10
- assert_instance_of StateMachines::WhitelistMatcher, @branch.state_requirements.first[:from]
11
- end
12
-
13
- def test_should_not_convert_to_to_whitelist_matcher
14
- assert_equal @matcher, @branch.state_requirements.first[:to]
15
- end
16
- end
@@ -1,20 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithMultipleExceptFromRequirementsTest < StateMachinesTest
4
- def setup
5
- @object = Object.new
6
- @branch = StateMachines::Branch.new(except_from: [:idling, :parked])
7
- end
8
-
9
- def test_should_match_if_not_included
10
- assert @branch.matches?(@object, from: :first_gear)
11
- end
12
-
13
- def test_should_not_match_if_included
14
- refute @branch.matches?(@object, from: :idling)
15
- end
16
-
17
- def test_should_be_included_in_known_states
18
- assert_equal [:idling, :parked], @branch.known_states
19
- end
20
- end
@@ -1,16 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithMultipleExceptOnRequirementsTest < StateMachinesTest
4
- def setup
5
- @object = Object.new
6
- @branch = StateMachines::Branch.new(except_on: [:ignite, :park])
7
- end
8
-
9
- def test_should_match_if_not_included
10
- assert @branch.matches?(@object, on: :shift_up)
11
- end
12
-
13
- def test_should_not_match_if_included
14
- refute @branch.matches?(@object, on: :ignite)
15
- end
16
- end
@@ -1,20 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithMultipleExceptToRequirementsTest < StateMachinesTest
4
- def setup
5
- @object = Object.new
6
- @branch = StateMachines::Branch.new(except_to: [:idling, :parked])
7
- end
8
-
9
- def test_should_match_if_not_included
10
- assert @branch.matches?(@object, to: :first_gear)
11
- end
12
-
13
- def test_should_not_match_if_included
14
- refute @branch.matches?(@object, to: :idling)
15
- end
16
-
17
- def test_should_be_included_in_known_states
18
- assert_equal [:idling, :parked], @branch.known_states
19
- end
20
- end
@@ -1,16 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithImplicitFromRequirementMatcherTest < StateMachinesTest
4
- def setup
5
- @matcher = StateMachines::BlacklistMatcher.new(:parked)
6
- @branch = StateMachines::Branch.new(@matcher => :idling)
7
- end
8
-
9
- def test_should_not_convert_from_to_whitelist_matcher
10
- assert_equal @matcher, @branch.state_requirements.first[:from]
11
- end
12
-
13
- def test_should_convert_to_to_whitelist_matcher
14
- assert_instance_of StateMachines::WhitelistMatcher, @branch.state_requirements.first[:to]
15
- end
16
- end
@@ -1,20 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithMultipleIfConditionalsTest < StateMachinesTest
4
- def setup
5
- @object = Object.new
6
- end
7
-
8
- def test_should_match_if_all_are_true
9
- branch = StateMachines::Branch.new(if: [lambda { true }, lambda { true }])
10
- assert branch.match(@object)
11
- end
12
-
13
- def test_should_not_match_if_any_are_false
14
- branch = StateMachines::Branch.new(if: [lambda { true }, lambda { false }])
15
- refute branch.match(@object)
16
-
17
- branch = StateMachines::Branch.new(if: [lambda { false }, lambda { true }])
18
- refute branch.match(@object)
19
- end
20
- end
@@ -1,53 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithMultipleImplicitRequirementsTest < StateMachinesTest
4
- def setup
5
- @object = Object.new
6
- @branch = StateMachines::Branch.new(parked: :idling, idling: :first_gear, on: :ignite)
7
- end
8
-
9
- def test_should_create_multiple_state_requirements
10
- assert_equal 2, @branch.state_requirements.length
11
- end
12
-
13
- def test_should_not_match_event_as_state_requirement
14
- refute @branch.matches?(@object, from: :on, to: :ignite)
15
- end
16
-
17
- def test_should_match_if_from_included_in_any
18
- assert @branch.matches?(@object, from: :parked)
19
- assert @branch.matches?(@object, from: :idling)
20
- end
21
-
22
- def test_should_not_match_if_from_not_included_in_any
23
- refute @branch.matches?(@object, from: :first_gear)
24
- end
25
-
26
- def test_should_match_if_to_included_in_any
27
- assert @branch.matches?(@object, to: :idling)
28
- assert @branch.matches?(@object, to: :first_gear)
29
- end
30
-
31
- def test_should_not_match_if_to_not_included_in_any
32
- refute @branch.matches?(@object, to: :parked)
33
- end
34
-
35
- def test_should_match_if_all_options_match
36
- assert @branch.matches?(@object, from: :parked, to: :idling, on: :ignite)
37
- assert @branch.matches?(@object, from: :idling, to: :first_gear, on: :ignite)
38
- end
39
-
40
- def test_should_not_match_if_any_options_do_not_match
41
- refute @branch.matches?(@object, from: :parked, to: :idling, on: :park)
42
- refute @branch.matches?(@object, from: :parked, to: :first_gear, on: :park)
43
- end
44
-
45
- def test_should_include_all_known_states
46
- assert_equal [:first_gear, :idling, :parked], @branch.known_states.sort_by { |state| state.to_s }
47
- end
48
-
49
- def test_should_not_duplicate_known_statse
50
- branch = StateMachines::Branch.new(parked: :idling, first_gear: :idling)
51
- assert_equal [:first_gear, :idling, :parked], branch.known_states.sort_by { |state| state.to_s }
52
- end
53
- end
@@ -1,20 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithMultipleToRequirementsTest < StateMachinesTest
4
- def setup
5
- @object = Object.new
6
- @branch = StateMachines::Branch.new(to: [:idling, :parked])
7
- end
8
-
9
- def test_should_match_if_included
10
- assert @branch.matches?(@object, to: :idling)
11
- end
12
-
13
- def test_should_not_match_if_not_included
14
- refute @branch.matches?(@object, to: :first_gear)
15
- end
16
-
17
- def test_should_be_included_in_known_states
18
- assert_equal [:idling, :parked], @branch.known_states
19
- end
20
- end
@@ -1,20 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithMultipleUnlessConditionalsTest < StateMachinesTest
4
- def setup
5
- @object = Object.new
6
- end
7
-
8
- def test_should_match_if_all_are_false
9
- branch = StateMachines::Branch.new(unless: [lambda { false }, lambda { false }])
10
- assert branch.match(@object)
11
- end
12
-
13
- def test_should_not_match_if_any_are_true
14
- branch = StateMachines::Branch.new(unless: [lambda { true }, lambda { false }])
15
- refute branch.match(@object)
16
-
17
- branch = StateMachines::Branch.new(unless: [lambda { false }, lambda { true }])
18
- refute branch.match(@object)
19
- end
20
- end
@@ -1,28 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithNilRequirementsTest < StateMachinesTest
4
- def setup
5
- @object = Object.new
6
- @branch = StateMachines::Branch.new(from: nil, to: nil)
7
- end
8
-
9
- def test_should_match_empty_query
10
- assert @branch.matches?(@object)
11
- end
12
-
13
- def test_should_match_if_all_requirements_match
14
- assert @branch.matches?(@object, from: nil, to: nil)
15
- end
16
-
17
- def test_should_not_match_if_from_not_included
18
- refute @branch.matches?(@object, from: :parked)
19
- end
20
-
21
- def test_should_not_match_if_to_not_included
22
- refute @branch.matches?(@object, to: :idling)
23
- end
24
-
25
- def test_should_include_all_known_states
26
- assert_equal [nil], @branch.known_states
27
- end
28
- end
@@ -1,36 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithNoRequirementsTest < StateMachinesTest
4
- def setup
5
- @object = Object.new
6
- @branch = StateMachines::Branch.new
7
- end
8
-
9
- def test_should_use_all_matcher_for_event_requirement
10
- assert_equal StateMachines::AllMatcher.instance, @branch.event_requirement
11
- end
12
-
13
- def test_should_use_all_matcher_for_from_state_requirement
14
- assert_equal StateMachines::AllMatcher.instance, @branch.state_requirements.first[:from]
15
- end
16
-
17
- def test_should_use_all_matcher_for_to_state_requirement
18
- assert_equal StateMachines::AllMatcher.instance, @branch.state_requirements.first[:to]
19
- end
20
-
21
- def test_should_match_empty_query
22
- assert @branch.matches?(@object, {})
23
- end
24
-
25
- def test_should_match_non_empty_query
26
- assert @branch.matches?(@object, to: :idling, from: :parked, on: :ignite)
27
- end
28
-
29
- def test_should_include_all_requirements_in_match
30
- match = @branch.match(@object, {})
31
-
32
- assert_equal @branch.state_requirements.first[:from], match[:from]
33
- assert_equal @branch.state_requirements.first[:to], match[:to]
34
- assert_equal @branch.event_requirement, match[:on]
35
- end
36
- end
@@ -1,16 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithOnMatcherRequirementTest < StateMachinesTest
4
- def setup
5
- @object = Object.new
6
- @branch = StateMachines::Branch.new(on: StateMachines::BlacklistMatcher.new([:ignite, :park]))
7
- end
8
-
9
- def test_should_match_if_included
10
- assert @branch.matches?(@object, on: :shift_up)
11
- end
12
-
13
- def test_should_not_match_if_not_included
14
- refute @branch.matches?(@object, on: :ignite)
15
- end
16
- end