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,22 +0,0 @@
1
- lib = File.expand_path('../lib', __FILE__)
2
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require 'state_machines/version'
4
-
5
- Gem::Specification.new do |spec|
6
- spec.name = 'state_machines'
7
- spec.version = StateMachines::VERSION
8
- spec.authors = ['Abdelkader Boudih', 'Aaron Pfeifer']
9
- spec.email = %w(terminale@gmail.com aaron@pluginaweek.org)
10
- spec.summary = %q(State machines for attributes)
11
- spec.description = %q(Adds support for creating state machines for attributes on any Ruby class)
12
- spec.homepage = 'https://github.com/state-machines/state_machines'
13
- spec.license = 'MIT'
14
-
15
- spec.required_ruby_version = '>= 2.0.0'
16
- spec.files = `git ls-files -z`.split("\x0")
17
- spec.require_paths = ['lib']
18
-
19
- spec.add_development_dependency 'bundler', '>= 1.7.6'
20
- spec.add_development_dependency 'rake'
21
- spec.add_development_dependency 'minitest', '>= 5.4'
22
- end
@@ -1,10 +0,0 @@
1
- module EventOnFailureIntegration
2
- include StateMachines::Integrations::Base
3
- def invalidate(object, _attribute, message, values = [])
4
- (object.errors ||= []) << generate_message(message, values)
5
- end
6
-
7
- def reset(object)
8
- object.errors = []
9
- end
10
- end
@@ -1,7 +0,0 @@
1
- module VehicleIntegration
2
- include StateMachines::Integrations::Base
3
-
4
- def self.matching_ancestors
5
- [Vehicle]
6
- end
7
- end
@@ -1,31 +0,0 @@
1
- class AutoShop
2
- attr_accessor :num_customers
3
-
4
- def initialize
5
- @num_customers = 0
6
- super
7
- end
8
-
9
- state_machine initial: :available do
10
- after_transition available: any, do: :increment_customers
11
- after_transition busy: any, do: :decrement_customers
12
-
13
- event :tow_vehicle do
14
- transition available: :busy
15
- end
16
-
17
- event :fix_vehicle do
18
- transition busy: :available
19
- end
20
- end
21
-
22
- # Increments the number of customers in service
23
- def increment_customers
24
- self.num_customers += 1
25
- end
26
-
27
- # Decrements the number of customers in service
28
- def decrement_customers
29
- self.num_customers -= 1
30
- end
31
- end
@@ -1,21 +0,0 @@
1
- require_relative '../../files/models/vehicle'
2
-
3
- class Car < Vehicle
4
- state_machine do
5
- event :reverse do
6
- transition [:parked, :idling, :first_gear] => :backing_up
7
- end
8
-
9
- event :park do
10
- transition backing_up: :parked
11
- end
12
-
13
- event :idle do
14
- transition backing_up: :idling
15
- end
16
-
17
- event :shift_up do
18
- transition backing_up: :first_gear
19
- end
20
- end
21
- end
@@ -1,13 +0,0 @@
1
- require_relative 'model_base'
2
-
3
- class Driver < ModelBase
4
- state_machine :status, :initial => :parked do
5
- event :park do
6
- transition :idling => :parked
7
- end
8
-
9
- event :ignite do
10
- transition :parked => :idling
11
- end
12
- end
13
- end
@@ -1,6 +0,0 @@
1
- class ModelBase
2
- def save
3
- @saved = true
4
- self
5
- end
6
- end
@@ -1,16 +0,0 @@
1
- require_relative '../../files/models/vehicle'
2
-
3
- class Motorcycle < Vehicle
4
- def self.example_class_method(args={})
5
- end
6
-
7
- state_machine initial: :idling do
8
- state :first_gear do
9
- def decibels
10
- 1.0
11
- end
12
-
13
- example_class_method
14
- end
15
- end
16
- end
@@ -1,47 +0,0 @@
1
- class TrafficLight
2
- state_machine initial: :stop do
3
- event :cycle do
4
- transition stop: :proceed, proceed: :caution, caution: :stop
5
- end
6
-
7
- state :stop do
8
- def color(transform)
9
- value = 'red'
10
-
11
- if block_given?
12
- yield value
13
- else
14
- value.send(transform)
15
- end
16
-
17
- value
18
- end
19
- end
20
-
21
- state all - :proceed do
22
- def capture_violations?
23
- true
24
- end
25
- end
26
-
27
- state :proceed do
28
- def color(_transform)
29
- 'green'
30
- end
31
-
32
- def capture_violations?
33
- false
34
- end
35
- end
36
-
37
- state :caution do
38
- def color(_transform)
39
- 'yellow'
40
- end
41
- end
42
- end
43
-
44
- def color(transform = :to_s)
45
- super
46
- end
47
- end
@@ -1,127 +0,0 @@
1
- require_relative 'model_base'
2
- require_relative 'auto_shop'
3
-
4
- class Vehicle < ModelBase
5
- attr_accessor :auto_shop, :seatbelt_on, :insurance_premium, :force_idle, :callbacks, :saved, :time_elapsed, :last_transition_args
6
-
7
- def initialize(attributes = {})
8
- attributes = {
9
- auto_shop: AutoShop.new,
10
- seatbelt_on: false,
11
- insurance_premium: 50,
12
- force_idle: false,
13
- callbacks: [],
14
- saved: false
15
- }.merge(attributes)
16
-
17
- attributes.each { |attr, value| send("#{attr}=", value) }
18
- super()
19
- end
20
-
21
- # Defines the state machine for the state of the vehicled
22
- state_machine initial: ->(vehicle) { vehicle.force_idle ? :idling : :parked }, action: :save do
23
- before_transition { |vehicle, transition| vehicle.last_transition_args = transition.args }
24
- before_transition parked: any, do: :put_on_seatbelt
25
- before_transition any => :stalled, :do => :increase_insurance_premium
26
- after_transition any => :parked, :do => lambda { |vehicle| vehicle.seatbelt_on = false }
27
- after_transition on: :crash, do: :tow
28
- after_transition on: :repair, do: :fix
29
-
30
- # Callback tracking for initial state callbacks
31
- after_transition any => :parked, :do => ->(vehicle) { vehicle.callbacks << 'before_enter_parked' }
32
- before_transition any => :idling, :do => ->(vehicle) { vehicle.callbacks << 'before_enter_idling' }
33
-
34
- around_transition do |vehicle, _transition, block|
35
- time = Time.now
36
- block.call
37
- vehicle.time_elapsed = Time.now - time
38
- end
39
-
40
- event all do
41
- transition locked: :parked
42
- end
43
-
44
- event :park do
45
- transition [:idling, :first_gear] => :parked
46
- end
47
-
48
- event :ignite do
49
- transition stalled: :stalled
50
- transition parked: :idling
51
- end
52
-
53
- event :idle do
54
- transition first_gear: :idling
55
- end
56
-
57
- event :shift_up do
58
- transition idling: :first_gear, first_gear: :second_gear, second_gear: :third_gear
59
- end
60
-
61
- event :shift_down do
62
- transition third_gear: :second_gear
63
- transition second_gear: :first_gear
64
- end
65
-
66
- event :crash do
67
- transition [:first_gear, :second_gear, :third_gear] => :stalled, :if => ->(vehicle) { vehicle.auto_shop.available? }
68
- end
69
-
70
- event :repair do
71
- transition stalled: :parked, if: :auto_shop_busy?
72
- end
73
- end
74
-
75
- state_machine :insurance_state, initial: :inactive, namespace: 'insurance' do
76
- event :buy do
77
- transition inactive: :active
78
- end
79
-
80
- event :cancel do
81
- transition active: :inactive
82
- end
83
- end
84
-
85
- def save
86
- super
87
- end
88
-
89
- def new_record?
90
- @saved == false
91
- end
92
-
93
- def park
94
- super
95
- end
96
-
97
- # Tows the vehicle to the auto shop
98
- def tow
99
- auto_shop.tow_vehicle
100
- end
101
-
102
- # Fixes the vehicle; it will no longer be in the auto shop
103
- def fix
104
- auto_shop.fix_vehicle
105
- end
106
-
107
- def decibels
108
- 0.0
109
- end
110
-
111
- private
112
-
113
- # Safety first! Puts on our seatbelt
114
- def put_on_seatbelt
115
- self.seatbelt_on = true
116
- end
117
-
118
- # We crashed! Increase the insurance premium on the vehicle
119
- def increase_insurance_premium
120
- self.insurance_premium += 100
121
- end
122
-
123
- # Is the auto shop currently servicing another customer?
124
- def auto_shop_busy?
125
- auto_shop.busy?
126
- end
127
- end
data/test/files/node.rb DELETED
@@ -1,5 +0,0 @@
1
- class Node < Struct.new(:name, :value, :machine)
2
- def context
3
- yield
4
- end
5
- end
data/test/files/switch.rb DELETED
@@ -1,15 +0,0 @@
1
- class Switch
2
- def self.name
3
- @name ||= "Switch_#{rand(1_000_000)}"
4
- end
5
-
6
- state_machine do
7
- event :turn_on do
8
- transition all => :on
9
- end
10
-
11
- event :turn_off do
12
- transition all => :off
13
- end
14
- end
15
- end
@@ -1,20 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/auto_shop'
3
-
4
- class AutoShopAvailableTest < MiniTest::Test
5
- def setup
6
- @auto_shop = AutoShop.new
7
- end
8
-
9
- def test_should_be_in_available_state
10
- assert_equal 'available', @auto_shop.state
11
- end
12
-
13
- def test_should_allow_tow_vehicle
14
- assert @auto_shop.tow_vehicle
15
- end
16
-
17
- def test_should_not_allow_fix_vehicle
18
- refute @auto_shop.fix_vehicle
19
- end
20
- end
@@ -1,25 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/auto_shop'
3
-
4
- class AutoShopBusyTest < MiniTest::Test
5
- def setup
6
- @auto_shop = AutoShop.new
7
- @auto_shop.tow_vehicle
8
- end
9
-
10
- def test_should_be_in_busy_state
11
- assert_equal 'busy', @auto_shop.state
12
- end
13
-
14
- def test_should_have_incremented_number_of_customers
15
- assert_equal 1, @auto_shop.num_customers
16
- end
17
-
18
- def test_should_not_allow_tow_vehicle
19
- refute @auto_shop.tow_vehicle
20
- end
21
-
22
- def test_should_allow_fix_vehicle
23
- assert @auto_shop.fix_vehicle
24
- end
25
- end
@@ -1,45 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/car'
3
-
4
- class CarBackingUpTest < MiniTest::Test
5
- def setup
6
- @car = Car.new
7
- @car.reverse
8
- end
9
-
10
- def test_should_be_in_backing_up_state
11
- assert_equal 'backing_up', @car.state
12
- end
13
-
14
- def test_should_allow_park
15
- assert @car.park
16
- end
17
-
18
- def test_should_not_allow_ignite
19
- refute @car.ignite
20
- end
21
-
22
- def test_should_allow_idle
23
- assert @car.idle
24
- end
25
-
26
- def test_should_allow_shift_up
27
- assert @car.shift_up
28
- end
29
-
30
- def test_should_not_allow_shift_down
31
- refute @car.shift_down
32
- end
33
-
34
- def test_should_not_allow_crash
35
- refute @car.crash
36
- end
37
-
38
- def test_should_not_allow_repair
39
- refute @car.repair
40
- end
41
-
42
- def test_should_not_allow_reverse
43
- refute @car.reverse
44
- end
45
- end
@@ -1,49 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/car'
3
-
4
- class CarTest < MiniTest::Test
5
- def setup
6
- @car = Car.new
7
- end
8
-
9
- def test_should_be_in_parked_state
10
- assert_equal 'parked', @car.state
11
- end
12
-
13
- def test_should_not_have_the_seatbelt_on
14
- refute @car.seatbelt_on
15
- end
16
-
17
- def test_should_not_allow_park
18
- refute @car.park
19
- end
20
-
21
- def test_should_allow_ignite
22
- assert @car.ignite
23
- assert_equal 'idling', @car.state
24
- end
25
-
26
- def test_should_not_allow_idle
27
- refute @car.idle
28
- end
29
-
30
- def test_should_not_allow_shift_up
31
- refute @car.shift_up
32
- end
33
-
34
- def test_should_not_allow_shift_down
35
- refute @car.shift_down
36
- end
37
-
38
- def test_should_not_allow_crash
39
- refute @car.crash
40
- end
41
-
42
- def test_should_not_allow_repair
43
- refute @car.repair
44
- end
45
-
46
- def test_should_allow_reverse
47
- assert @car.reverse
48
- end
49
- end
@@ -1,13 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/driver'
3
-
4
- class DriverNonstandardTest < MiniTest::Test
5
- def setup
6
- @driver = Driver.new
7
- @events = Driver.state_machine.events
8
- end
9
-
10
- def test_should_have
11
- assert_equal 1, @events.transitions_for(@driver).size
12
- end
13
- end
@@ -1,52 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/motorcycle'
3
-
4
- class MotorcycleTest < MiniTest::Test
5
- def setup
6
- @motorcycle = Motorcycle.new
7
- end
8
-
9
- def test_should_be_in_idling_state
10
- assert_equal 'idling', @motorcycle.state
11
- end
12
-
13
- def test_should_allow_park
14
- assert @motorcycle.park
15
- end
16
-
17
- def test_should_not_allow_ignite
18
- refute @motorcycle.ignite
19
- end
20
-
21
- def test_should_allow_shift_up
22
- assert @motorcycle.shift_up
23
- end
24
-
25
- def test_should_not_allow_shift_down
26
- refute @motorcycle.shift_down
27
- end
28
-
29
- def test_should_not_allow_crash
30
- refute @motorcycle.crash
31
- end
32
-
33
- def test_should_not_allow_repair
34
- refute @motorcycle.repair
35
- end
36
-
37
- def test_should_inherit_decibels_from_superclass
38
- @motorcycle.park
39
- assert_equal 0.0, @motorcycle.decibels
40
- end
41
-
42
- def test_should_use_decibels_defined_in_state
43
- @motorcycle.shift_up
44
- assert_equal 1.0, @motorcycle.decibels
45
- end
46
-
47
- def test_should_not_inherit_from_superclass_if_value_is_set
48
- vehicle = Vehicle.new
49
- @motorcycle.shift_up
50
- assert_equal 0.0, vehicle.decibels
51
- end
52
- end
@@ -1,17 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/traffic_light'
3
-
4
- class TrafficLightCautionTest < MiniTest::Test
5
- def setup
6
- @light = TrafficLight.new
7
- @light.state = 'caution'
8
- end
9
-
10
- def test_should_use_caution_color
11
- assert_equal 'yellow', @light.color
12
- end
13
-
14
- def test_should_use_caution_capture_violations
15
- assert_equal true, @light.capture_violations?
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/traffic_light'
3
-
4
- class TrafficLightProceedTest < MiniTest::Test
5
- def setup
6
- @light = TrafficLight.new
7
- @light.state = 'proceed'
8
- end
9
-
10
- def test_should_use_proceed_color
11
- assert_equal 'green', @light.color
12
- end
13
-
14
- def test_should_use_proceed_capture_violations
15
- assert_equal false, @light.capture_violations?
16
- end
17
- end
@@ -1,26 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/traffic_light'
3
-
4
- class TrafficLightStopTest < MiniTest::Test
5
- def setup
6
- @light = TrafficLight.new
7
- @light.state = 'stop'
8
- end
9
-
10
- def test_should_use_stop_color
11
- assert_equal 'red', @light.color
12
- end
13
-
14
- def test_should_pass_arguments_through
15
- assert_equal 'RED', @light.color(:upcase!)
16
- end
17
-
18
- def test_should_pass_block_through
19
- color = @light.color { |value| value.upcase! }
20
- assert_equal 'RED', color
21
- end
22
-
23
- def test_should_use_stop_capture_violations
24
- assert_equal true, @light.capture_violations?
25
- end
26
- end
@@ -1,42 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/vehicle'
3
-
4
- class VehicleFirstGearTest < MiniTest::Test
5
- def setup
6
- @vehicle = Vehicle.new
7
- @vehicle.ignite
8
- @vehicle.shift_up
9
- end
10
-
11
- def test_should_be_in_first_gear_state
12
- assert_equal 'first_gear', @vehicle.state
13
- end
14
-
15
- def test_should_be_first_gear
16
- assert @vehicle.first_gear?
17
- end
18
-
19
- def test_should_allow_park
20
- assert @vehicle.park
21
- end
22
-
23
- def test_should_allow_idle
24
- assert @vehicle.idle
25
- end
26
-
27
- def test_should_allow_shift_up
28
- assert @vehicle.shift_up
29
- end
30
-
31
- def test_should_not_allow_shift_down
32
- refute @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