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.
- data/CHANGES +8 -0
- data/README +20 -0
- data/Rakefile.rb +122 -0
- data/lib/rspec.rb +9 -0
- data/lib/spec.rb +4 -29
- data/lib/spec/context.rb +61 -0
- data/lib/spec/{mocks/errors.rb → exceptions.rb} +5 -4
- data/lib/spec/expectations.rb +61 -50
- data/lib/spec/mock.rb +104 -0
- data/lib/spec/text_runner.rb +84 -0
- metadata +48 -452
- data/.autotest +0 -3
- data/.gitignore +0 -7
- data/History.txt +0 -1104
- data/MIT-LICENSE +0 -20
- data/Manifest.txt +0 -387
- data/README.txt +0 -36
- data/Rakefile +0 -88
- data/TODO +0 -1
- data/bin/autospec +0 -3
- data/bin/spec +0 -4
- data/bin/spec_translator +0 -8
- data/examples/pure/autogenerated_docstrings_example.rb +0 -19
- data/examples/pure/before_and_after_example.rb +0 -40
- data/examples/pure/behave_as_example.rb +0 -45
- data/examples/pure/custom_expectation_matchers.rb +0 -54
- data/examples/pure/custom_formatter.rb +0 -12
- data/examples/pure/dynamic_spec.rb +0 -9
- data/examples/pure/file_accessor.rb +0 -19
- data/examples/pure/file_accessor_spec.rb +0 -38
- data/examples/pure/greeter_spec.rb +0 -31
- data/examples/pure/helper_method_example.rb +0 -14
- data/examples/pure/io_processor.rb +0 -8
- data/examples/pure/io_processor_spec.rb +0 -21
- data/examples/pure/legacy_spec.rb +0 -11
- data/examples/pure/mocking_example.rb +0 -27
- data/examples/pure/multi_threaded_behaviour_runner.rb +0 -28
- data/examples/pure/nested_classes_example.rb +0 -36
- data/examples/pure/partial_mock_example.rb +0 -29
- data/examples/pure/pending_example.rb +0 -20
- data/examples/pure/predicate_example.rb +0 -27
- data/examples/pure/priority.txt +0 -1
- data/examples/pure/shared_example_group_example.rb +0 -81
- data/examples/pure/shared_stack_examples.rb +0 -38
- data/examples/pure/spec_helper.rb +0 -3
- data/examples/pure/stack.rb +0 -36
- data/examples/pure/stack_spec.rb +0 -63
- data/examples/pure/stack_spec_with_nested_example_groups.rb +0 -67
- data/examples/pure/stubbing_example.rb +0 -69
- data/examples/stories/adder.rb +0 -13
- data/examples/stories/addition +0 -34
- data/examples/stories/addition.rb +0 -9
- data/examples/stories/calculator.rb +0 -65
- data/examples/stories/game-of-life/.loadpath +0 -5
- data/examples/stories/game-of-life/README.txt +0 -21
- data/examples/stories/game-of-life/behaviour/everything.rb +0 -6
- data/examples/stories/game-of-life/behaviour/examples/examples.rb +0 -3
- data/examples/stories/game-of-life/behaviour/examples/game_behaviour.rb +0 -35
- data/examples/stories/game-of-life/behaviour/examples/grid_behaviour.rb +0 -66
- data/examples/stories/game-of-life/behaviour/stories/CellsWithLessThanTwoNeighboursDie.story +0 -21
- data/examples/stories/game-of-life/behaviour/stories/CellsWithMoreThanThreeNeighboursDie.story +0 -21
- data/examples/stories/game-of-life/behaviour/stories/EmptySpacesWithThreeNeighboursCreateACell.story +0 -42
- data/examples/stories/game-of-life/behaviour/stories/ICanCreateACell.story +0 -42
- data/examples/stories/game-of-life/behaviour/stories/ICanKillACell.story +0 -17
- data/examples/stories/game-of-life/behaviour/stories/TheGridWraps.story +0 -53
- data/examples/stories/game-of-life/behaviour/stories/create_a_cell.rb +0 -52
- data/examples/stories/game-of-life/behaviour/stories/helper.rb +0 -6
- data/examples/stories/game-of-life/behaviour/stories/kill_a_cell.rb +0 -26
- data/examples/stories/game-of-life/behaviour/stories/steps.rb +0 -5
- data/examples/stories/game-of-life/behaviour/stories/stories.rb +0 -3
- data/examples/stories/game-of-life/behaviour/stories/stories.txt +0 -22
- data/examples/stories/game-of-life/life.rb +0 -3
- data/examples/stories/game-of-life/life/game.rb +0 -23
- data/examples/stories/game-of-life/life/grid.rb +0 -43
- data/examples/stories/helper.rb +0 -9
- data/examples/stories/steps/addition_steps.rb +0 -18
- data/failing_examples/README.txt +0 -7
- data/failing_examples/diffing_spec.rb +0 -36
- data/failing_examples/failing_autogenerated_docstrings_example.rb +0 -19
- data/failing_examples/failure_in_setup.rb +0 -10
- data/failing_examples/failure_in_teardown.rb +0 -10
- data/failing_examples/mocking_example.rb +0 -40
- data/failing_examples/mocking_with_flexmock.rb +0 -26
- data/failing_examples/mocking_with_mocha.rb +0 -25
- data/failing_examples/mocking_with_rr.rb +0 -27
- data/failing_examples/partial_mock_example.rb +0 -20
- data/failing_examples/predicate_example.rb +0 -29
- data/failing_examples/raising_example.rb +0 -47
- data/failing_examples/spec_helper.rb +0 -3
- data/failing_examples/syntax_error_example.rb +0 -7
- data/failing_examples/team_spec.rb +0 -44
- data/failing_examples/timeout_behaviour.rb +0 -7
- data/init.rb +0 -9
- data/lib/autotest/discover.rb +0 -3
- data/lib/autotest/rspec.rb +0 -72
- data/lib/spec/adapters.rb +0 -1
- data/lib/spec/adapters/ruby_engine.rb +0 -26
- data/lib/spec/adapters/ruby_engine/mri.rb +0 -8
- data/lib/spec/adapters/ruby_engine/rubinius.rb +0 -8
- data/lib/spec/example.rb +0 -12
- data/lib/spec/example/configuration.rb +0 -158
- data/lib/spec/example/errors.rb +0 -9
- data/lib/spec/example/example_group.rb +0 -17
- data/lib/spec/example/example_group_factory.rb +0 -64
- data/lib/spec/example/example_group_methods.rb +0 -440
- data/lib/spec/example/example_matcher.rb +0 -44
- data/lib/spec/example/example_methods.rb +0 -112
- data/lib/spec/example/module_inclusion_warnings.rb +0 -38
- data/lib/spec/example/module_reopening_fix.rb +0 -21
- data/lib/spec/example/pending.rb +0 -18
- data/lib/spec/example/shared_example_group.rb +0 -58
- data/lib/spec/expectations/differs/default.rb +0 -66
- data/lib/spec/expectations/errors.rb +0 -12
- data/lib/spec/expectations/extensions.rb +0 -2
- data/lib/spec/expectations/extensions/object.rb +0 -63
- data/lib/spec/expectations/extensions/string_and_symbol.rb +0 -17
- data/lib/spec/expectations/handler.rb +0 -62
- data/lib/spec/extensions.rb +0 -4
- data/lib/spec/extensions/class.rb +0 -24
- data/lib/spec/extensions/main.rb +0 -102
- data/lib/spec/extensions/metaclass.rb +0 -7
- data/lib/spec/extensions/object.rb +0 -6
- data/lib/spec/interop/test.rb +0 -12
- data/lib/spec/interop/test/unit/autorunner.rb +0 -6
- data/lib/spec/interop/test/unit/testcase.rb +0 -61
- data/lib/spec/interop/test/unit/testresult.rb +0 -6
- data/lib/spec/interop/test/unit/testsuite_adapter.rb +0 -34
- data/lib/spec/interop/test/unit/ui/console/testrunner.rb +0 -61
- data/lib/spec/matchers.rb +0 -156
- data/lib/spec/matchers/be.rb +0 -224
- data/lib/spec/matchers/be_close.rb +0 -37
- data/lib/spec/matchers/change.rb +0 -148
- data/lib/spec/matchers/eql.rb +0 -43
- data/lib/spec/matchers/equal.rb +0 -43
- data/lib/spec/matchers/exist.rb +0 -17
- data/lib/spec/matchers/has.rb +0 -34
- data/lib/spec/matchers/have.rb +0 -149
- data/lib/spec/matchers/include.rb +0 -70
- data/lib/spec/matchers/match.rb +0 -41
- data/lib/spec/matchers/operator_matcher.rb +0 -73
- data/lib/spec/matchers/raise_error.rb +0 -132
- data/lib/spec/matchers/respond_to.rb +0 -45
- data/lib/spec/matchers/satisfy.rb +0 -47
- data/lib/spec/matchers/simple_matcher.rb +0 -132
- data/lib/spec/matchers/throw_symbol.rb +0 -74
- data/lib/spec/mocks.rb +0 -211
- data/lib/spec/mocks/argument_constraint_matchers.rb +0 -31
- data/lib/spec/mocks/argument_expectation.rb +0 -216
- data/lib/spec/mocks/error_generator.rb +0 -84
- data/lib/spec/mocks/extensions.rb +0 -1
- data/lib/spec/mocks/extensions/object.rb +0 -3
- data/lib/spec/mocks/framework.rb +0 -15
- data/lib/spec/mocks/message_expectation.rb +0 -290
- data/lib/spec/mocks/methods.rb +0 -39
- data/lib/spec/mocks/mock.rb +0 -56
- data/lib/spec/mocks/order_group.rb +0 -29
- data/lib/spec/mocks/proxy.rb +0 -184
- data/lib/spec/mocks/space.rb +0 -28
- data/lib/spec/mocks/spec_methods.rb +0 -38
- data/lib/spec/rake/spectask.rb +0 -227
- data/lib/spec/rake/verify_rcov.rb +0 -52
- data/lib/spec/runner.rb +0 -201
- data/lib/spec/runner/backtrace_tweaker.rb +0 -57
- data/lib/spec/runner/class_and_arguments_parser.rb +0 -16
- data/lib/spec/runner/command_line.rb +0 -28
- data/lib/spec/runner/drb_command_line.rb +0 -20
- data/lib/spec/runner/example_group_runner.rb +0 -59
- data/lib/spec/runner/formatter/base_formatter.rb +0 -77
- data/lib/spec/runner/formatter/base_text_formatter.rb +0 -130
- data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +0 -27
- data/lib/spec/runner/formatter/failing_examples_formatter.rb +0 -20
- data/lib/spec/runner/formatter/html_formatter.rb +0 -337
- data/lib/spec/runner/formatter/nested_text_formatter.rb +0 -65
- data/lib/spec/runner/formatter/profile_formatter.rb +0 -51
- data/lib/spec/runner/formatter/progress_bar_formatter.rb +0 -34
- data/lib/spec/runner/formatter/snippet_extractor.rb +0 -52
- data/lib/spec/runner/formatter/specdoc_formatter.rb +0 -39
- data/lib/spec/runner/formatter/story/html_formatter.rb +0 -161
- data/lib/spec/runner/formatter/story/plain_text_formatter.rb +0 -188
- data/lib/spec/runner/formatter/text_mate_formatter.rb +0 -16
- data/lib/spec/runner/heckle_runner.rb +0 -72
- data/lib/spec/runner/heckle_runner_unsupported.rb +0 -10
- data/lib/spec/runner/option_parser.rb +0 -203
- data/lib/spec/runner/options.rb +0 -309
- data/lib/spec/runner/reporter.rb +0 -147
- data/lib/spec/runner/spec_parser.rb +0 -71
- data/lib/spec/story.rb +0 -10
- data/lib/spec/story/extensions.rb +0 -3
- data/lib/spec/story/extensions/main.rb +0 -86
- data/lib/spec/story/extensions/regexp.rb +0 -9
- data/lib/spec/story/extensions/string.rb +0 -9
- data/lib/spec/story/given_scenario.rb +0 -14
- data/lib/spec/story/runner.rb +0 -60
- data/lib/spec/story/runner/plain_text_story_runner.rb +0 -48
- data/lib/spec/story/runner/scenario_collector.rb +0 -18
- data/lib/spec/story/runner/scenario_runner.rb +0 -54
- data/lib/spec/story/runner/story_mediator.rb +0 -137
- data/lib/spec/story/runner/story_parser.rb +0 -247
- data/lib/spec/story/runner/story_runner.rb +0 -70
- data/lib/spec/story/scenario.rb +0 -14
- data/lib/spec/story/step.rb +0 -70
- data/lib/spec/story/step_group.rb +0 -89
- data/lib/spec/story/step_mother.rb +0 -37
- data/lib/spec/story/story.rb +0 -39
- data/lib/spec/story/world.rb +0 -128
- data/lib/spec/translator.rb +0 -114
- data/lib/spec/version.rb +0 -13
- data/plugins/mock_frameworks/flexmock.rb +0 -23
- data/plugins/mock_frameworks/mocha.rb +0 -19
- data/plugins/mock_frameworks/rr.rb +0 -21
- data/plugins/mock_frameworks/rspec.rb +0 -20
- data/rake_tasks/examples.rake +0 -7
- data/rake_tasks/examples_with_rcov.rake +0 -9
- data/rake_tasks/failing_examples_with_html.rake +0 -9
- data/rake_tasks/verify_rcov.rake +0 -7
- data/spec/README.jruby +0 -15
- data/spec/autotest/discover_spec.rb +0 -19
- data/spec/autotest/rspec_spec.rb +0 -206
- data/spec/autotest_helper.rb +0 -6
- data/spec/autotest_matchers.rb +0 -47
- data/spec/rspec_suite.rb +0 -7
- data/spec/ruby_forker.rb +0 -13
- data/spec/spec.opts +0 -6
- data/spec/spec/adapters/ruby_engine_spec.rb +0 -16
- data/spec/spec/example/configuration_spec.rb +0 -282
- data/spec/spec/example/example_group/described_module_spec.rb +0 -20
- data/spec/spec/example/example_group/warning_messages_spec.rb +0 -76
- data/spec/spec/example/example_group_class_definition_spec.rb +0 -48
- data/spec/spec/example/example_group_factory_spec.rb +0 -144
- data/spec/spec/example/example_group_methods_spec.rb +0 -572
- data/spec/spec/example/example_group_spec.rb +0 -723
- data/spec/spec/example/example_matcher_spec.rb +0 -96
- data/spec/spec/example/example_methods_spec.rb +0 -126
- data/spec/spec/example/example_runner_spec.rb +0 -194
- data/spec/spec/example/example_spec.rb +0 -53
- data/spec/spec/example/nested_example_group_spec.rb +0 -71
- data/spec/spec/example/pending_module_spec.rb +0 -42
- data/spec/spec/example/predicate_matcher_spec.rb +0 -21
- data/spec/spec/example/shared_example_group_spec.rb +0 -265
- data/spec/spec/example/subclassing_example_group_spec.rb +0 -25
- data/spec/spec/expectations/differs/default_spec.rb +0 -127
- data/spec/spec/expectations/extensions/object_spec.rb +0 -107
- data/spec/spec/expectations/fail_with_spec.rb +0 -71
- data/spec/spec/extensions/main_spec.rb +0 -76
- data/spec/spec/interop/test/unit/resources/spec_that_fails.rb +0 -10
- data/spec/spec/interop/test/unit/resources/spec_that_passes.rb +0 -10
- data/spec/spec/interop/test/unit/resources/spec_with_errors.rb +0 -10
- data/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +0 -10
- data/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +0 -10
- data/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +0 -10
- data/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +0 -38
- data/spec/spec/interop/test/unit/spec_spec.rb +0 -45
- data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +0 -14
- data/spec/spec/interop/test/unit/testcase_spec.rb +0 -45
- data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +0 -9
- data/spec/spec/matchers/be_close_spec.rb +0 -39
- data/spec/spec/matchers/be_spec.rb +0 -248
- data/spec/spec/matchers/change_spec.rb +0 -317
- data/spec/spec/matchers/description_generation_spec.rb +0 -153
- data/spec/spec/matchers/eql_spec.rb +0 -28
- data/spec/spec/matchers/equal_spec.rb +0 -28
- data/spec/spec/matchers/exist_spec.rb +0 -57
- data/spec/spec/matchers/handler_spec.rb +0 -150
- data/spec/spec/matchers/has_spec.rb +0 -53
- data/spec/spec/matchers/have_spec.rb +0 -293
- data/spec/spec/matchers/include_spec.rb +0 -45
- data/spec/spec/matchers/match_spec.rb +0 -37
- data/spec/spec/matchers/matcher_methods_spec.rb +0 -78
- data/spec/spec/matchers/mock_constraint_matchers_spec.rb +0 -24
- data/spec/spec/matchers/operator_matcher_spec.rb +0 -168
- data/spec/spec/matchers/raise_error_spec.rb +0 -315
- data/spec/spec/matchers/respond_to_spec.rb +0 -54
- data/spec/spec/matchers/satisfy_spec.rb +0 -36
- data/spec/spec/matchers/simple_matcher_spec.rb +0 -93
- data/spec/spec/matchers/throw_symbol_spec.rb +0 -54
- data/spec/spec/mocks/any_number_of_times_spec.rb +0 -29
- data/spec/spec/mocks/argument_expectation_spec.rb +0 -23
- data/spec/spec/mocks/at_least_spec.rb +0 -97
- data/spec/spec/mocks/at_most_spec.rb +0 -93
- data/spec/spec/mocks/bug_report_10260_spec.rb +0 -8
- data/spec/spec/mocks/bug_report_10263_spec.rb +0 -24
- data/spec/spec/mocks/bug_report_11545_spec.rb +0 -33
- data/spec/spec/mocks/bug_report_15719_spec.rb +0 -30
- data/spec/spec/mocks/bug_report_7611_spec.rb +0 -19
- data/spec/spec/mocks/bug_report_7805_spec.rb +0 -22
- data/spec/spec/mocks/bug_report_8165_spec.rb +0 -31
- data/spec/spec/mocks/bug_report_8302_spec.rb +0 -26
- data/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +0 -130
- data/spec/spec/mocks/hash_including_matcher_spec.rb +0 -32
- data/spec/spec/mocks/mock_ordering_spec.rb +0 -84
- data/spec/spec/mocks/mock_space_spec.rb +0 -54
- data/spec/spec/mocks/mock_spec.rb +0 -494
- data/spec/spec/mocks/multiple_return_value_spec.rb +0 -113
- data/spec/spec/mocks/null_object_mock_spec.rb +0 -40
- data/spec/spec/mocks/once_counts_spec.rb +0 -53
- data/spec/spec/mocks/options_hash_spec.rb +0 -45
- data/spec/spec/mocks/partial_mock_spec.rb +0 -142
- data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +0 -66
- data/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +0 -175
- data/spec/spec/mocks/precise_counts_spec.rb +0 -52
- data/spec/spec/mocks/record_messages_spec.rb +0 -26
- data/spec/spec/mocks/stub_spec.rb +0 -181
- data/spec/spec/mocks/twice_counts_spec.rb +0 -67
- data/spec/spec/package/bin_spec_spec.rb +0 -14
- data/spec/spec/runner/class_and_argument_parser_spec.rb +0 -23
- data/spec/spec/runner/command_line_spec.rb +0 -147
- data/spec/spec/runner/drb_command_line_spec.rb +0 -92
- data/spec/spec/runner/empty_file.txt +0 -0
- data/spec/spec/runner/examples.txt +0 -2
- data/spec/spec/runner/execution_context_spec.rb +0 -37
- data/spec/spec/runner/failed.txt +0 -3
- data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +0 -45
- data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +0 -33
- data/spec/spec/runner/formatter/html_formatted-1.8.4.html +0 -365
- data/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html +0 -387
- data/spec/spec/runner/formatter/html_formatted-1.8.5.html +0 -371
- data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +0 -381
- data/spec/spec/runner/formatter/html_formatted-1.8.6.html +0 -370
- data/spec/spec/runner/formatter/html_formatter_spec.rb +0 -63
- data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +0 -333
- data/spec/spec/runner/formatter/profile_formatter_spec.rb +0 -65
- data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +0 -137
- data/spec/spec/runner/formatter/snippet_extractor_spec.rb +0 -18
- data/spec/spec/runner/formatter/spec_mate_formatter_spec.rb +0 -103
- data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +0 -158
- data/spec/spec/runner/formatter/story/html_formatter_spec.rb +0 -87
- data/spec/spec/runner/formatter/story/plain_text_formatter_spec.rb +0 -548
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.4.html +0 -365
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +0 -370
- data/spec/spec/runner/heckle_runner_spec.rb +0 -78
- data/spec/spec/runner/heckler_spec.rb +0 -13
- data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +0 -45
- data/spec/spec/runner/option_parser_spec.rb +0 -394
- data/spec/spec/runner/options_spec.rb +0 -450
- data/spec/spec/runner/output_one_time_fixture.rb +0 -7
- data/spec/spec/runner/output_one_time_fixture_runner.rb +0 -8
- data/spec/spec/runner/output_one_time_spec.rb +0 -16
- data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +0 -56
- data/spec/spec/runner/reporter_spec.rb +0 -192
- data/spec/spec/runner/resources/a_bar.rb +0 -0
- data/spec/spec/runner/resources/a_foo.rb +0 -0
- data/spec/spec/runner/resources/a_spec.rb +0 -1
- data/spec/spec/runner/spec.opts +0 -2
- data/spec/spec/runner/spec_drb.opts +0 -1
- data/spec/spec/runner/spec_parser/spec_parser_fixture.rb +0 -70
- data/spec/spec/runner/spec_parser_spec.rb +0 -85
- data/spec/spec/runner/spec_spaced.opts +0 -2
- data/spec/spec/runner_spec.rb +0 -11
- data/spec/spec/spec_classes.rb +0 -133
- data/spec/spec/story/builders.rb +0 -46
- data/spec/spec/story/extensions/main_spec.rb +0 -161
- data/spec/spec/story/extensions_spec.rb +0 -14
- data/spec/spec/story/given_scenario_spec.rb +0 -27
- data/spec/spec/story/runner/plain_text_story_runner_spec.rb +0 -93
- data/spec/spec/story/runner/scenario_collector_spec.rb +0 -27
- data/spec/spec/story/runner/scenario_runner_spec.rb +0 -214
- data/spec/spec/story/runner/story_mediator_spec.rb +0 -143
- data/spec/spec/story/runner/story_parser_spec.rb +0 -401
- data/spec/spec/story/runner/story_runner_spec.rb +0 -294
- data/spec/spec/story/runner_spec.rb +0 -93
- data/spec/spec/story/scenario_spec.rb +0 -20
- data/spec/spec/story/step_group_spec.rb +0 -157
- data/spec/spec/story/step_mother_spec.rb +0 -72
- data/spec/spec/story/step_spec.rb +0 -250
- data/spec/spec/story/story_helper.rb +0 -2
- data/spec/spec/story/story_spec.rb +0 -86
- data/spec/spec/story/world_spec.rb +0 -423
- data/spec/spec/translator_spec.rb +0 -265
- data/spec/spec_helper.rb +0 -103
- data/stories/all.rb +0 -5
- data/stories/example_groups/autogenerated_docstrings +0 -45
- data/stories/example_groups/example_group_with_should_methods +0 -17
- data/stories/example_groups/nested_groups +0 -17
- data/stories/example_groups/output +0 -25
- data/stories/example_groups/stories.rb +0 -7
- data/stories/helper.rb +0 -6
- data/stories/interop/examples_and_tests_together +0 -30
- data/stories/interop/stories.rb +0 -7
- data/stories/interop/test_case_with_should_methods +0 -17
- data/stories/mock_framework_integration/stories.rb +0 -7
- data/stories/mock_framework_integration/use_flexmock.story +0 -9
- data/stories/pending_stories/README +0 -3
- data/stories/resources/helpers/cmdline.rb +0 -9
- data/stories/resources/helpers/story_helper.rb +0 -16
- data/stories/resources/matchers/smart_match.rb +0 -37
- data/stories/resources/spec/example_group_with_should_methods.rb +0 -12
- data/stories/resources/spec/simple_spec.rb +0 -8
- data/stories/resources/spec/spec_with_flexmock.rb +0 -18
- data/stories/resources/steps/running_rspec.rb +0 -50
- data/stories/resources/stories/failing_story.rb +0 -15
- data/stories/resources/test/spec_and_test_together.rb +0 -57
- data/stories/resources/test/test_case_with_should_methods.rb +0 -30
- data/stories/stories/multiline_steps.story +0 -23
- data/stories/stories/steps/multiline_steps.rb +0 -13
- data/stories/stories/stories.rb +0 -6
@@ -1,31 +0,0 @@
|
|
1
|
-
module Spec
|
2
|
-
module Mocks
|
3
|
-
module ArgumentConstraintMatchers
|
4
|
-
|
5
|
-
# Shortcut for creating an instance of Spec::Mocks::DuckTypeArgConstraint
|
6
|
-
def duck_type(*args)
|
7
|
-
DuckTypeArgConstraint.new(*args)
|
8
|
-
end
|
9
|
-
|
10
|
-
def any_args
|
11
|
-
AnyArgsConstraint.new
|
12
|
-
end
|
13
|
-
|
14
|
-
def anything
|
15
|
-
AnyArgConstraint.new(nil)
|
16
|
-
end
|
17
|
-
|
18
|
-
def boolean
|
19
|
-
BooleanArgConstraint.new(nil)
|
20
|
-
end
|
21
|
-
|
22
|
-
def hash_including(expected={})
|
23
|
-
HashIncludingConstraint.new(expected)
|
24
|
-
end
|
25
|
-
|
26
|
-
def no_args
|
27
|
-
NoArgsConstraint.new
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
@@ -1,216 +0,0 @@
|
|
1
|
-
module Spec
|
2
|
-
module Mocks
|
3
|
-
|
4
|
-
class MatcherConstraint
|
5
|
-
def initialize(matcher)
|
6
|
-
@matcher = matcher
|
7
|
-
end
|
8
|
-
|
9
|
-
def matches?(value)
|
10
|
-
@matcher.matches?(value)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
class LiteralArgConstraint
|
15
|
-
def initialize(literal)
|
16
|
-
@literal_value = literal
|
17
|
-
end
|
18
|
-
|
19
|
-
def matches?(value)
|
20
|
-
@literal_value == value
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
class RegexpArgConstraint
|
25
|
-
def initialize(regexp)
|
26
|
-
@regexp = regexp
|
27
|
-
end
|
28
|
-
|
29
|
-
def matches?(value)
|
30
|
-
return value =~ @regexp unless value.is_a?(Regexp)
|
31
|
-
value == @regexp
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
class AnyArgConstraint
|
36
|
-
def initialize(ignore)
|
37
|
-
end
|
38
|
-
|
39
|
-
def ==(other)
|
40
|
-
true
|
41
|
-
end
|
42
|
-
|
43
|
-
# TODO - need this?
|
44
|
-
def matches?(value)
|
45
|
-
true
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
class AnyArgsConstraint
|
50
|
-
def description
|
51
|
-
"any args"
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
class NoArgsConstraint
|
56
|
-
def description
|
57
|
-
"no args"
|
58
|
-
end
|
59
|
-
|
60
|
-
def ==(args)
|
61
|
-
args == []
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
class NumericArgConstraint
|
66
|
-
def initialize(ignore)
|
67
|
-
end
|
68
|
-
|
69
|
-
def matches?(value)
|
70
|
-
value.is_a?(Numeric)
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
class BooleanArgConstraint
|
75
|
-
def initialize(ignore)
|
76
|
-
end
|
77
|
-
|
78
|
-
def ==(value)
|
79
|
-
matches?(value)
|
80
|
-
end
|
81
|
-
|
82
|
-
def matches?(value)
|
83
|
-
return true if value.is_a?(TrueClass)
|
84
|
-
return true if value.is_a?(FalseClass)
|
85
|
-
false
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
class StringArgConstraint
|
90
|
-
def initialize(ignore)
|
91
|
-
end
|
92
|
-
|
93
|
-
def matches?(value)
|
94
|
-
value.is_a?(String)
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
98
|
-
class DuckTypeArgConstraint
|
99
|
-
def initialize(*methods_to_respond_to)
|
100
|
-
@methods_to_respond_to = methods_to_respond_to
|
101
|
-
end
|
102
|
-
|
103
|
-
def matches?(value)
|
104
|
-
@methods_to_respond_to.all? { |sym| value.respond_to?(sym) }
|
105
|
-
end
|
106
|
-
|
107
|
-
def description
|
108
|
-
"duck_type"
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
class HashIncludingConstraint
|
113
|
-
def initialize(expected)
|
114
|
-
@expected = expected
|
115
|
-
end
|
116
|
-
|
117
|
-
def ==(actual)
|
118
|
-
@expected.each do | key, value |
|
119
|
-
# check key for case that value evaluates to nil
|
120
|
-
return false unless actual.has_key?(key) && actual[key] == value
|
121
|
-
end
|
122
|
-
true
|
123
|
-
rescue NoMethodError => ex
|
124
|
-
return false
|
125
|
-
end
|
126
|
-
|
127
|
-
def matches?(value)
|
128
|
-
self == value
|
129
|
-
end
|
130
|
-
|
131
|
-
def description
|
132
|
-
"hash_including(#{@expected.inspect.sub(/^\{/,"").sub(/\}$/,"")})"
|
133
|
-
end
|
134
|
-
|
135
|
-
end
|
136
|
-
|
137
|
-
|
138
|
-
class ArgumentExpectation
|
139
|
-
attr_reader :args
|
140
|
-
@@constraint_classes = Hash.new { |hash, key| LiteralArgConstraint}
|
141
|
-
@@constraint_classes[:anything] = AnyArgConstraint
|
142
|
-
@@constraint_classes[:numeric] = NumericArgConstraint
|
143
|
-
@@constraint_classes[:boolean] = BooleanArgConstraint
|
144
|
-
@@constraint_classes[:string] = StringArgConstraint
|
145
|
-
|
146
|
-
def initialize(args, &block)
|
147
|
-
@args = args
|
148
|
-
@constraints_block = block
|
149
|
-
|
150
|
-
if [:any_args] == args
|
151
|
-
@expected_params = nil
|
152
|
-
warn_deprecated(:any_args.inspect, "any_args()")
|
153
|
-
elsif args.length == 1 && args[0].is_a?(AnyArgsConstraint) then @expected_params = nil
|
154
|
-
elsif [:no_args] == args
|
155
|
-
@expected_params = []
|
156
|
-
warn_deprecated(:no_args.inspect, "no_args()")
|
157
|
-
elsif args.length == 1 && args[0].is_a?(NoArgsConstraint) then @expected_params = []
|
158
|
-
else @expected_params = process_arg_constraints(args)
|
159
|
-
end
|
160
|
-
end
|
161
|
-
|
162
|
-
def process_arg_constraints(constraints)
|
163
|
-
constraints.collect do |constraint|
|
164
|
-
convert_constraint(constraint)
|
165
|
-
end
|
166
|
-
end
|
167
|
-
|
168
|
-
def warn_deprecated(deprecated_method, instead)
|
169
|
-
Kernel.warn "The #{deprecated_method} constraint is deprecated. Use #{instead} instead."
|
170
|
-
end
|
171
|
-
|
172
|
-
def convert_constraint(constraint)
|
173
|
-
if [:anything, :numeric, :boolean, :string].include?(constraint)
|
174
|
-
case constraint
|
175
|
-
when :anything
|
176
|
-
instead = "anything()"
|
177
|
-
when :boolean
|
178
|
-
instead = "boolean()"
|
179
|
-
when :numeric
|
180
|
-
instead = "an_instance_of(Numeric)"
|
181
|
-
when :string
|
182
|
-
instead = "an_instance_of(String)"
|
183
|
-
end
|
184
|
-
warn_deprecated(constraint.inspect, instead)
|
185
|
-
return @@constraint_classes[constraint].new(constraint)
|
186
|
-
end
|
187
|
-
return MatcherConstraint.new(constraint) if is_matcher?(constraint)
|
188
|
-
return RegexpArgConstraint.new(constraint) if constraint.is_a?(Regexp)
|
189
|
-
return LiteralArgConstraint.new(constraint)
|
190
|
-
end
|
191
|
-
|
192
|
-
def is_matcher?(obj)
|
193
|
-
return obj.respond_to?(:matches?) && obj.respond_to?(:description)
|
194
|
-
end
|
195
|
-
|
196
|
-
def check_args(args)
|
197
|
-
if @constraints_block
|
198
|
-
@constraints_block.call(*args)
|
199
|
-
return true
|
200
|
-
end
|
201
|
-
|
202
|
-
return true if @expected_params.nil?
|
203
|
-
return true if @expected_params == args
|
204
|
-
return constraints_match?(args)
|
205
|
-
end
|
206
|
-
|
207
|
-
def constraints_match?(args)
|
208
|
-
return false if args.length != @expected_params.length
|
209
|
-
@expected_params.each_index { |i| return false unless @expected_params[i].matches?(args[i]) }
|
210
|
-
return true
|
211
|
-
end
|
212
|
-
|
213
|
-
end
|
214
|
-
|
215
|
-
end
|
216
|
-
end
|
@@ -1,84 +0,0 @@
|
|
1
|
-
module Spec
|
2
|
-
module Mocks
|
3
|
-
class ErrorGenerator
|
4
|
-
attr_writer :opts
|
5
|
-
|
6
|
-
def initialize(target, name)
|
7
|
-
@target = target
|
8
|
-
@name = name
|
9
|
-
end
|
10
|
-
|
11
|
-
def opts
|
12
|
-
@opts ||= {}
|
13
|
-
end
|
14
|
-
|
15
|
-
def raise_unexpected_message_error(sym, *args)
|
16
|
-
__raise "#{intro} received unexpected message :#{sym}#{arg_message(*args)}"
|
17
|
-
end
|
18
|
-
|
19
|
-
def raise_unexpected_message_args_error(expectation, *args)
|
20
|
-
expected_args = format_args(*expectation.expected_args)
|
21
|
-
actual_args = args.empty? ? "(no args)" : format_args(*args)
|
22
|
-
__raise "#{intro} expected #{expectation.sym.inspect} with #{expected_args} but received it with #{actual_args}"
|
23
|
-
end
|
24
|
-
|
25
|
-
def raise_expectation_error(sym, expected_received_count, actual_received_count, *args)
|
26
|
-
__raise "#{intro} expected :#{sym}#{arg_message(*args)} #{count_message(expected_received_count)}, but received it #{count_message(actual_received_count)}"
|
27
|
-
end
|
28
|
-
|
29
|
-
def raise_out_of_order_error(sym)
|
30
|
-
__raise "#{intro} received :#{sym} out of order"
|
31
|
-
end
|
32
|
-
|
33
|
-
def raise_block_failed_error(sym, detail)
|
34
|
-
__raise "#{intro} received :#{sym} but passed block failed with: #{detail}"
|
35
|
-
end
|
36
|
-
|
37
|
-
def raise_missing_block_error(args_to_yield)
|
38
|
-
__raise "#{intro} asked to yield |#{arg_list(*args_to_yield)}| but no block was passed"
|
39
|
-
end
|
40
|
-
|
41
|
-
def raise_wrong_arity_error(args_to_yield, arity)
|
42
|
-
__raise "#{intro} yielded |#{arg_list(*args_to_yield)}| to block with arity of #{arity}"
|
43
|
-
end
|
44
|
-
|
45
|
-
private
|
46
|
-
def intro
|
47
|
-
@name ? "Mock '#{@name}'" : @target.inspect
|
48
|
-
end
|
49
|
-
|
50
|
-
def __raise(message)
|
51
|
-
message = opts[:message] unless opts[:message].nil?
|
52
|
-
Kernel::raise(Spec::Mocks::MockExpectationError, message)
|
53
|
-
end
|
54
|
-
|
55
|
-
def arg_message(*args)
|
56
|
-
" with " + format_args(*args)
|
57
|
-
end
|
58
|
-
|
59
|
-
def format_args(*args)
|
60
|
-
return "(no args)" if args.empty? || args == [:no_args]
|
61
|
-
return "(any args)" if args == [:any_args]
|
62
|
-
"(" + arg_list(*args) + ")"
|
63
|
-
end
|
64
|
-
|
65
|
-
def arg_list(*args)
|
66
|
-
args.collect do |arg|
|
67
|
-
arg.respond_to?(:description) ? arg.description : arg.inspect
|
68
|
-
end.join(", ")
|
69
|
-
end
|
70
|
-
|
71
|
-
def count_message(count)
|
72
|
-
return "at least #{pretty_print(count.abs)}" if count < 0
|
73
|
-
return pretty_print(count)
|
74
|
-
end
|
75
|
-
|
76
|
-
def pretty_print(count)
|
77
|
-
return "once" if count == 1
|
78
|
-
return "twice" if count == 2
|
79
|
-
return "#{count} times"
|
80
|
-
end
|
81
|
-
|
82
|
-
end
|
83
|
-
end
|
84
|
-
end
|
@@ -1 +0,0 @@
|
|
1
|
-
require 'spec/mocks/extensions/object'
|
data/lib/spec/mocks/framework.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
# Require everything except the global extensions of class and object. This
|
2
|
-
# supports wrapping rspec's mocking functionality without invading every
|
3
|
-
# object in the system.
|
4
|
-
|
5
|
-
require 'spec/mocks/methods'
|
6
|
-
require 'spec/mocks/argument_constraint_matchers'
|
7
|
-
require 'spec/mocks/spec_methods'
|
8
|
-
require 'spec/mocks/proxy'
|
9
|
-
require 'spec/mocks/mock'
|
10
|
-
require 'spec/mocks/argument_expectation'
|
11
|
-
require 'spec/mocks/message_expectation'
|
12
|
-
require 'spec/mocks/order_group'
|
13
|
-
require 'spec/mocks/errors'
|
14
|
-
require 'spec/mocks/error_generator'
|
15
|
-
require 'spec/mocks/space'
|
@@ -1,290 +0,0 @@
|
|
1
|
-
module Spec
|
2
|
-
module Mocks
|
3
|
-
|
4
|
-
class BaseExpectation
|
5
|
-
attr_reader :sym
|
6
|
-
|
7
|
-
def initialize(error_generator, expectation_ordering, expected_from, sym, method_block, expected_received_count=1, opts={})
|
8
|
-
@error_generator = error_generator
|
9
|
-
@error_generator.opts = opts
|
10
|
-
@expected_from = expected_from
|
11
|
-
@sym = sym
|
12
|
-
@method_block = method_block
|
13
|
-
@return_block = nil
|
14
|
-
@actual_received_count = 0
|
15
|
-
@expected_received_count = expected_received_count
|
16
|
-
@args_expectation = ArgumentExpectation.new([AnyArgsConstraint.new])
|
17
|
-
@consecutive = false
|
18
|
-
@exception_to_raise = nil
|
19
|
-
@symbol_to_throw = nil
|
20
|
-
@order_group = expectation_ordering
|
21
|
-
@at_least = nil
|
22
|
-
@at_most = nil
|
23
|
-
@args_to_yield = []
|
24
|
-
end
|
25
|
-
|
26
|
-
def expected_args
|
27
|
-
@args_expectation.args
|
28
|
-
end
|
29
|
-
|
30
|
-
def and_return(*values, &return_block)
|
31
|
-
Kernel::raise AmbiguousReturnError unless @method_block.nil?
|
32
|
-
case values.size
|
33
|
-
when 0 then value = nil
|
34
|
-
when 1 then value = values[0]
|
35
|
-
else
|
36
|
-
value = values
|
37
|
-
@consecutive = true
|
38
|
-
@expected_received_count = values.size if !ignoring_args? &&
|
39
|
-
@expected_received_count < values.size
|
40
|
-
end
|
41
|
-
@return_block = block_given? ? return_block : lambda { value }
|
42
|
-
# Ruby 1.9 - see where this is used below
|
43
|
-
@ignore_args = !block_given?
|
44
|
-
end
|
45
|
-
|
46
|
-
# :call-seq:
|
47
|
-
# and_raise()
|
48
|
-
# and_raise(Exception) #any exception class
|
49
|
-
# and_raise(exception) #any exception object
|
50
|
-
#
|
51
|
-
# == Warning
|
52
|
-
#
|
53
|
-
# When you pass an exception class, the MessageExpectation will
|
54
|
-
# raise an instance of it, creating it with +new+. If the exception
|
55
|
-
# class initializer requires any parameters, you must pass in an
|
56
|
-
# instance and not the class.
|
57
|
-
def and_raise(exception=Exception)
|
58
|
-
@exception_to_raise = exception
|
59
|
-
end
|
60
|
-
|
61
|
-
def and_throw(symbol)
|
62
|
-
@symbol_to_throw = symbol
|
63
|
-
end
|
64
|
-
|
65
|
-
def and_yield(*args)
|
66
|
-
@args_to_yield << args
|
67
|
-
self
|
68
|
-
end
|
69
|
-
|
70
|
-
def matches(sym, args)
|
71
|
-
@sym == sym and @args_expectation.check_args(args)
|
72
|
-
end
|
73
|
-
|
74
|
-
def invoke(args, block)
|
75
|
-
if @expected_received_count == 0
|
76
|
-
@actual_received_count += 1
|
77
|
-
@error_generator.raise_expectation_error @sym, @expected_received_count, @actual_received_count, *args
|
78
|
-
end
|
79
|
-
|
80
|
-
@order_group.handle_order_constraint self
|
81
|
-
|
82
|
-
begin
|
83
|
-
Kernel::raise @exception_to_raise unless @exception_to_raise.nil?
|
84
|
-
Kernel::throw @symbol_to_throw unless @symbol_to_throw.nil?
|
85
|
-
|
86
|
-
|
87
|
-
if !@method_block.nil?
|
88
|
-
default_return_val = invoke_method_block(args)
|
89
|
-
elsif @args_to_yield.size > 0
|
90
|
-
default_return_val = invoke_with_yield(block)
|
91
|
-
else
|
92
|
-
default_return_val = nil
|
93
|
-
end
|
94
|
-
|
95
|
-
if @consecutive
|
96
|
-
return invoke_consecutive_return_block(args, block)
|
97
|
-
elsif @return_block
|
98
|
-
return invoke_return_block(args, block)
|
99
|
-
else
|
100
|
-
return default_return_val
|
101
|
-
end
|
102
|
-
ensure
|
103
|
-
@actual_received_count += 1
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
|
-
protected
|
108
|
-
|
109
|
-
def invoke_method_block(args)
|
110
|
-
begin
|
111
|
-
@method_block.call(*args)
|
112
|
-
rescue => detail
|
113
|
-
@error_generator.raise_block_failed_error @sym, detail.message
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
def invoke_with_yield(block)
|
118
|
-
if block.nil?
|
119
|
-
@error_generator.raise_missing_block_error @args_to_yield
|
120
|
-
end
|
121
|
-
value = nil
|
122
|
-
@args_to_yield.each do |args_to_yield_this_time|
|
123
|
-
if block.arity > -1 && args_to_yield_this_time.length != block.arity
|
124
|
-
@error_generator.raise_wrong_arity_error args_to_yield_this_time, block.arity
|
125
|
-
end
|
126
|
-
value = block.call(*args_to_yield_this_time)
|
127
|
-
end
|
128
|
-
value
|
129
|
-
end
|
130
|
-
|
131
|
-
def invoke_consecutive_return_block(args, block)
|
132
|
-
args << block unless block.nil?
|
133
|
-
value = @return_block.call(*args)
|
134
|
-
|
135
|
-
index = [@actual_received_count, value.size-1].min
|
136
|
-
value[index]
|
137
|
-
end
|
138
|
-
|
139
|
-
def invoke_return_block(args, block)
|
140
|
-
args << block unless block.nil?
|
141
|
-
# Ruby 1.9 - when we set @return_block to return values
|
142
|
-
# regardless of arguments, any arguments will result in
|
143
|
-
# a "wrong number of arguments" error
|
144
|
-
if @ignore_args
|
145
|
-
@return_block.call()
|
146
|
-
else
|
147
|
-
@return_block.call(*args)
|
148
|
-
end
|
149
|
-
end
|
150
|
-
end
|
151
|
-
|
152
|
-
class MessageExpectation < BaseExpectation
|
153
|
-
|
154
|
-
def matches_name_but_not_args(sym, args)
|
155
|
-
@sym == sym and not @args_expectation.check_args(args)
|
156
|
-
end
|
157
|
-
|
158
|
-
def verify_messages_received
|
159
|
-
return if expected_messages_received?
|
160
|
-
|
161
|
-
generate_error
|
162
|
-
rescue Spec::Mocks::MockExpectationError => error
|
163
|
-
error.backtrace.insert(0, @expected_from)
|
164
|
-
Kernel::raise error
|
165
|
-
end
|
166
|
-
|
167
|
-
def expected_messages_received?
|
168
|
-
ignoring_args? || matches_exact_count? ||
|
169
|
-
matches_at_least_count? || matches_at_most_count?
|
170
|
-
end
|
171
|
-
|
172
|
-
def ignoring_args?
|
173
|
-
@expected_received_count == :any
|
174
|
-
end
|
175
|
-
|
176
|
-
def matches_at_least_count?
|
177
|
-
@at_least && @actual_received_count >= @expected_received_count
|
178
|
-
end
|
179
|
-
|
180
|
-
def matches_at_most_count?
|
181
|
-
@at_most && @actual_received_count <= @expected_received_count
|
182
|
-
end
|
183
|
-
|
184
|
-
def matches_exact_count?
|
185
|
-
@expected_received_count == @actual_received_count
|
186
|
-
end
|
187
|
-
|
188
|
-
def similar_messages
|
189
|
-
@similar_messages ||= []
|
190
|
-
end
|
191
|
-
|
192
|
-
def advise(args, block)
|
193
|
-
similar_messages << args
|
194
|
-
end
|
195
|
-
|
196
|
-
def generate_error
|
197
|
-
if similar_messages.empty?
|
198
|
-
@error_generator.raise_expectation_error(@sym, @expected_received_count, @actual_received_count, *@args_expectation.args)
|
199
|
-
else
|
200
|
-
@error_generator.raise_unexpected_message_args_error(self, *@similar_messages.first)
|
201
|
-
end
|
202
|
-
end
|
203
|
-
|
204
|
-
def with(*args, &block)
|
205
|
-
@args_expectation = ArgumentExpectation.new(args, &block)
|
206
|
-
self
|
207
|
-
end
|
208
|
-
|
209
|
-
def exactly(n)
|
210
|
-
set_expected_received_count :exactly, n
|
211
|
-
self
|
212
|
-
end
|
213
|
-
|
214
|
-
def at_least(n)
|
215
|
-
set_expected_received_count :at_least, n
|
216
|
-
self
|
217
|
-
end
|
218
|
-
|
219
|
-
def at_most(n)
|
220
|
-
set_expected_received_count :at_most, n
|
221
|
-
self
|
222
|
-
end
|
223
|
-
|
224
|
-
def times(&block)
|
225
|
-
@method_block = block if block
|
226
|
-
self
|
227
|
-
end
|
228
|
-
|
229
|
-
def any_number_of_times(&block)
|
230
|
-
@method_block = block if block
|
231
|
-
@expected_received_count = :any
|
232
|
-
self
|
233
|
-
end
|
234
|
-
|
235
|
-
def never
|
236
|
-
@expected_received_count = 0
|
237
|
-
self
|
238
|
-
end
|
239
|
-
|
240
|
-
def once(&block)
|
241
|
-
@method_block = block if block
|
242
|
-
@expected_received_count = 1
|
243
|
-
self
|
244
|
-
end
|
245
|
-
|
246
|
-
def twice(&block)
|
247
|
-
@method_block = block if block
|
248
|
-
@expected_received_count = 2
|
249
|
-
self
|
250
|
-
end
|
251
|
-
|
252
|
-
def ordered(&block)
|
253
|
-
@method_block = block if block
|
254
|
-
@order_group.register(self)
|
255
|
-
@ordered = true
|
256
|
-
self
|
257
|
-
end
|
258
|
-
|
259
|
-
def negative_expectation_for?(sym)
|
260
|
-
return false
|
261
|
-
end
|
262
|
-
|
263
|
-
protected
|
264
|
-
def set_expected_received_count(relativity, n)
|
265
|
-
@at_least = (relativity == :at_least)
|
266
|
-
@at_most = (relativity == :at_most)
|
267
|
-
@expected_received_count = case n
|
268
|
-
when Numeric
|
269
|
-
n
|
270
|
-
when :once
|
271
|
-
1
|
272
|
-
when :twice
|
273
|
-
2
|
274
|
-
end
|
275
|
-
end
|
276
|
-
|
277
|
-
end
|
278
|
-
|
279
|
-
class NegativeMessageExpectation < MessageExpectation
|
280
|
-
def initialize(message, expectation_ordering, expected_from, sym, method_block)
|
281
|
-
super(message, expectation_ordering, expected_from, sym, method_block, 0)
|
282
|
-
end
|
283
|
-
|
284
|
-
def negative_expectation_for?(sym)
|
285
|
-
return @sym == sym
|
286
|
-
end
|
287
|
-
end
|
288
|
-
|
289
|
-
end
|
290
|
-
end
|