rspec 0.0.10 → 0.1.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 (395) hide show
  1. data/CHANGES +8 -0
  2. data/README +20 -0
  3. data/Rakefile.rb +122 -0
  4. data/lib/rspec.rb +9 -0
  5. data/lib/spec.rb +4 -29
  6. data/lib/spec/context.rb +61 -0
  7. data/lib/spec/{mocks/errors.rb → exceptions.rb} +5 -4
  8. data/lib/spec/expectations.rb +61 -50
  9. data/lib/spec/mock.rb +104 -0
  10. data/lib/spec/text_runner.rb +84 -0
  11. metadata +48 -452
  12. data/.autotest +0 -3
  13. data/.gitignore +0 -7
  14. data/History.txt +0 -1104
  15. data/MIT-LICENSE +0 -20
  16. data/Manifest.txt +0 -387
  17. data/README.txt +0 -36
  18. data/Rakefile +0 -88
  19. data/TODO +0 -1
  20. data/bin/autospec +0 -3
  21. data/bin/spec +0 -4
  22. data/bin/spec_translator +0 -8
  23. data/examples/pure/autogenerated_docstrings_example.rb +0 -19
  24. data/examples/pure/before_and_after_example.rb +0 -40
  25. data/examples/pure/behave_as_example.rb +0 -45
  26. data/examples/pure/custom_expectation_matchers.rb +0 -54
  27. data/examples/pure/custom_formatter.rb +0 -12
  28. data/examples/pure/dynamic_spec.rb +0 -9
  29. data/examples/pure/file_accessor.rb +0 -19
  30. data/examples/pure/file_accessor_spec.rb +0 -38
  31. data/examples/pure/greeter_spec.rb +0 -31
  32. data/examples/pure/helper_method_example.rb +0 -14
  33. data/examples/pure/io_processor.rb +0 -8
  34. data/examples/pure/io_processor_spec.rb +0 -21
  35. data/examples/pure/legacy_spec.rb +0 -11
  36. data/examples/pure/mocking_example.rb +0 -27
  37. data/examples/pure/multi_threaded_behaviour_runner.rb +0 -28
  38. data/examples/pure/nested_classes_example.rb +0 -36
  39. data/examples/pure/partial_mock_example.rb +0 -29
  40. data/examples/pure/pending_example.rb +0 -20
  41. data/examples/pure/predicate_example.rb +0 -27
  42. data/examples/pure/priority.txt +0 -1
  43. data/examples/pure/shared_example_group_example.rb +0 -81
  44. data/examples/pure/shared_stack_examples.rb +0 -38
  45. data/examples/pure/spec_helper.rb +0 -3
  46. data/examples/pure/stack.rb +0 -36
  47. data/examples/pure/stack_spec.rb +0 -63
  48. data/examples/pure/stack_spec_with_nested_example_groups.rb +0 -67
  49. data/examples/pure/stubbing_example.rb +0 -69
  50. data/examples/stories/adder.rb +0 -13
  51. data/examples/stories/addition +0 -34
  52. data/examples/stories/addition.rb +0 -9
  53. data/examples/stories/calculator.rb +0 -65
  54. data/examples/stories/game-of-life/.loadpath +0 -5
  55. data/examples/stories/game-of-life/README.txt +0 -21
  56. data/examples/stories/game-of-life/behaviour/everything.rb +0 -6
  57. data/examples/stories/game-of-life/behaviour/examples/examples.rb +0 -3
  58. data/examples/stories/game-of-life/behaviour/examples/game_behaviour.rb +0 -35
  59. data/examples/stories/game-of-life/behaviour/examples/grid_behaviour.rb +0 -66
  60. data/examples/stories/game-of-life/behaviour/stories/CellsWithLessThanTwoNeighboursDie.story +0 -21
  61. data/examples/stories/game-of-life/behaviour/stories/CellsWithMoreThanThreeNeighboursDie.story +0 -21
  62. data/examples/stories/game-of-life/behaviour/stories/EmptySpacesWithThreeNeighboursCreateACell.story +0 -42
  63. data/examples/stories/game-of-life/behaviour/stories/ICanCreateACell.story +0 -42
  64. data/examples/stories/game-of-life/behaviour/stories/ICanKillACell.story +0 -17
  65. data/examples/stories/game-of-life/behaviour/stories/TheGridWraps.story +0 -53
  66. data/examples/stories/game-of-life/behaviour/stories/create_a_cell.rb +0 -52
  67. data/examples/stories/game-of-life/behaviour/stories/helper.rb +0 -6
  68. data/examples/stories/game-of-life/behaviour/stories/kill_a_cell.rb +0 -26
  69. data/examples/stories/game-of-life/behaviour/stories/steps.rb +0 -5
  70. data/examples/stories/game-of-life/behaviour/stories/stories.rb +0 -3
  71. data/examples/stories/game-of-life/behaviour/stories/stories.txt +0 -22
  72. data/examples/stories/game-of-life/life.rb +0 -3
  73. data/examples/stories/game-of-life/life/game.rb +0 -23
  74. data/examples/stories/game-of-life/life/grid.rb +0 -43
  75. data/examples/stories/helper.rb +0 -9
  76. data/examples/stories/steps/addition_steps.rb +0 -18
  77. data/failing_examples/README.txt +0 -7
  78. data/failing_examples/diffing_spec.rb +0 -36
  79. data/failing_examples/failing_autogenerated_docstrings_example.rb +0 -19
  80. data/failing_examples/failure_in_setup.rb +0 -10
  81. data/failing_examples/failure_in_teardown.rb +0 -10
  82. data/failing_examples/mocking_example.rb +0 -40
  83. data/failing_examples/mocking_with_flexmock.rb +0 -26
  84. data/failing_examples/mocking_with_mocha.rb +0 -25
  85. data/failing_examples/mocking_with_rr.rb +0 -27
  86. data/failing_examples/partial_mock_example.rb +0 -20
  87. data/failing_examples/predicate_example.rb +0 -29
  88. data/failing_examples/raising_example.rb +0 -47
  89. data/failing_examples/spec_helper.rb +0 -3
  90. data/failing_examples/syntax_error_example.rb +0 -7
  91. data/failing_examples/team_spec.rb +0 -44
  92. data/failing_examples/timeout_behaviour.rb +0 -7
  93. data/init.rb +0 -9
  94. data/lib/autotest/discover.rb +0 -3
  95. data/lib/autotest/rspec.rb +0 -72
  96. data/lib/spec/adapters.rb +0 -1
  97. data/lib/spec/adapters/ruby_engine.rb +0 -26
  98. data/lib/spec/adapters/ruby_engine/mri.rb +0 -8
  99. data/lib/spec/adapters/ruby_engine/rubinius.rb +0 -8
  100. data/lib/spec/example.rb +0 -12
  101. data/lib/spec/example/configuration.rb +0 -158
  102. data/lib/spec/example/errors.rb +0 -9
  103. data/lib/spec/example/example_group.rb +0 -17
  104. data/lib/spec/example/example_group_factory.rb +0 -64
  105. data/lib/spec/example/example_group_methods.rb +0 -440
  106. data/lib/spec/example/example_matcher.rb +0 -44
  107. data/lib/spec/example/example_methods.rb +0 -112
  108. data/lib/spec/example/module_inclusion_warnings.rb +0 -38
  109. data/lib/spec/example/module_reopening_fix.rb +0 -21
  110. data/lib/spec/example/pending.rb +0 -18
  111. data/lib/spec/example/shared_example_group.rb +0 -58
  112. data/lib/spec/expectations/differs/default.rb +0 -66
  113. data/lib/spec/expectations/errors.rb +0 -12
  114. data/lib/spec/expectations/extensions.rb +0 -2
  115. data/lib/spec/expectations/extensions/object.rb +0 -63
  116. data/lib/spec/expectations/extensions/string_and_symbol.rb +0 -17
  117. data/lib/spec/expectations/handler.rb +0 -62
  118. data/lib/spec/extensions.rb +0 -4
  119. data/lib/spec/extensions/class.rb +0 -24
  120. data/lib/spec/extensions/main.rb +0 -102
  121. data/lib/spec/extensions/metaclass.rb +0 -7
  122. data/lib/spec/extensions/object.rb +0 -6
  123. data/lib/spec/interop/test.rb +0 -12
  124. data/lib/spec/interop/test/unit/autorunner.rb +0 -6
  125. data/lib/spec/interop/test/unit/testcase.rb +0 -61
  126. data/lib/spec/interop/test/unit/testresult.rb +0 -6
  127. data/lib/spec/interop/test/unit/testsuite_adapter.rb +0 -34
  128. data/lib/spec/interop/test/unit/ui/console/testrunner.rb +0 -61
  129. data/lib/spec/matchers.rb +0 -156
  130. data/lib/spec/matchers/be.rb +0 -224
  131. data/lib/spec/matchers/be_close.rb +0 -37
  132. data/lib/spec/matchers/change.rb +0 -148
  133. data/lib/spec/matchers/eql.rb +0 -43
  134. data/lib/spec/matchers/equal.rb +0 -43
  135. data/lib/spec/matchers/exist.rb +0 -17
  136. data/lib/spec/matchers/has.rb +0 -34
  137. data/lib/spec/matchers/have.rb +0 -149
  138. data/lib/spec/matchers/include.rb +0 -70
  139. data/lib/spec/matchers/match.rb +0 -41
  140. data/lib/spec/matchers/operator_matcher.rb +0 -73
  141. data/lib/spec/matchers/raise_error.rb +0 -132
  142. data/lib/spec/matchers/respond_to.rb +0 -45
  143. data/lib/spec/matchers/satisfy.rb +0 -47
  144. data/lib/spec/matchers/simple_matcher.rb +0 -132
  145. data/lib/spec/matchers/throw_symbol.rb +0 -74
  146. data/lib/spec/mocks.rb +0 -211
  147. data/lib/spec/mocks/argument_constraint_matchers.rb +0 -31
  148. data/lib/spec/mocks/argument_expectation.rb +0 -216
  149. data/lib/spec/mocks/error_generator.rb +0 -84
  150. data/lib/spec/mocks/extensions.rb +0 -1
  151. data/lib/spec/mocks/extensions/object.rb +0 -3
  152. data/lib/spec/mocks/framework.rb +0 -15
  153. data/lib/spec/mocks/message_expectation.rb +0 -290
  154. data/lib/spec/mocks/methods.rb +0 -39
  155. data/lib/spec/mocks/mock.rb +0 -56
  156. data/lib/spec/mocks/order_group.rb +0 -29
  157. data/lib/spec/mocks/proxy.rb +0 -184
  158. data/lib/spec/mocks/space.rb +0 -28
  159. data/lib/spec/mocks/spec_methods.rb +0 -38
  160. data/lib/spec/rake/spectask.rb +0 -227
  161. data/lib/spec/rake/verify_rcov.rb +0 -52
  162. data/lib/spec/runner.rb +0 -201
  163. data/lib/spec/runner/backtrace_tweaker.rb +0 -57
  164. data/lib/spec/runner/class_and_arguments_parser.rb +0 -16
  165. data/lib/spec/runner/command_line.rb +0 -28
  166. data/lib/spec/runner/drb_command_line.rb +0 -20
  167. data/lib/spec/runner/example_group_runner.rb +0 -59
  168. data/lib/spec/runner/formatter/base_formatter.rb +0 -77
  169. data/lib/spec/runner/formatter/base_text_formatter.rb +0 -130
  170. data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +0 -27
  171. data/lib/spec/runner/formatter/failing_examples_formatter.rb +0 -20
  172. data/lib/spec/runner/formatter/html_formatter.rb +0 -337
  173. data/lib/spec/runner/formatter/nested_text_formatter.rb +0 -65
  174. data/lib/spec/runner/formatter/profile_formatter.rb +0 -51
  175. data/lib/spec/runner/formatter/progress_bar_formatter.rb +0 -34
  176. data/lib/spec/runner/formatter/snippet_extractor.rb +0 -52
  177. data/lib/spec/runner/formatter/specdoc_formatter.rb +0 -39
  178. data/lib/spec/runner/formatter/story/html_formatter.rb +0 -161
  179. data/lib/spec/runner/formatter/story/plain_text_formatter.rb +0 -188
  180. data/lib/spec/runner/formatter/text_mate_formatter.rb +0 -16
  181. data/lib/spec/runner/heckle_runner.rb +0 -72
  182. data/lib/spec/runner/heckle_runner_unsupported.rb +0 -10
  183. data/lib/spec/runner/option_parser.rb +0 -203
  184. data/lib/spec/runner/options.rb +0 -309
  185. data/lib/spec/runner/reporter.rb +0 -147
  186. data/lib/spec/runner/spec_parser.rb +0 -71
  187. data/lib/spec/story.rb +0 -10
  188. data/lib/spec/story/extensions.rb +0 -3
  189. data/lib/spec/story/extensions/main.rb +0 -86
  190. data/lib/spec/story/extensions/regexp.rb +0 -9
  191. data/lib/spec/story/extensions/string.rb +0 -9
  192. data/lib/spec/story/given_scenario.rb +0 -14
  193. data/lib/spec/story/runner.rb +0 -60
  194. data/lib/spec/story/runner/plain_text_story_runner.rb +0 -48
  195. data/lib/spec/story/runner/scenario_collector.rb +0 -18
  196. data/lib/spec/story/runner/scenario_runner.rb +0 -54
  197. data/lib/spec/story/runner/story_mediator.rb +0 -137
  198. data/lib/spec/story/runner/story_parser.rb +0 -247
  199. data/lib/spec/story/runner/story_runner.rb +0 -70
  200. data/lib/spec/story/scenario.rb +0 -14
  201. data/lib/spec/story/step.rb +0 -70
  202. data/lib/spec/story/step_group.rb +0 -89
  203. data/lib/spec/story/step_mother.rb +0 -37
  204. data/lib/spec/story/story.rb +0 -39
  205. data/lib/spec/story/world.rb +0 -128
  206. data/lib/spec/translator.rb +0 -114
  207. data/lib/spec/version.rb +0 -13
  208. data/plugins/mock_frameworks/flexmock.rb +0 -23
  209. data/plugins/mock_frameworks/mocha.rb +0 -19
  210. data/plugins/mock_frameworks/rr.rb +0 -21
  211. data/plugins/mock_frameworks/rspec.rb +0 -20
  212. data/rake_tasks/examples.rake +0 -7
  213. data/rake_tasks/examples_with_rcov.rake +0 -9
  214. data/rake_tasks/failing_examples_with_html.rake +0 -9
  215. data/rake_tasks/verify_rcov.rake +0 -7
  216. data/spec/README.jruby +0 -15
  217. data/spec/autotest/discover_spec.rb +0 -19
  218. data/spec/autotest/rspec_spec.rb +0 -206
  219. data/spec/autotest_helper.rb +0 -6
  220. data/spec/autotest_matchers.rb +0 -47
  221. data/spec/rspec_suite.rb +0 -7
  222. data/spec/ruby_forker.rb +0 -13
  223. data/spec/spec.opts +0 -6
  224. data/spec/spec/adapters/ruby_engine_spec.rb +0 -16
  225. data/spec/spec/example/configuration_spec.rb +0 -282
  226. data/spec/spec/example/example_group/described_module_spec.rb +0 -20
  227. data/spec/spec/example/example_group/warning_messages_spec.rb +0 -76
  228. data/spec/spec/example/example_group_class_definition_spec.rb +0 -48
  229. data/spec/spec/example/example_group_factory_spec.rb +0 -144
  230. data/spec/spec/example/example_group_methods_spec.rb +0 -572
  231. data/spec/spec/example/example_group_spec.rb +0 -723
  232. data/spec/spec/example/example_matcher_spec.rb +0 -96
  233. data/spec/spec/example/example_methods_spec.rb +0 -126
  234. data/spec/spec/example/example_runner_spec.rb +0 -194
  235. data/spec/spec/example/example_spec.rb +0 -53
  236. data/spec/spec/example/nested_example_group_spec.rb +0 -71
  237. data/spec/spec/example/pending_module_spec.rb +0 -42
  238. data/spec/spec/example/predicate_matcher_spec.rb +0 -21
  239. data/spec/spec/example/shared_example_group_spec.rb +0 -265
  240. data/spec/spec/example/subclassing_example_group_spec.rb +0 -25
  241. data/spec/spec/expectations/differs/default_spec.rb +0 -127
  242. data/spec/spec/expectations/extensions/object_spec.rb +0 -107
  243. data/spec/spec/expectations/fail_with_spec.rb +0 -71
  244. data/spec/spec/extensions/main_spec.rb +0 -76
  245. data/spec/spec/interop/test/unit/resources/spec_that_fails.rb +0 -10
  246. data/spec/spec/interop/test/unit/resources/spec_that_passes.rb +0 -10
  247. data/spec/spec/interop/test/unit/resources/spec_with_errors.rb +0 -10
  248. data/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +0 -10
  249. data/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +0 -10
  250. data/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +0 -10
  251. data/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +0 -38
  252. data/spec/spec/interop/test/unit/spec_spec.rb +0 -45
  253. data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +0 -14
  254. data/spec/spec/interop/test/unit/testcase_spec.rb +0 -45
  255. data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +0 -9
  256. data/spec/spec/matchers/be_close_spec.rb +0 -39
  257. data/spec/spec/matchers/be_spec.rb +0 -248
  258. data/spec/spec/matchers/change_spec.rb +0 -317
  259. data/spec/spec/matchers/description_generation_spec.rb +0 -153
  260. data/spec/spec/matchers/eql_spec.rb +0 -28
  261. data/spec/spec/matchers/equal_spec.rb +0 -28
  262. data/spec/spec/matchers/exist_spec.rb +0 -57
  263. data/spec/spec/matchers/handler_spec.rb +0 -150
  264. data/spec/spec/matchers/has_spec.rb +0 -53
  265. data/spec/spec/matchers/have_spec.rb +0 -293
  266. data/spec/spec/matchers/include_spec.rb +0 -45
  267. data/spec/spec/matchers/match_spec.rb +0 -37
  268. data/spec/spec/matchers/matcher_methods_spec.rb +0 -78
  269. data/spec/spec/matchers/mock_constraint_matchers_spec.rb +0 -24
  270. data/spec/spec/matchers/operator_matcher_spec.rb +0 -168
  271. data/spec/spec/matchers/raise_error_spec.rb +0 -315
  272. data/spec/spec/matchers/respond_to_spec.rb +0 -54
  273. data/spec/spec/matchers/satisfy_spec.rb +0 -36
  274. data/spec/spec/matchers/simple_matcher_spec.rb +0 -93
  275. data/spec/spec/matchers/throw_symbol_spec.rb +0 -54
  276. data/spec/spec/mocks/any_number_of_times_spec.rb +0 -29
  277. data/spec/spec/mocks/argument_expectation_spec.rb +0 -23
  278. data/spec/spec/mocks/at_least_spec.rb +0 -97
  279. data/spec/spec/mocks/at_most_spec.rb +0 -93
  280. data/spec/spec/mocks/bug_report_10260_spec.rb +0 -8
  281. data/spec/spec/mocks/bug_report_10263_spec.rb +0 -24
  282. data/spec/spec/mocks/bug_report_11545_spec.rb +0 -33
  283. data/spec/spec/mocks/bug_report_15719_spec.rb +0 -30
  284. data/spec/spec/mocks/bug_report_7611_spec.rb +0 -19
  285. data/spec/spec/mocks/bug_report_7805_spec.rb +0 -22
  286. data/spec/spec/mocks/bug_report_8165_spec.rb +0 -31
  287. data/spec/spec/mocks/bug_report_8302_spec.rb +0 -26
  288. data/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +0 -130
  289. data/spec/spec/mocks/hash_including_matcher_spec.rb +0 -32
  290. data/spec/spec/mocks/mock_ordering_spec.rb +0 -84
  291. data/spec/spec/mocks/mock_space_spec.rb +0 -54
  292. data/spec/spec/mocks/mock_spec.rb +0 -494
  293. data/spec/spec/mocks/multiple_return_value_spec.rb +0 -113
  294. data/spec/spec/mocks/null_object_mock_spec.rb +0 -40
  295. data/spec/spec/mocks/once_counts_spec.rb +0 -53
  296. data/spec/spec/mocks/options_hash_spec.rb +0 -45
  297. data/spec/spec/mocks/partial_mock_spec.rb +0 -142
  298. data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +0 -66
  299. data/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +0 -175
  300. data/spec/spec/mocks/precise_counts_spec.rb +0 -52
  301. data/spec/spec/mocks/record_messages_spec.rb +0 -26
  302. data/spec/spec/mocks/stub_spec.rb +0 -181
  303. data/spec/spec/mocks/twice_counts_spec.rb +0 -67
  304. data/spec/spec/package/bin_spec_spec.rb +0 -14
  305. data/spec/spec/runner/class_and_argument_parser_spec.rb +0 -23
  306. data/spec/spec/runner/command_line_spec.rb +0 -147
  307. data/spec/spec/runner/drb_command_line_spec.rb +0 -92
  308. data/spec/spec/runner/empty_file.txt +0 -0
  309. data/spec/spec/runner/examples.txt +0 -2
  310. data/spec/spec/runner/execution_context_spec.rb +0 -37
  311. data/spec/spec/runner/failed.txt +0 -3
  312. data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +0 -45
  313. data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +0 -33
  314. data/spec/spec/runner/formatter/html_formatted-1.8.4.html +0 -365
  315. data/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html +0 -387
  316. data/spec/spec/runner/formatter/html_formatted-1.8.5.html +0 -371
  317. data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +0 -381
  318. data/spec/spec/runner/formatter/html_formatted-1.8.6.html +0 -370
  319. data/spec/spec/runner/formatter/html_formatter_spec.rb +0 -63
  320. data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +0 -333
  321. data/spec/spec/runner/formatter/profile_formatter_spec.rb +0 -65
  322. data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +0 -137
  323. data/spec/spec/runner/formatter/snippet_extractor_spec.rb +0 -18
  324. data/spec/spec/runner/formatter/spec_mate_formatter_spec.rb +0 -103
  325. data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +0 -158
  326. data/spec/spec/runner/formatter/story/html_formatter_spec.rb +0 -87
  327. data/spec/spec/runner/formatter/story/plain_text_formatter_spec.rb +0 -548
  328. data/spec/spec/runner/formatter/text_mate_formatted-1.8.4.html +0 -365
  329. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +0 -370
  330. data/spec/spec/runner/heckle_runner_spec.rb +0 -78
  331. data/spec/spec/runner/heckler_spec.rb +0 -13
  332. data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +0 -45
  333. data/spec/spec/runner/option_parser_spec.rb +0 -394
  334. data/spec/spec/runner/options_spec.rb +0 -450
  335. data/spec/spec/runner/output_one_time_fixture.rb +0 -7
  336. data/spec/spec/runner/output_one_time_fixture_runner.rb +0 -8
  337. data/spec/spec/runner/output_one_time_spec.rb +0 -16
  338. data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +0 -56
  339. data/spec/spec/runner/reporter_spec.rb +0 -192
  340. data/spec/spec/runner/resources/a_bar.rb +0 -0
  341. data/spec/spec/runner/resources/a_foo.rb +0 -0
  342. data/spec/spec/runner/resources/a_spec.rb +0 -1
  343. data/spec/spec/runner/spec.opts +0 -2
  344. data/spec/spec/runner/spec_drb.opts +0 -1
  345. data/spec/spec/runner/spec_parser/spec_parser_fixture.rb +0 -70
  346. data/spec/spec/runner/spec_parser_spec.rb +0 -85
  347. data/spec/spec/runner/spec_spaced.opts +0 -2
  348. data/spec/spec/runner_spec.rb +0 -11
  349. data/spec/spec/spec_classes.rb +0 -133
  350. data/spec/spec/story/builders.rb +0 -46
  351. data/spec/spec/story/extensions/main_spec.rb +0 -161
  352. data/spec/spec/story/extensions_spec.rb +0 -14
  353. data/spec/spec/story/given_scenario_spec.rb +0 -27
  354. data/spec/spec/story/runner/plain_text_story_runner_spec.rb +0 -93
  355. data/spec/spec/story/runner/scenario_collector_spec.rb +0 -27
  356. data/spec/spec/story/runner/scenario_runner_spec.rb +0 -214
  357. data/spec/spec/story/runner/story_mediator_spec.rb +0 -143
  358. data/spec/spec/story/runner/story_parser_spec.rb +0 -401
  359. data/spec/spec/story/runner/story_runner_spec.rb +0 -294
  360. data/spec/spec/story/runner_spec.rb +0 -93
  361. data/spec/spec/story/scenario_spec.rb +0 -20
  362. data/spec/spec/story/step_group_spec.rb +0 -157
  363. data/spec/spec/story/step_mother_spec.rb +0 -72
  364. data/spec/spec/story/step_spec.rb +0 -250
  365. data/spec/spec/story/story_helper.rb +0 -2
  366. data/spec/spec/story/story_spec.rb +0 -86
  367. data/spec/spec/story/world_spec.rb +0 -423
  368. data/spec/spec/translator_spec.rb +0 -265
  369. data/spec/spec_helper.rb +0 -103
  370. data/stories/all.rb +0 -5
  371. data/stories/example_groups/autogenerated_docstrings +0 -45
  372. data/stories/example_groups/example_group_with_should_methods +0 -17
  373. data/stories/example_groups/nested_groups +0 -17
  374. data/stories/example_groups/output +0 -25
  375. data/stories/example_groups/stories.rb +0 -7
  376. data/stories/helper.rb +0 -6
  377. data/stories/interop/examples_and_tests_together +0 -30
  378. data/stories/interop/stories.rb +0 -7
  379. data/stories/interop/test_case_with_should_methods +0 -17
  380. data/stories/mock_framework_integration/stories.rb +0 -7
  381. data/stories/mock_framework_integration/use_flexmock.story +0 -9
  382. data/stories/pending_stories/README +0 -3
  383. data/stories/resources/helpers/cmdline.rb +0 -9
  384. data/stories/resources/helpers/story_helper.rb +0 -16
  385. data/stories/resources/matchers/smart_match.rb +0 -37
  386. data/stories/resources/spec/example_group_with_should_methods.rb +0 -12
  387. data/stories/resources/spec/simple_spec.rb +0 -8
  388. data/stories/resources/spec/spec_with_flexmock.rb +0 -18
  389. data/stories/resources/steps/running_rspec.rb +0 -50
  390. data/stories/resources/stories/failing_story.rb +0 -15
  391. data/stories/resources/test/spec_and_test_together.rb +0 -57
  392. data/stories/resources/test/test_case_with_should_methods.rb +0 -30
  393. data/stories/stories/multiline_steps.story +0 -23
  394. data/stories/stories/steps/multiline_steps.rb +0 -13
  395. data/stories/stories/stories.rb +0 -6
@@ -1,39 +0,0 @@
1
- module Spec
2
- module Mocks
3
- module Methods
4
- def should_receive(sym, opts={}, &block)
5
- __mock_proxy.add_message_expectation(opts[:expected_from] || caller(1)[0], sym.to_sym, opts, &block)
6
- end
7
-
8
- def should_not_receive(sym, &block)
9
- __mock_proxy.add_negative_message_expectation(caller(1)[0], sym.to_sym, &block)
10
- end
11
-
12
- def stub!(sym, opts={})
13
- __mock_proxy.add_stub(caller(1)[0], sym.to_sym, opts)
14
- end
15
-
16
- def received_message?(sym, *args, &block) #:nodoc:
17
- __mock_proxy.received_message?(sym.to_sym, *args, &block)
18
- end
19
-
20
- def rspec_verify #:nodoc:
21
- __mock_proxy.verify
22
- end
23
-
24
- def rspec_reset #:nodoc:
25
- __mock_proxy.reset
26
- end
27
-
28
- private
29
-
30
- def __mock_proxy
31
- if Mock === self
32
- @mock_proxy ||= Proxy.new(self, @name, @options)
33
- else
34
- @mock_proxy ||= Proxy.new(self, self.class.name)
35
- end
36
- end
37
- end
38
- end
39
- end
@@ -1,56 +0,0 @@
1
- module Spec
2
- module Mocks
3
- class Mock
4
- include Methods
5
-
6
- # Creates a new mock with a +name+ (that will be used in error messages
7
- # only) == Options:
8
- # * <tt>:null_object</tt> - if true, the mock object acts as a forgiving
9
- # null object allowing any message to be sent to it.
10
- def initialize(name, stubs_and_options={})
11
- @name = name
12
- @options = parse_options(stubs_and_options)
13
- assign_stubs(stubs_and_options)
14
- end
15
-
16
- # This allows for comparing the mock to other objects that proxy such as
17
- # ActiveRecords belongs_to proxy objects By making the other object run
18
- # the comparison, we're sure the call gets delegated to the proxy target
19
- # This is an unfortunate side effect from ActiveRecord, but this should
20
- # be safe unless the RHS redefines == in a nonsensical manner
21
- def ==(other)
22
- other == __mock_proxy
23
- end
24
-
25
- def method_missing(sym, *args, &block)
26
- __mock_proxy.instance_eval {@messages_received << [sym, args, block]}
27
- begin
28
- return self if __mock_proxy.null_object?
29
- super(sym, *args, &block)
30
- rescue NameError
31
- __mock_proxy.raise_unexpected_message_error sym, *args
32
- end
33
- end
34
-
35
- def inspect
36
- "#<#{self.class}:#{sprintf '0x%x', self.object_id} @name=#{@name.inspect}>"
37
- end
38
-
39
- def to_s
40
- inspect.gsub('<','[').gsub('>',']')
41
- end
42
-
43
- private
44
-
45
- def parse_options(options)
46
- options.has_key?(:null_object) ? {:null_object => options.delete(:null_object)} : {}
47
- end
48
-
49
- def assign_stubs(stubs)
50
- stubs.each_pair do |message, response|
51
- stub!(message).and_return(response)
52
- end
53
- end
54
- end
55
- end
56
- end
@@ -1,29 +0,0 @@
1
- module Spec
2
- module Mocks
3
- class OrderGroup
4
- def initialize error_generator
5
- @error_generator = error_generator
6
- @ordering = Array.new
7
- end
8
-
9
- def register(expectation)
10
- @ordering << expectation
11
- end
12
-
13
- def ready_for?(expectation)
14
- return @ordering.first == expectation
15
- end
16
-
17
- def consume
18
- @ordering.shift
19
- end
20
-
21
- def handle_order_constraint expectation
22
- return unless @ordering.include? expectation
23
- return consume if ready_for?(expectation)
24
- @error_generator.raise_out_of_order_error expectation.sym
25
- end
26
-
27
- end
28
- end
29
- end
@@ -1,184 +0,0 @@
1
- module Spec
2
- module Mocks
3
- class Proxy
4
- DEFAULT_OPTIONS = {
5
- :null_object => false,
6
- }
7
-
8
- def initialize(target, name, options={})
9
- @target = target
10
- @name = name
11
- @error_generator = ErrorGenerator.new target, name
12
- @expectation_ordering = OrderGroup.new @error_generator
13
- @expectations = []
14
- @messages_received = []
15
- @stubs = []
16
- @proxied_methods = []
17
- @options = options ? DEFAULT_OPTIONS.dup.merge(options) : DEFAULT_OPTIONS
18
- end
19
-
20
- def null_object?
21
- @options[:null_object]
22
- end
23
-
24
- def add_message_expectation(expected_from, sym, opts={}, &block)
25
- __add sym
26
- @expectations << MessageExpectation.new(@error_generator, @expectation_ordering, expected_from, sym, block_given? ? block : nil, 1, opts)
27
- @expectations.last
28
- end
29
-
30
- def add_negative_message_expectation(expected_from, sym, &block)
31
- __add sym
32
- @expectations << NegativeMessageExpectation.new(@error_generator, @expectation_ordering, expected_from, sym, block_given? ? block : nil)
33
- @expectations.last
34
- end
35
-
36
- def add_stub(expected_from, sym, opts={})
37
- __add sym
38
- @stubs.unshift MessageExpectation.new(@error_generator, @expectation_ordering, expected_from, sym, nil, :any, opts)
39
- @stubs.first
40
- end
41
-
42
- def verify #:nodoc:
43
- verify_expectations
44
- ensure
45
- reset
46
- end
47
-
48
- def reset
49
- clear_expectations
50
- clear_stubs
51
- reset_proxied_methods
52
- clear_proxied_methods
53
- end
54
-
55
- def received_message?(sym, *args, &block)
56
- @messages_received.any? {|array| array == [sym, args, block]}
57
- end
58
-
59
- def has_negative_expectation?(sym)
60
- @expectations.detect {|expectation| expectation.negative_expectation_for?(sym)}
61
- end
62
-
63
- def message_received(sym, *args, &block)
64
- if expectation = find_matching_expectation(sym, *args)
65
- expectation.invoke(args, block)
66
- elsif (stub = find_matching_method_stub(sym, *args))
67
- if expectation = find_almost_matching_expectation(sym, *args)
68
- expectation.advise(args, block) unless expectation.expected_messages_received?
69
- end
70
- stub.invoke([], block)
71
- elsif expectation = find_almost_matching_expectation(sym, *args)
72
- expectation.advise(args, block) if null_object? unless expectation.expected_messages_received?
73
- raise_unexpected_message_args_error(expectation, *args) unless (has_negative_expectation?(sym) or null_object?)
74
- else
75
- @target.send :method_missing, sym, *args, &block
76
- end
77
- end
78
-
79
- def raise_unexpected_message_args_error(expectation, *args)
80
- @error_generator.raise_unexpected_message_args_error expectation, *args
81
- end
82
-
83
- def raise_unexpected_message_error(sym, *args)
84
- @error_generator.raise_unexpected_message_error sym, *args
85
- end
86
-
87
- private
88
-
89
- def __add(sym)
90
- $rspec_mocks.add(@target) unless $rspec_mocks.nil?
91
- define_expected_method(sym)
92
- end
93
-
94
- def define_expected_method(sym)
95
- visibility_string = "#{visibility(sym)} :#{sym}"
96
- if target_responds_to?(sym) && !target_metaclass.method_defined?(munge(sym))
97
- munged_sym = munge(sym)
98
- target_metaclass.instance_eval do
99
- alias_method munged_sym, sym if method_defined?(sym.to_s)
100
- end
101
- @proxied_methods << sym
102
- end
103
-
104
- target_metaclass.class_eval(<<-EOF, __FILE__, __LINE__)
105
- def #{sym}(*args, &block)
106
- __mock_proxy.message_received :#{sym}, *args, &block
107
- end
108
- #{visibility_string}
109
- EOF
110
- end
111
-
112
- def target_responds_to?(sym)
113
- return @target.send(munge(:respond_to?),sym) if @already_proxied_respond_to
114
- return @already_proxied_respond_to = true if sym == :respond_to?
115
- return @target.respond_to?(sym)
116
- end
117
-
118
- def visibility(sym)
119
- if Mock === @target
120
- 'public'
121
- elsif target_metaclass.private_method_defined?(sym)
122
- 'private'
123
- elsif target_metaclass.protected_method_defined?(sym)
124
- 'protected'
125
- else
126
- 'public'
127
- end
128
- end
129
-
130
- def munge(sym)
131
- "proxied_by_rspec__#{sym.to_s}".to_sym
132
- end
133
-
134
- def clear_expectations
135
- @expectations.clear
136
- end
137
-
138
- def clear_stubs
139
- @stubs.clear
140
- end
141
-
142
- def clear_proxied_methods
143
- @proxied_methods.clear
144
- end
145
-
146
- def target_metaclass
147
- class << @target; self; end
148
- end
149
-
150
- def verify_expectations
151
- @expectations.each do |expectation|
152
- expectation.verify_messages_received
153
- end
154
- end
155
-
156
- def reset_proxied_methods
157
- @proxied_methods.each do |sym|
158
- munged_sym = munge(sym)
159
- target_metaclass.instance_eval do
160
- if method_defined?(munged_sym.to_s)
161
- alias_method sym, munged_sym
162
- undef_method munged_sym
163
- else
164
- undef_method sym
165
- end
166
- end
167
- end
168
- end
169
-
170
- def find_matching_expectation(sym, *args)
171
- @expectations.find {|expectation| expectation.matches(sym, args)}
172
- end
173
-
174
- def find_almost_matching_expectation(sym, *args)
175
- @expectations.find {|expectation| expectation.matches_name_but_not_args(sym, args)}
176
- end
177
-
178
- def find_matching_method_stub(sym, *args)
179
- @stubs.find {|stub| stub.matches(sym, args)}
180
- end
181
-
182
- end
183
- end
184
- end
@@ -1,28 +0,0 @@
1
- module Spec
2
- module Mocks
3
- class Space
4
- def add(obj)
5
- mocks << obj unless mocks.detect {|m| m.equal? obj}
6
- end
7
-
8
- def verify_all
9
- mocks.each do |mock|
10
- mock.rspec_verify
11
- end
12
- end
13
-
14
- def reset_all
15
- mocks.each do |mock|
16
- mock.rspec_reset
17
- end
18
- mocks.clear
19
- end
20
-
21
- private
22
-
23
- def mocks
24
- @mocks ||= []
25
- end
26
- end
27
- end
28
- end
@@ -1,38 +0,0 @@
1
- module Spec
2
- module Mocks
3
- module ExampleMethods
4
- include Spec::Mocks::ArgumentConstraintMatchers
5
-
6
- # Shortcut for creating an instance of Spec::Mocks::Mock.
7
- #
8
- # +name+ is used for failure reporting, so you should use the
9
- # role that the mock is playing in the example.
10
- #
11
- # +stubs_and_options+ lets you assign options and stub values
12
- # at the same time. The only option available is :null_object.
13
- # Anything else is treated as a stub value.
14
- #
15
- # == Examples
16
- #
17
- # stub_thing = mock("thing", :a => "A")
18
- # stub_thing.a == "A" => true
19
- #
20
- # stub_person = stub("thing", :name => "Joe", :email => "joe@domain.com")
21
- # stub_person.name => "Joe"
22
- # stub_person.email => "joe@domain.com"
23
- def mock(name, stubs_and_options={})
24
- Spec::Mocks::Mock.new(name, stubs_and_options)
25
- end
26
-
27
- alias :stub :mock
28
-
29
- # Shortcut for creating a mock object that will return itself in response
30
- # to any message it receives that it hasn't been explicitly instructed
31
- # to respond to.
32
- def stub_everything(name = 'stub')
33
- mock(name, :null_object => true)
34
- end
35
-
36
- end
37
- end
38
- end
@@ -1,227 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- # Define a task library for running RSpec contexts.
4
-
5
- require 'rake'
6
- require 'rake/tasklib'
7
-
8
- module Spec
9
- module Rake
10
-
11
- # A Rake task that runs a set of specs.
12
- #
13
- # Example:
14
- #
15
- # Spec::Rake::SpecTask.new do |t|
16
- # t.warning = true
17
- # t.rcov = true
18
- # end
19
- #
20
- # This will create a task that can be run with:
21
- #
22
- # rake spec
23
- #
24
- # If rake is invoked with a "SPEC=filename" command line option,
25
- # then the list of spec files will be overridden to include only the
26
- # filename specified on the command line. This provides an easy way
27
- # to run just one spec.
28
- #
29
- # If rake is invoked with a "SPEC_OPTS=options" command line option,
30
- # then the given options will override the value of the +spec_opts+
31
- # attribute.
32
- #
33
- # If rake is invoked with a "RCOV_OPTS=options" command line option,
34
- # then the given options will override the value of the +rcov_opts+
35
- # attribute.
36
- #
37
- # Examples:
38
- #
39
- # rake spec # run specs normally
40
- # rake spec SPEC=just_one_file.rb # run just one spec file.
41
- # rake spec SPEC_OPTS="--diff" # enable diffing
42
- # rake spec RCOV_OPTS="--aggregate myfile.txt" # see rcov --help for details
43
- #
44
- # Each attribute of this task may be a proc. This allows for lazy evaluation,
45
- # which is sometimes handy if you want to defer the evaluation of an attribute value
46
- # until the task is run (as opposed to when it is defined).
47
- #
48
- # This task can also be used to run existing Test::Unit tests and get RSpec
49
- # output, for example like this:
50
- #
51
- # require 'rubygems'
52
- # require 'spec/rake/spectask'
53
- # Spec::Rake::SpecTask.new do |t|
54
- # t.ruby_opts = ['-rtest/unit']
55
- # t.spec_files = FileList['test/**/*_test.rb']
56
- # end
57
- #
58
- class SpecTask < ::Rake::TaskLib
59
- class << self
60
- def attr_accessor(*names)
61
- super(*names)
62
- names.each do |name|
63
- module_eval "def #{name}() evaluate(@#{name}) end" # Allows use of procs
64
- end
65
- end
66
- end
67
-
68
- # Name of spec task. (default is :spec)
69
- attr_accessor :name
70
-
71
- # Array of directories to be added to $LOAD_PATH before running the
72
- # specs. Defaults to ['<the absolute path to RSpec's lib directory>']
73
- attr_accessor :libs
74
-
75
- # If true, requests that the specs be run with the warning flag set.
76
- # E.g. warning=true implies "ruby -w" used to run the specs. Defaults to false.
77
- attr_accessor :warning
78
-
79
- # Glob pattern to match spec files. (default is 'spec/**/*_spec.rb')
80
- # Setting the SPEC environment variable overrides this.
81
- attr_accessor :pattern
82
-
83
- # Array of commandline options to pass to RSpec. Defaults to [].
84
- # Setting the SPEC_OPTS environment variable overrides this.
85
- attr_accessor :spec_opts
86
-
87
- # Whether or not to use RCov (default is false)
88
- # See http://eigenclass.org/hiki.rb?rcov
89
- attr_accessor :rcov
90
-
91
- # Array of commandline options to pass to RCov. Defaults to ['--exclude', 'lib\/spec,bin\/spec'].
92
- # Ignored if rcov=false
93
- # Setting the RCOV_OPTS environment variable overrides this.
94
- attr_accessor :rcov_opts
95
-
96
- # Directory where the RCov report is written. Defaults to "coverage"
97
- # Ignored if rcov=false
98
- attr_accessor :rcov_dir
99
-
100
- # Array of commandline options to pass to ruby. Defaults to [].
101
- attr_accessor :ruby_opts
102
-
103
- # Whether or not to fail Rake when an error occurs (typically when specs fail).
104
- # Defaults to true.
105
- attr_accessor :fail_on_error
106
-
107
- # A message to print to stderr when there are failures.
108
- attr_accessor :failure_message
109
-
110
- # Where RSpec's output is written. Defaults to STDOUT.
111
- # DEPRECATED. Use --format FORMAT:WHERE in spec_opts.
112
- attr_accessor :out
113
-
114
- # Explicitly define the list of spec files to be included in a
115
- # spec. +spec_files+ is expected to be an array of file names (a
116
- # FileList is acceptable). If both +pattern+ and +spec_files+ are
117
- # used, then the list of spec files is the union of the two.
118
- # Setting the SPEC environment variable overrides this.
119
- attr_accessor :spec_files
120
-
121
- # Use verbose output. If this is set to true, the task will print
122
- # the executed spec command to stdout. Defaults to false.
123
- attr_accessor :verbose
124
-
125
- # Defines a new task, using the name +name+.
126
- def initialize(name=:spec)
127
- @name = name
128
- @libs = [File.expand_path(File.dirname(__FILE__) + '/../../../lib')]
129
- @pattern = nil
130
- @spec_files = nil
131
- @spec_opts = []
132
- @warning = false
133
- @ruby_opts = []
134
- @fail_on_error = true
135
- @rcov = false
136
- @rcov_opts = ['--exclude', 'lib\/spec,bin\/spec,config\/boot.rb']
137
- @rcov_dir = "coverage"
138
-
139
- yield self if block_given?
140
- @pattern = 'spec/**/*_spec.rb' if pattern.nil? && spec_files.nil?
141
- define
142
- end
143
-
144
- def define # :nodoc:
145
- spec_script = File.expand_path(File.dirname(__FILE__) + '/../../../bin/spec')
146
-
147
- lib_path = libs.join(File::PATH_SEPARATOR)
148
- actual_name = Hash === name ? name.keys.first : name
149
- unless ::Rake.application.last_comment
150
- desc "Run specs" + (rcov ? " using RCov" : "")
151
- end
152
- task name do
153
- RakeFileUtils.verbose(verbose) do
154
- unless spec_file_list.empty?
155
- # ruby [ruby_opts] -Ilib -S rcov [rcov_opts] bin/spec -- examples [spec_opts]
156
- # or
157
- # ruby [ruby_opts] -Ilib bin/spec examples [spec_opts]
158
- cmd_parts = [RUBY]
159
- cmd_parts += ruby_opts
160
- cmd_parts << %[-I"#{lib_path}"]
161
- cmd_parts << "-S rcov" if rcov
162
- cmd_parts << "-w" if warning
163
- cmd_parts << rcov_option_list
164
- cmd_parts << %[-o "#{rcov_dir}"] if rcov
165
- cmd_parts << %["#{spec_script}"]
166
- cmd_parts << "--" if rcov
167
- cmd_parts += spec_file_list.collect { |fn| %["#{fn}"] }
168
- cmd_parts << spec_option_list
169
- if out
170
- cmd_parts << %[> "#{out}"]
171
- STDERR.puts "The Spec::Rake::SpecTask#out attribute is DEPRECATED and will be removed in a future version. Use --format FORMAT:WHERE instead."
172
- end
173
- cmd = cmd_parts.join(" ")
174
- puts cmd if verbose
175
- unless system(cmd)
176
- STDERR.puts failure_message if failure_message
177
- raise("Command #{cmd} failed") if fail_on_error
178
- end
179
- end
180
- end
181
- end
182
-
183
- if rcov
184
- desc "Remove rcov products for #{actual_name}"
185
- task paste("clobber_", actual_name) do
186
- rm_r rcov_dir rescue nil
187
- end
188
-
189
- clobber_task = paste("clobber_", actual_name)
190
- task :clobber => [clobber_task]
191
-
192
- task actual_name => clobber_task
193
- end
194
- self
195
- end
196
-
197
- def rcov_option_list # :nodoc:
198
- return "" unless rcov
199
- ENV['RCOV_OPTS'] || rcov_opts.join(" ") || ""
200
- end
201
-
202
- def spec_option_list # :nodoc:
203
- STDERR.puts "RSPECOPTS is DEPRECATED and will be removed in a future version. Use SPEC_OPTS instead." if ENV['RSPECOPTS']
204
- ENV['SPEC_OPTS'] || ENV['RSPECOPTS'] || spec_opts.join(" ") || ""
205
- end
206
-
207
- def evaluate(o) # :nodoc:
208
- case o
209
- when Proc then o.call
210
- else o
211
- end
212
- end
213
-
214
- def spec_file_list # :nodoc:
215
- if ENV['SPEC']
216
- FileList[ ENV['SPEC'] ]
217
- else
218
- result = []
219
- result += spec_files.to_a if spec_files
220
- result += FileList[ pattern ].to_a if pattern
221
- FileList[result]
222
- end
223
- end
224
-
225
- end
226
- end
227
- end