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,59 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/vehicle'
3
-
4
- class VehicleIdlingTest < MiniTest::Test
5
- def setup
6
- @vehicle = Vehicle.new
7
- @vehicle.ignite
8
- end
9
-
10
- def test_should_be_in_idling_state
11
- assert_equal 'idling', @vehicle.state
12
- end
13
-
14
- def test_should_be_idling
15
- assert @vehicle.idling?
16
- end
17
-
18
- def test_should_have_seatbelt_on
19
- assert @vehicle.seatbelt_on
20
- end
21
-
22
- def test_should_track_time_elapsed
23
- refute_nil @vehicle.time_elapsed
24
- end
25
-
26
- def test_should_allow_park
27
- assert @vehicle.park
28
- end
29
-
30
- def test_should_call_park_with_bang_action
31
- class << @vehicle
32
- def park
33
- super && 1
34
- end
35
- end
36
-
37
- assert_equal 1, @vehicle.park!
38
- end
39
-
40
- def test_should_not_allow_idle
41
- refute @vehicle.idle
42
- end
43
-
44
- def test_should_allow_shift_up
45
- assert @vehicle.shift_up
46
- end
47
-
48
- def test_should_not_allow_shift_down
49
- refute @vehicle.shift_down
50
- end
51
-
52
- def test_should_not_allow_crash
53
- refute @vehicle.crash
54
- end
55
-
56
- def test_should_not_allow_repair
57
- refute @vehicle.repair
58
- end
59
- end
@@ -1,29 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/vehicle'
3
-
4
- class VehicleLockedTest < MiniTest::Test
5
- def setup
6
- @vehicle = Vehicle.new
7
- @vehicle.state = 'locked'
8
- end
9
-
10
- def test_should_be_parked_after_park
11
- @vehicle.park
12
- assert @vehicle.parked?
13
- end
14
-
15
- def test_should_be_parked_after_ignite
16
- @vehicle.ignite
17
- assert @vehicle.parked?
18
- end
19
-
20
- def test_should_be_parked_after_shift_up
21
- @vehicle.shift_up
22
- assert @vehicle.parked?
23
- end
24
-
25
- def test_should_be_parked_after_shift_down
26
- @vehicle.shift_down
27
- assert @vehicle.parked?
28
- end
29
- end
@@ -1,53 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/vehicle'
3
-
4
- class VehicleParkedTest < MiniTest::Test
5
- def setup
6
- @vehicle = Vehicle.new
7
- end
8
-
9
- def test_should_be_in_parked_state
10
- assert_equal 'parked', @vehicle.state
11
- end
12
-
13
- def test_should_not_have_the_seatbelt_on
14
- refute @vehicle.seatbelt_on
15
- end
16
-
17
- def test_should_not_allow_park
18
- refute @vehicle.park
19
- end
20
-
21
- def test_should_allow_ignite
22
- assert @vehicle.ignite
23
- assert_equal 'idling', @vehicle.state
24
- end
25
-
26
- def test_should_not_allow_idle
27
- refute @vehicle.idle
28
- end
29
-
30
- def test_should_not_allow_shift_up
31
- refute @vehicle.shift_up
32
- end
33
-
34
- def test_should_not_allow_shift_down
35
- refute @vehicle.shift_down
36
- end
37
-
38
- def test_should_not_allow_crash
39
- refute @vehicle.crash
40
- end
41
-
42
- def test_should_not_allow_repair
43
- refute @vehicle.repair
44
- end
45
-
46
- def test_should_raise_exception_if_repair_not_allowed!
47
- exception = assert_raises(StateMachines::InvalidTransition) { @vehicle.repair! }
48
- assert_equal @vehicle, exception.object
49
- assert_equal Vehicle.state_machine(:state), exception.machine
50
- assert_equal :repair, exception.event
51
- assert_equal 'parked', exception.from
52
- end
53
- end
@@ -1,20 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/vehicle'
3
-
4
- class VehicleRepairedTest < MiniTest::Test
5
- def setup
6
- @vehicle = Vehicle.new
7
- @vehicle.ignite
8
- @vehicle.shift_up
9
- @vehicle.crash
10
- @vehicle.repair
11
- end
12
-
13
- def test_should_be_in_parked_state
14
- assert_equal 'parked', @vehicle.state
15
- end
16
-
17
- def test_should_not_have_a_busy_auto_shop
18
- assert @vehicle.auto_shop.available?
19
- end
20
- end
@@ -1,42 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/vehicle'
3
-
4
- class VehicleSecondGearTest < MiniTest::Test
5
- def setup
6
- @vehicle = Vehicle.new
7
- @vehicle.ignite
8
- 2.times { @vehicle.shift_up }
9
- end
10
-
11
- def test_should_be_in_second_gear_state
12
- assert_equal 'second_gear', @vehicle.state
13
- end
14
-
15
- def test_should_be_second_gear
16
- assert @vehicle.second_gear?
17
- end
18
-
19
- def test_should_not_allow_park
20
- refute @vehicle.park
21
- end
22
-
23
- def test_should_not_allow_idle
24
- refute @vehicle.idle
25
- end
26
-
27
- def test_should_allow_shift_up
28
- assert @vehicle.shift_up
29
- end
30
-
31
- def test_should_allow_shift_down
32
- assert @vehicle.shift_down
33
- end
34
-
35
- def test_should_allow_crash
36
- assert @vehicle.crash
37
- end
38
-
39
- def test_should_not_allow_repair
40
- refute @vehicle.repair
41
- end
42
- end
@@ -1,65 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/vehicle'
3
-
4
- class VehicleStalledTest < MiniTest::Test
5
- def setup
6
- @vehicle = Vehicle.new
7
- @vehicle.ignite
8
- @vehicle.shift_up
9
- @vehicle.crash
10
- end
11
-
12
- def test_should_be_in_stalled_state
13
- assert_equal 'stalled', @vehicle.state
14
- end
15
-
16
- def test_should_be_stalled
17
- assert @vehicle.stalled?
18
- end
19
-
20
- def test_should_be_towed
21
- assert @vehicle.auto_shop.busy?
22
- assert_equal 1, @vehicle.auto_shop.num_customers
23
- end
24
-
25
- def test_should_have_an_increased_insurance_premium
26
- assert_equal 150, @vehicle.insurance_premium
27
- end
28
-
29
- def test_should_not_allow_park
30
- refute @vehicle.park
31
- end
32
-
33
- def test_should_allow_ignite
34
- assert @vehicle.ignite
35
- end
36
-
37
- def test_should_not_change_state_when_ignited
38
- assert_equal 'stalled', @vehicle.state
39
- end
40
-
41
- def test_should_not_allow_idle
42
- refute @vehicle.idle
43
- end
44
-
45
- def test_should_now_allow_shift_up
46
- refute @vehicle.shift_up
47
- end
48
-
49
- def test_should_not_allow_shift_down
50
- refute @vehicle.shift_down
51
- end
52
-
53
- def test_should_not_allow_crash
54
- refute @vehicle.crash
55
- end
56
-
57
- def test_should_allow_repair_if_auto_shop_is_busy
58
- assert @vehicle.repair
59
- end
60
-
61
- def test_should_not_allow_repair_if_auto_shop_is_available
62
- @vehicle.auto_shop.fix_vehicle
63
- refute @vehicle.repair
64
- end
65
- end
@@ -1,20 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/vehicle'
3
-
4
- class VehicleTest < MiniTest::Test
5
- def setup
6
- @vehicle = Vehicle.new
7
- end
8
-
9
- def test_should_not_allow_access_to_subclass_events
10
- refute @vehicle.respond_to?(:reverse)
11
- end
12
-
13
- def test_should_have_human_state_names
14
- assert_equal 'parked', Vehicle.human_state_name(:parked)
15
- end
16
-
17
- def test_should_have_human_state_event_names
18
- assert_equal 'park', Vehicle.human_state_event_name(:park)
19
- end
20
- end
@@ -1,42 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/vehicle'
3
-
4
- class VehicleThirdGearTest < MiniTest::Test
5
- def setup
6
- @vehicle = Vehicle.new
7
- @vehicle.ignite
8
- 3.times { @vehicle.shift_up }
9
- end
10
-
11
- def test_should_be_in_third_gear_state
12
- assert_equal 'third_gear', @vehicle.state
13
- end
14
-
15
- def test_should_be_third_gear
16
- assert @vehicle.third_gear?
17
- end
18
-
19
- def test_should_not_allow_park
20
- refute @vehicle.park
21
- end
22
-
23
- def test_should_not_allow_idle
24
- refute @vehicle.idle
25
- end
26
-
27
- def test_should_not_allow_shift_up
28
- refute @vehicle.shift_up
29
- end
30
-
31
- def test_should_allow_shift_down
32
- assert @vehicle.shift_down
33
- end
34
-
35
- def test_should_allow_crash
36
- assert @vehicle.crash
37
- end
38
-
39
- def test_should_not_allow_repair
40
- refute @vehicle.repair
41
- end
42
- end
@@ -1,181 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/vehicle'
3
-
4
- class VehicleUnsavedTest < MiniTest::Test
5
- def setup
6
- @vehicle = Vehicle.new
7
- end
8
-
9
- def test_should_be_in_parked_state
10
- assert_equal 'parked', @vehicle.state
11
- end
12
-
13
- def test_should_raise_exception_if_checking_invalid_state
14
- assert_raises(IndexError) { @vehicle.state?(:invalid) }
15
- end
16
-
17
- def test_should_raise_exception_if_getting_name_of_invalid_state
18
- @vehicle.state = 'invalid'
19
- assert_raises(ArgumentError) { @vehicle.state_name }
20
- end
21
-
22
- def test_should_be_parked
23
- assert @vehicle.parked?
24
- assert @vehicle.state?(:parked)
25
- assert_equal :parked, @vehicle.state_name
26
- assert_equal 'parked', @vehicle.human_state_name
27
- end
28
-
29
- def test_should_not_be_idling
30
- refute @vehicle.idling?
31
- end
32
-
33
- def test_should_not_be_first_gear
34
- refute @vehicle.first_gear?
35
- end
36
-
37
- def test_should_not_be_second_gear
38
- refute @vehicle.second_gear?
39
- end
40
-
41
- def test_should_not_be_stalled
42
- refute @vehicle.stalled?
43
- end
44
-
45
- def test_should_not_be_able_to_park
46
- refute @vehicle.can_park?
47
- end
48
-
49
- def test_should_not_have_a_transition_for_park
50
- assert_nil @vehicle.park_transition
51
- end
52
-
53
- def test_should_not_allow_park
54
- refute @vehicle.park
55
- end
56
-
57
- def test_should_be_able_to_ignite
58
- assert @vehicle.can_ignite?
59
- end
60
-
61
- def test_should_have_a_transition_for_ignite
62
- transition = @vehicle.ignite_transition
63
- refute_nil transition
64
- assert_equal 'parked', transition.from
65
- assert_equal 'idling', transition.to
66
- assert_equal :ignite, transition.event
67
- assert_equal :state, transition.attribute
68
- assert_equal @vehicle, transition.object
69
- end
70
-
71
- def test_should_have_a_list_of_possible_events
72
- assert_equal [:ignite], @vehicle.state_events
73
- end
74
-
75
- def test_should_have_a_list_of_possible_transitions
76
- assert_equal [{ object: @vehicle, attribute: :state, event: :ignite, from: 'parked', to: 'idling' }], @vehicle.state_transitions.map { |transition| transition.attributes }
77
- end
78
-
79
- def test_should_have_a_list_of_possible_paths
80
- assert_equal [[
81
- StateMachines::Transition.new(@vehicle, Vehicle.state_machine, :ignite, :parked, :idling),
82
- StateMachines::Transition.new(@vehicle, Vehicle.state_machine, :shift_up, :idling, :first_gear)
83
- ]], @vehicle.state_paths(to: :first_gear)
84
- end
85
-
86
- def test_should_allow_generic_event_to_fire
87
- assert @vehicle.fire_state_event(:ignite)
88
- assert_equal 'idling', @vehicle.state
89
- end
90
-
91
- def test_should_pass_arguments_through_to_generic_event_runner
92
- @vehicle.fire_state_event(:ignite, 1, 2, 3)
93
- assert_equal [1, 2, 3], @vehicle.last_transition_args
94
- end
95
-
96
- def test_should_allow_skipping_action_through_generic_event_runner
97
- @vehicle.fire_state_event(:ignite, false)
98
- assert_equal false, @vehicle.saved
99
- end
100
-
101
- def test_should_raise_error_with_invalid_event_through_generic_event_runer
102
- assert_raises(IndexError) { @vehicle.fire_state_event(:invalid) }
103
- end
104
-
105
- def test_should_allow_ignite
106
- assert @vehicle.ignite
107
- assert_equal 'idling', @vehicle.state
108
- end
109
-
110
- def test_should_allow_ignite_with_skipped_action
111
- assert @vehicle.ignite(false)
112
- assert @vehicle.new_record?
113
- end
114
-
115
- def test_should_allow_ignite_bang
116
- assert @vehicle.ignite!
117
- end
118
-
119
- def test_should_allow_ignite_bang_with_skipped_action
120
- assert @vehicle.ignite!(false)
121
- assert @vehicle.new_record?
122
- end
123
-
124
- def test_should_be_saved_after_successful_event
125
- @vehicle.ignite
126
- refute @vehicle.new_record?
127
- end
128
-
129
- def test_should_not_allow_idle
130
- refute @vehicle.idle
131
- end
132
-
133
- def test_should_not_allow_shift_up
134
- refute @vehicle.shift_up
135
- end
136
-
137
- def test_should_not_allow_shift_down
138
- refute @vehicle.shift_down
139
- end
140
-
141
- def test_should_not_allow_crash
142
- refute @vehicle.crash
143
- end
144
-
145
- def test_should_not_allow_repair
146
- refute @vehicle.repair
147
- end
148
-
149
- def test_should_be_insurance_inactive
150
- assert @vehicle.insurance_inactive?
151
- end
152
-
153
- def test_should_be_able_to_buy
154
- assert @vehicle.can_buy_insurance?
155
- end
156
-
157
- def test_should_allow_buying_insurance
158
- assert @vehicle.buy_insurance
159
- end
160
-
161
- def test_should_allow_buying_insurance_bang
162
- assert @vehicle.buy_insurance!
163
- end
164
-
165
- def test_should_allow_ignite_buying_insurance_with_skipped_action
166
- assert @vehicle.buy_insurance!(false)
167
- assert @vehicle.new_record?
168
- end
169
-
170
- def test_should_not_be_insurance_active
171
- refute @vehicle.insurance_active?
172
- end
173
-
174
- def test_should_not_be_able_to_cancel
175
- refute @vehicle.can_cancel_insurance?
176
- end
177
-
178
- def test_should_not_allow_cancelling_insurance
179
- refute @vehicle.cancel_insurance
180
- end
181
- end
@@ -1,30 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/vehicle'
3
-
4
- class VehicleWithEventAttributesTest < MiniTest::Test
5
- def setup
6
- @vehicle = Vehicle.new
7
- @vehicle.state_event = 'ignite'
8
- end
9
-
10
- def test_should_fail_if_event_is_invalid
11
- @vehicle.state_event = 'invalid'
12
- refute @vehicle.save
13
- assert_equal 'parked', @vehicle.state
14
- end
15
-
16
- def test_should_fail_if_event_has_no_transition
17
- @vehicle.state_event = 'park'
18
- refute @vehicle.save
19
- assert_equal 'parked', @vehicle.state
20
- end
21
-
22
- def test_should_return_original_action_value_on_success
23
- assert_equal @vehicle, @vehicle.save
24
- end
25
-
26
- def test_should_transition_state_on_success
27
- @vehicle.save
28
- assert_equal 'idling', @vehicle.state
29
- end
30
- end
@@ -1,36 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/vehicle'
3
-
4
- class VehicleWithParallelEventsTest < MiniTest::Test
5
- def setup
6
- @vehicle = Vehicle.new
7
- end
8
-
9
- def test_should_fail_if_any_event_cannot_transition
10
- refute @vehicle.fire_events(:ignite, :cancel_insurance)
11
- end
12
-
13
- def test_should_be_successful_if_all_events_transition
14
- assert @vehicle.fire_events(:ignite, :buy_insurance)
15
- end
16
-
17
- def test_should_not_save_if_skipping_action
18
- assert @vehicle.fire_events(:ignite, :buy_insurance, false)
19
- refute @vehicle.saved
20
- end
21
-
22
- def test_should_raise_exception_if_any_event_cannot_transition_on_bang
23
- exception = assert_raises(StateMachines::InvalidParallelTransition) { @vehicle.fire_events!(:ignite, :cancel_insurance) }
24
- assert_equal @vehicle, exception.object
25
- assert_equal [:ignite, :cancel_insurance], exception.events
26
- end
27
-
28
- def test_should_not_raise_exception_if_all_events_transition_on_bang
29
- assert @vehicle.fire_events!(:ignite, :buy_insurance)
30
- end
31
-
32
- def test_should_not_save_if_skipping_action_on_bang
33
- assert @vehicle.fire_events!(:ignite, :buy_insurance, false)
34
- refute @vehicle.saved
35
- end
36
- end
data/test/test_helper.rb DELETED
@@ -1,15 +0,0 @@
1
- require 'state_machines'
2
- require 'minitest/autorun'
3
- begin
4
- require 'pry-byebug'
5
- rescue LoadError
6
- end
7
- require 'minitest/reporters'
8
- Minitest::Reporters.use! [Minitest::Reporters::ProgressReporter.new]
9
-
10
- class StateMachinesTest < MiniTest::Test
11
- def before_setup
12
- super
13
- StateMachines::Integrations.reset
14
- end
15
- end
@@ -1,22 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class AssertExclusiveKeysTest < StateMachinesTest
4
- def test_should_not_raise_exception_if_no_keys_found
5
- { on: :park }.assert_exclusive_keys(:only, :except)
6
- end
7
-
8
- def test_should_not_raise_exception_if_one_key_found
9
- { only: :parked }.assert_exclusive_keys(:only, :except)
10
- { except: :parked }.assert_exclusive_keys(:only, :except)
11
- end
12
-
13
- def test_should_raise_exception_if_two_keys_found
14
- exception = assert_raises(ArgumentError) { { only: :parked, except: :parked }.assert_exclusive_keys(:only, :except) }
15
- assert_equal 'Conflicting keys: only, except', exception.message
16
- end
17
-
18
- def test_should_raise_exception_if_multiple_keys_found
19
- exception = assert_raises(ArgumentError) { { only: :parked, except: :parked, on: :park }.assert_exclusive_keys(:only, :except, :with) }
20
- assert_equal 'Conflicting keys: only, except', exception.message
21
- end
22
- end
@@ -1,12 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class AssertValidKeysTest < StateMachinesTest
4
- def test_should_not_raise_exception_if_key_is_valid
5
- { name: 'foo', value: 'bar' }.assert_valid_keys(:name, :value, :force)
6
- end
7
-
8
- def test_should_raise_exception_if_key_is_invalid
9
- exception = assert_raises(ArgumentError) { { name: 'foo', value: 'bar', invalid: true }.assert_valid_keys(:name, :value, :force) }
10
- assert_equal 'Unknown key: :invalid. Valid keys are: :name, :value, :force', exception.message
11
- end
12
- end
@@ -1,28 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchTest < StateMachinesTest
4
- def setup
5
- @branch = StateMachines::Branch.new(from: :parked, to: :idling)
6
- end
7
-
8
- def test_should_not_raise_exception_if_implicit_option_specified
9
- StateMachines::Branch.new(invalid: :valid)
10
- end
11
-
12
- def test_should_not_have_an_if_condition
13
- assert_nil @branch.if_condition
14
- end
15
-
16
- def test_should_not_have_an_unless_condition
17
- assert_nil @branch.unless_condition
18
- end
19
-
20
- def test_should_have_a_state_requirement
21
- assert_equal 1, @branch.state_requirements.length
22
- end
23
-
24
- def test_should_raise_an_exception_if_invalid_match_option_specified
25
- exception = assert_raises(ArgumentError) { @branch.match(Object.new, invalid: true) }
26
- assert_equal 'Unknown key: :invalid. Valid keys are: :from, :to, :on, :guard', exception.message
27
- end
28
- end
@@ -1,27 +0,0 @@
1
- require_relative '../../test_helper'
2
-
3
- class BranchWithConflictingConditionalsTest < StateMachinesTest
4
- def setup
5
- @object = Object.new
6
- end
7
-
8
- def test_should_match_if_if_is_true_and_unless_is_false
9
- branch = StateMachines::Branch.new(if: lambda { true }, unless: lambda { false })
10
- assert branch.match(@object)
11
- end
12
-
13
- def test_should_not_match_if_if_is_false_and_unless_is_true
14
- branch = StateMachines::Branch.new(if: lambda { false }, unless: lambda { true })
15
- refute branch.match(@object)
16
- end
17
-
18
- def test_should_not_match_if_if_is_false_and_unless_is_false
19
- branch = StateMachines::Branch.new(if: lambda { false }, unless: lambda { false })
20
- refute branch.match(@object)
21
- end
22
-
23
- def test_should_not_match_if_if_is_true_and_unless_is_true
24
- branch = StateMachines::Branch.new(if: lambda { true }, unless: lambda { true })
25
- refute branch.match(@object)
26
- end
27
- end