gem_repackager 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/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE +22 -0
- data/README.md +56 -0
- data/Rakefile +9 -0
- data/bin/gem_repackager +57 -0
- data/gem_repackager.gemspec +22 -0
- data/lib/gem_repackager.rb +131 -0
- data/lib/gem_repackager/version.rb +5 -0
- data/spec/packager_spec.rb +131 -0
- data/spec/spec_helper.rb +1 -0
- data/support/bin/rspec +19 -0
- data/support/gems/rspec-2.11.0/License.txt +24 -0
- data/support/gems/rspec-2.11.0/README.md +47 -0
- data/support/gems/rspec-2.11.0/lib/rspec.rb +4 -0
- data/support/gems/rspec-2.11.0/lib/rspec/version.rb +5 -0
- data/support/gems/rspec-core-2.11.1/.document +5 -0
- data/support/gems/rspec-core-2.11.1/.yardopts +6 -0
- data/support/gems/rspec-core-2.11.1/Changelog.md +570 -0
- data/support/gems/rspec-core-2.11.1/License.txt +24 -0
- data/support/gems/rspec-core-2.11.1/README.md +235 -0
- data/support/gems/rspec-core-2.11.1/exe/autospec +13 -0
- data/support/gems/rspec-core-2.11.1/exe/rspec +25 -0
- data/support/gems/rspec-core-2.11.1/features/Autotest.md +38 -0
- data/support/gems/rspec-core-2.11.1/features/README.md +17 -0
- data/support/gems/rspec-core-2.11.1/features/Upgrade.md +364 -0
- data/support/gems/rspec-core-2.11.1/features/command_line/README.md +28 -0
- data/support/gems/rspec-core-2.11.1/features/command_line/example_name_option.feature +101 -0
- data/support/gems/rspec-core-2.11.1/features/command_line/exit_status.feature +83 -0
- data/support/gems/rspec-core-2.11.1/features/command_line/format_option.feature +81 -0
- data/support/gems/rspec-core-2.11.1/features/command_line/init.feature +18 -0
- data/support/gems/rspec-core-2.11.1/features/command_line/line_number_appended_to_path.feature +140 -0
- data/support/gems/rspec-core-2.11.1/features/command_line/line_number_option.feature +58 -0
- data/support/gems/rspec-core-2.11.1/features/command_line/order.feature +29 -0
- data/support/gems/rspec-core-2.11.1/features/command_line/pattern_option.feature +31 -0
- data/support/gems/rspec-core-2.11.1/features/command_line/rake_task.feature +68 -0
- data/support/gems/rspec-core-2.11.1/features/command_line/ruby.feature +22 -0
- data/support/gems/rspec-core-2.11.1/features/command_line/tag.feature +91 -0
- data/support/gems/rspec-core-2.11.1/features/configuration/alias_example_to.feature +48 -0
- data/support/gems/rspec-core-2.11.1/features/configuration/custom_settings.feature +84 -0
- data/support/gems/rspec-core-2.11.1/features/configuration/default_path.feature +38 -0
- data/support/gems/rspec-core-2.11.1/features/configuration/fail_fast.feature +77 -0
- data/support/gems/rspec-core-2.11.1/features/configuration/read_options_from_file.feature +87 -0
- data/support/gems/rspec-core-2.11.1/features/example_groups/basic_structure.feature +55 -0
- data/support/gems/rspec-core-2.11.1/features/example_groups/shared_context.feature +74 -0
- data/support/gems/rspec-core-2.11.1/features/example_groups/shared_examples.feature +204 -0
- data/support/gems/rspec-core-2.11.1/features/expectation_framework_integration/configure_expectation_framework.feature +102 -0
- data/support/gems/rspec-core-2.11.1/features/filtering/exclusion_filters.feature +139 -0
- data/support/gems/rspec-core-2.11.1/features/filtering/if_and_unless.feature +168 -0
- data/support/gems/rspec-core-2.11.1/features/filtering/inclusion_filters.feature +105 -0
- data/support/gems/rspec-core-2.11.1/features/filtering/run_all_when_everything_filtered.feature +46 -0
- data/support/gems/rspec-core-2.11.1/features/formatters/custom_formatter.feature +36 -0
- data/support/gems/rspec-core-2.11.1/features/formatters/text_formatter.feature +46 -0
- data/support/gems/rspec-core-2.11.1/features/helper_methods/arbitrary_methods.feature +40 -0
- data/support/gems/rspec-core-2.11.1/features/helper_methods/let.feature +50 -0
- data/support/gems/rspec-core-2.11.1/features/helper_methods/modules.feature +149 -0
- data/support/gems/rspec-core-2.11.1/features/hooks/around_hooks.feature +343 -0
- data/support/gems/rspec-core-2.11.1/features/hooks/before_and_after_hooks.feature +423 -0
- data/support/gems/rspec-core-2.11.1/features/hooks/filtering.feature +234 -0
- data/support/gems/rspec-core-2.11.1/features/metadata/current_example.feature +17 -0
- data/support/gems/rspec-core-2.11.1/features/metadata/described_class.feature +17 -0
- data/support/gems/rspec-core-2.11.1/features/metadata/user_defined.feature +113 -0
- data/support/gems/rspec-core-2.11.1/features/mock_framework_integration/use_any_framework.feature +106 -0
- data/support/gems/rspec-core-2.11.1/features/mock_framework_integration/use_flexmock.feature +96 -0
- data/support/gems/rspec-core-2.11.1/features/mock_framework_integration/use_mocha.feature +97 -0
- data/support/gems/rspec-core-2.11.1/features/mock_framework_integration/use_rr.feature +98 -0
- data/support/gems/rspec-core-2.11.1/features/mock_framework_integration/use_rspec.feature +97 -0
- data/support/gems/rspec-core-2.11.1/features/pending/pending_examples.feature +229 -0
- data/support/gems/rspec-core-2.11.1/features/spec_files/arbitrary_file_suffix.feature +13 -0
- data/support/gems/rspec-core-2.11.1/features/step_definitions/additional_cli_steps.rb +30 -0
- data/support/gems/rspec-core-2.11.1/features/subject/attribute_of_subject.feature +124 -0
- data/support/gems/rspec-core-2.11.1/features/subject/explicit_subject.feature +82 -0
- data/support/gems/rspec-core-2.11.1/features/subject/implicit_receiver.feature +29 -0
- data/support/gems/rspec-core-2.11.1/features/subject/implicit_subject.feature +63 -0
- data/support/gems/rspec-core-2.11.1/features/support/env.rb +12 -0
- data/support/gems/rspec-core-2.11.1/lib/autotest/discover.rb +1 -0
- data/support/gems/rspec-core-2.11.1/lib/autotest/rspec2.rb +73 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/autorun.rb +2 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core.rb +126 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/backward_compatibility.rb +65 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/command_line.rb +36 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb +944 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/configuration_options.rb +129 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/deprecation.rb +36 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/drb_command_line.rb +26 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/drb_options.rb +87 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/dsl.rb +26 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/example.rb +330 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb +466 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/extensions.rb +4 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/extensions/instance_eval_with_args.rb +44 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/extensions/kernel.rb +9 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/extensions/module_eval_with_args.rb +38 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/extensions/ordered.rb +21 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/filter_manager.rb +203 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/formatters/base_formatter.rb +168 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/formatters/base_text_formatter.rb +203 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/formatters/documentation_formatter.rb +67 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/formatters/helpers.rb +39 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/formatters/html_formatter.rb +464 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/formatters/progress_formatter.rb +32 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/formatters/snippet_extractor.rb +58 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/formatters/text_mate_formatter.rb +34 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/hooks.rb +495 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/let.rb +110 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/load_path.rb +3 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/metadata.rb +276 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/metadata_hash_builder.rb +97 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/mocking/with_absolutely_nothing.rb +11 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/mocking/with_flexmock.rb +27 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/mocking/with_mocha.rb +29 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/mocking/with_rr.rb +27 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/mocking/with_rspec.rb +23 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/option_parser.rb +181 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/pending.rb +101 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/project_initializer.rb +87 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/rake_task.rb +179 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/reporter.rb +102 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/ruby_project.rb +44 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/runner.rb +76 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/shared_context.rb +49 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/shared_example_group.rb +96 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/subject.rb +219 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/version.rb +7 -0
- data/support/gems/rspec-core-2.11.1/lib/rspec/core/world.rb +128 -0
- data/support/gems/rspec-core-2.11.1/spec/autotest/discover_spec.rb +19 -0
- data/support/gems/rspec-core-2.11.1/spec/autotest/failed_results_re_spec.rb +45 -0
- data/support/gems/rspec-core-2.11.1/spec/autotest/rspec_spec.rb +123 -0
- data/support/gems/rspec-core-2.11.1/spec/command_line/order_spec.rb +137 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/command_line_spec.rb +108 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/command_line_spec_output.txt +0 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/configuration_options_spec.rb +377 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/configuration_spec.rb +1196 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/deprecations_spec.rb +66 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/drb_command_line_spec.rb +108 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/drb_options_spec.rb +180 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/dsl_spec.rb +17 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/example_group_spec.rb +1098 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/example_spec.rb +370 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/filter_manager_spec.rb +256 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/base_formatter_spec.rb +80 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/base_text_formatter_spec.rb +363 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/documentation_formatter_spec.rb +88 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/helpers_spec.rb +66 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/html_formatted-1.8.7-jruby.html +410 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/html_formatted-1.8.7.html +409 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/html_formatted-1.9.2.html +416 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/html_formatted-1.9.3.html +416 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/html_formatter_spec.rb +82 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/progress_formatter_spec.rb +30 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/snippet_extractor_spec.rb +18 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/text_mate_formatted-1.8.7-jruby.html +410 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/text_mate_formatted-1.8.7.html +409 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/text_mate_formatted-1.9.2.html +416 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/text_mate_formatted-1.9.3.html +416 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/formatters/text_mate_formatter_spec.rb +83 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/hooks_filtering_spec.rb +227 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/hooks_spec.rb +250 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/kernel_extensions_spec.rb +9 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/let_spec.rb +55 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/metadata_spec.rb +447 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/option_parser_spec.rb +166 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/pending_example_spec.rb +220 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/project_initializer_spec.rb +130 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/rake_task_spec.rb +138 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/reporter_spec.rb +103 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/resources/a_bar.rb +0 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/resources/a_foo.rb +0 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/resources/a_spec.rb +1 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/resources/custom_example_group_runner.rb +14 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/resources/formatter_specs.rb +60 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/resources/utf8_encoded.rb +8 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/rspec_matchers_spec.rb +45 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/ruby_project_spec.rb +24 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/runner_spec.rb +81 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/shared_context_spec.rb +67 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/shared_example_group_spec.rb +84 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/subject_spec.rb +244 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core/world_spec.rb +144 -0
- data/support/gems/rspec-core-2.11.1/spec/rspec/core_spec.rb +35 -0
- data/support/gems/rspec-core-2.11.1/spec/spec_helper.rb +98 -0
- data/support/gems/rspec-core-2.11.1/spec/support/config_options_helper.rb +24 -0
- data/support/gems/rspec-core-2.11.1/spec/support/helper_methods.rb +5 -0
- data/support/gems/rspec-core-2.11.1/spec/support/matchers.rb +65 -0
- data/support/gems/rspec-core-2.11.1/spec/support/shared_example_groups.rb +41 -0
- data/support/gems/rspec-core-2.11.1/spec/support/spec_files.rb +44 -0
- data/support/gems/rspec-expectations-2.11.2/.document +5 -0
- data/support/gems/rspec-expectations-2.11.2/.yardopts +6 -0
- data/support/gems/rspec-expectations-2.11.2/Changelog.md +246 -0
- data/support/gems/rspec-expectations-2.11.2/License.txt +23 -0
- data/support/gems/rspec-expectations-2.11.2/README.md +224 -0
- data/support/gems/rspec-expectations-2.11.2/features/README.md +49 -0
- data/support/gems/rspec-expectations-2.11.2/features/Upgrade.md +53 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/README.md +90 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/be.feature +173 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/be_within.feature +46 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/cover.feature +45 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/end_with.feature +46 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/equality.feature +145 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/exist.feature +43 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/expect_change.feature +59 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/expect_error.feature +138 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/have.feature +103 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/include.feature +121 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/match.feature +50 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/operators.feature +221 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/predicates.feature +128 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/respond_to.feature +78 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/satisfy.feature +31 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/start_with.feature +46 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/throw_symbol.feature +85 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/types.feature +114 -0
- data/support/gems/rspec-expectations-2.11.2/features/built_in_matchers/yield.feature +146 -0
- data/support/gems/rspec-expectations-2.11.2/features/custom_matchers/access_running_example.feature +53 -0
- data/support/gems/rspec-expectations-2.11.2/features/custom_matchers/define_diffable_matcher.feature +27 -0
- data/support/gems/rspec-expectations-2.11.2/features/custom_matchers/define_matcher.feature +340 -0
- data/support/gems/rspec-expectations-2.11.2/features/custom_matchers/define_matcher_outside_rspec.feature +38 -0
- data/support/gems/rspec-expectations-2.11.2/features/custom_matchers/define_matcher_with_fluent_interface.feature +24 -0
- data/support/gems/rspec-expectations-2.11.2/features/customized_message.feature +22 -0
- data/support/gems/rspec-expectations-2.11.2/features/diffing.feature +85 -0
- data/support/gems/rspec-expectations-2.11.2/features/implicit_docstrings.feature +52 -0
- data/support/gems/rspec-expectations-2.11.2/features/step_definitions/additional_cli_steps.rb +22 -0
- data/support/gems/rspec-expectations-2.11.2/features/support/env.rb +5 -0
- data/support/gems/rspec-expectations-2.11.2/features/syntax_configuration.feature +68 -0
- data/support/gems/rspec-expectations-2.11.2/features/test_frameworks/test_unit.feature +46 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec-expectations.rb +1 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations.rb +47 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/deprecation.rb +38 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/differ.rb +81 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/errors.rb +9 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/expectation_target.rb +58 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/extensions.rb +2 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/extensions/array.rb +9 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/extensions/object.rb +39 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/fail_with.rb +55 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/handler.rb +48 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/syntax.rb +110 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/expectations/version.rb +8 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers.rb +689 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/be_close.rb +9 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in.rb +39 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/base_matcher.rb +68 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/be.rb +185 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/be_instance_of.rb +11 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/be_kind_of.rb +11 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/be_within.rb +45 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/change.rb +132 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/cover.rb +21 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/eq.rb +22 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/eql.rb +23 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/equal.rb +44 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/exist.rb +26 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/has.rb +47 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/have.rb +107 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/include.rb +51 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/match.rb +12 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/match_array.rb +45 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/raise_error.rb +96 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/respond_to.rb +73 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/satisfy.rb +29 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/start_and_end_with.rb +48 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/throw_symbol.rb +93 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/built_in/yield.rb +219 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/compatibility.rb +14 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/configuration.rb +66 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/dsl.rb +24 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/extensions/instance_eval_with_args.rb +39 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/generated_descriptions.rb +36 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/matcher.rb +299 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/method_missing.rb +12 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/operator_matcher.rb +84 -0
- data/support/gems/rspec-expectations-2.11.2/lib/rspec/matchers/pretty.rb +60 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/expectations/differ_spec.rb +153 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/expectations/expectation_target_spec.rb +65 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/expectations/extensions/kernel_spec.rb +67 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/expectations/fail_with_spec.rb +70 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/expectations/handler_spec.rb +206 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/base_matcher_spec.rb +60 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/be_close_spec.rb +22 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/be_instance_of_spec.rb +36 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/be_kind_of_spec.rb +33 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/be_spec.rb +452 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/be_within_spec.rb +76 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/change_spec.rb +522 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/configuration_spec.rb +160 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/cover_spec.rb +65 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/description_generation_spec.rb +176 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/dsl_spec.rb +57 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/eq_spec.rb +50 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/eql_spec.rb +37 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/equal_spec.rb +57 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/exist_spec.rb +104 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/has_spec.rb +113 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/have_spec.rb +458 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/include_spec.rb +363 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/match_array_spec.rb +120 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/match_spec.rb +57 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/matcher_spec.rb +434 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/matchers_spec.rb +31 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/method_missing_spec.rb +24 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/operator_matcher_spec.rb +221 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/raise_error_spec.rb +339 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/respond_to_spec.rb +292 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/satisfy_spec.rb +40 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/start_with_end_with_spec.rb +174 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/throw_symbol_spec.rb +111 -0
- data/support/gems/rspec-expectations-2.11.2/spec/rspec/matchers/yield_spec.rb +374 -0
- data/support/gems/rspec-expectations-2.11.2/spec/spec_helper.rb +27 -0
- data/support/gems/rspec-expectations-2.11.2/spec/support/classes.rb +56 -0
- data/support/gems/rspec-expectations-2.11.2/spec/support/in_sub_process.rb +31 -0
- data/support/gems/rspec-expectations-2.11.2/spec/support/matchers.rb +22 -0
- data/support/gems/rspec-expectations-2.11.2/spec/support/ruby_version.rb +10 -0
- data/support/gems/rspec-mocks-2.11.1/.document +5 -0
- data/support/gems/rspec-mocks-2.11.1/.yardopts +6 -0
- data/support/gems/rspec-mocks-2.11.1/Changelog.md +199 -0
- data/support/gems/rspec-mocks-2.11.1/License.txt +23 -0
- data/support/gems/rspec-mocks-2.11.1/README.md +276 -0
- data/support/gems/rspec-mocks-2.11.1/features/README.md +67 -0
- data/support/gems/rspec-mocks-2.11.1/features/Scope.md +17 -0
- data/support/gems/rspec-mocks-2.11.1/features/Upgrade.md +22 -0
- data/support/gems/rspec-mocks-2.11.1/features/argument_matchers/README.md +27 -0
- data/support/gems/rspec-mocks-2.11.1/features/argument_matchers/explicit.feature +60 -0
- data/support/gems/rspec-mocks-2.11.1/features/argument_matchers/general_matchers.feature +85 -0
- data/support/gems/rspec-mocks-2.11.1/features/argument_matchers/type_matchers.feature +25 -0
- data/support/gems/rspec-mocks-2.11.1/features/message_expectations/README.md +58 -0
- data/support/gems/rspec-mocks-2.11.1/features/message_expectations/any_instance.feature +21 -0
- data/support/gems/rspec-mocks-2.11.1/features/message_expectations/block_local_expectations.feature.pending +55 -0
- data/support/gems/rspec-mocks-2.11.1/features/message_expectations/expect_message.feature +94 -0
- data/support/gems/rspec-mocks-2.11.1/features/message_expectations/receive_counts.feature +209 -0
- data/support/gems/rspec-mocks-2.11.1/features/message_expectations/warn_when_expectation_is_set_on_nil.feature +50 -0
- data/support/gems/rspec-mocks-2.11.1/features/method_stubs/README.md +43 -0
- data/support/gems/rspec-mocks-2.11.1/features/method_stubs/any_instance.feature +133 -0
- data/support/gems/rspec-mocks-2.11.1/features/method_stubs/as_null_object.feature +35 -0
- data/support/gems/rspec-mocks-2.11.1/features/method_stubs/simple_return_value.feature +64 -0
- data/support/gems/rspec-mocks-2.11.1/features/method_stubs/stub_chain.feature +51 -0
- data/support/gems/rspec-mocks-2.11.1/features/method_stubs/stub_implementation.feature +26 -0
- data/support/gems/rspec-mocks-2.11.1/features/method_stubs/to_ary.feature +47 -0
- data/support/gems/rspec-mocks-2.11.1/features/outside_rspec/configuration.feature +82 -0
- data/support/gems/rspec-mocks-2.11.1/features/outside_rspec/standalone.feature +32 -0
- data/support/gems/rspec-mocks-2.11.1/features/step_definitions/additional_cli_steps.rb +4 -0
- data/support/gems/rspec-mocks-2.11.1/features/stubbing_constants/README.md +62 -0
- data/support/gems/rspec-mocks-2.11.1/features/stubbing_constants/stub_defined_constant.feature +79 -0
- data/support/gems/rspec-mocks-2.11.1/features/stubbing_constants/stub_undefined_constant.feature +50 -0
- data/support/gems/rspec-mocks-2.11.1/features/support/env.rb +6 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks.rb +39 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/any_instance.rb +81 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/any_instance/chain.rb +77 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/any_instance/expectation_chain.rb +57 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/any_instance/message_chains.rb +60 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/any_instance/recorder.rb +197 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/any_instance/stub_chain.rb +37 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/any_instance/stub_chain_chain.rb +25 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/argument_list_matcher.rb +93 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/argument_matchers.rb +238 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/error_generator.rb +114 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/errors.rb +12 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/example_methods.rb +95 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/extensions/instance_exec.rb +34 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/extensions/marshal.rb +23 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/extensions/psych.rb +23 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/framework.rb +20 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/message_expectation.rb +488 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/method_double.rb +196 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/methods.rb +155 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/mock.rb +7 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/order_group.rb +40 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/proxy.rb +190 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/serialization.rb +34 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/space.rb +34 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/standalone.rb +3 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/stub_const.rb +280 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/test_double.rb +103 -0
- data/support/gems/rspec-mocks-2.11.1/lib/rspec/mocks/version.rb +7 -0
- data/support/gems/rspec-mocks-2.11.1/lib/spec/mocks.rb +2 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/and_yield_spec.rb +114 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/any_instance/message_chains_spec.rb +40 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/any_instance_spec.rb +825 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/any_number_of_times_spec.rb +30 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/argument_expectation_spec.rb +34 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/at_least_spec.rb +142 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/at_most_spec.rb +90 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/block_return_value_spec.rb +53 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/bug_report_10260_spec.rb +8 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/bug_report_10263_spec.rb +25 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/bug_report_11545_spec.rb +32 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/bug_report_496_spec.rb +17 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/bug_report_600_spec.rb +22 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/bug_report_7611_spec.rb +16 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/bug_report_8165_spec.rb +31 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/bug_report_830_spec.rb +21 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/bug_report_957_spec.rb +22 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/double_spec.rb +12 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/failing_argument_matchers_spec.rb +95 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/hash_excluding_matcher_spec.rb +67 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/hash_including_matcher_spec.rb +90 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/mock_ordering_spec.rb +103 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/mock_space_spec.rb +58 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/mock_spec.rb +730 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/multiple_return_value_spec.rb +119 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/nil_expectation_warning_spec.rb +62 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/null_object_mock_spec.rb +106 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/once_counts_spec.rb +52 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/options_hash_spec.rb +35 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/partial_mock_spec.rb +156 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/partial_mock_using_mocks_directly_spec.rb +95 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/passing_argument_matchers_spec.rb +142 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/precise_counts_spec.rb +68 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/record_messages_spec.rb +26 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/serialization_spec.rb +111 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/stash_spec.rb +27 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/stub_chain_spec.rb +149 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/stub_const_spec.rb +309 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/stub_implementation_spec.rb +68 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/stub_spec.rb +238 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/stubbed_message_expectations_spec.rb +47 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/test_double_spec.rb +57 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/to_ary_spec.rb +40 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks/twice_counts_spec.rb +66 -0
- data/support/gems/rspec-mocks-2.11.1/spec/rspec/mocks_spec.rb +51 -0
- data/support/gems/rspec-mocks-2.11.1/spec/spec_helper.rb +15 -0
- data/support/gems/rspec-rails-2.11.0/.document +5 -0
- data/support/gems/rspec-rails-2.11.0/.yardopts +8 -0
- data/support/gems/rspec-rails-2.11.0/Changelog.md +293 -0
- data/support/gems/rspec-rails-2.11.0/License.txt +22 -0
- data/support/gems/rspec-rails-2.11.0/README.md +494 -0
- data/support/gems/rspec-rails-2.11.0/features/Autotest.md +24 -0
- data/support/gems/rspec-rails-2.11.0/features/Generators.md +8 -0
- data/support/gems/rspec-rails-2.11.0/features/GettingStarted.md +84 -0
- data/support/gems/rspec-rails-2.11.0/features/README.md +56 -0
- data/support/gems/rspec-rails-2.11.0/features/RailsVersions.md +4 -0
- data/support/gems/rspec-rails-2.11.0/features/Transactions.md +84 -0
- data/support/gems/rspec-rails-2.11.0/features/Upgrade.md +117 -0
- data/support/gems/rspec-rails-2.11.0/features/controller_specs/Cookies.md +57 -0
- data/support/gems/rspec-rails-2.11.0/features/controller_specs/README.md +45 -0
- data/support/gems/rspec-rails-2.11.0/features/controller_specs/anonymous_controller.feature +330 -0
- data/support/gems/rspec-rails-2.11.0/features/controller_specs/bypass_rescue.feature +75 -0
- data/support/gems/rspec-rails-2.11.0/features/controller_specs/controller_spec.feature +35 -0
- data/support/gems/rspec-rails-2.11.0/features/controller_specs/isolation_from_views.feature +87 -0
- data/support/gems/rspec-rails-2.11.0/features/controller_specs/render_views.feature +114 -0
- data/support/gems/rspec-rails-2.11.0/features/helper_specs/helper_spec.feature +96 -0
- data/support/gems/rspec-rails-2.11.0/features/mailer_specs/url_helpers.feature +38 -0
- data/support/gems/rspec-rails-2.11.0/features/matchers/README.md +18 -0
- data/support/gems/rspec-rails-2.11.0/features/matchers/new_record_matcher.feature +28 -0
- data/support/gems/rspec-rails-2.11.0/features/matchers/redirect_to_matcher.feature +40 -0
- data/support/gems/rspec-rails-2.11.0/features/matchers/relation_match_array.feature +20 -0
- data/support/gems/rspec-rails-2.11.0/features/matchers/render_template_matcher.feature +28 -0
- data/support/gems/rspec-rails-2.11.0/features/mocks/mock_model.feature +147 -0
- data/support/gems/rspec-rails-2.11.0/features/mocks/stub_model.feature +58 -0
- data/support/gems/rspec-rails-2.11.0/features/model_specs/README.md +21 -0
- data/support/gems/rspec-rails-2.11.0/features/model_specs/errors_on.feature +33 -0
- data/support/gems/rspec-rails-2.11.0/features/model_specs/transactional_examples.feature +109 -0
- data/support/gems/rspec-rails-2.11.0/features/request_specs/request_spec.feature +49 -0
- data/support/gems/rspec-rails-2.11.0/features/routing_specs/README.md +17 -0
- data/support/gems/rspec-rails-2.11.0/features/routing_specs/be_routable_matcher.feature +80 -0
- data/support/gems/rspec-rails-2.11.0/features/routing_specs/named_routes.feature +18 -0
- data/support/gems/rspec-rails-2.11.0/features/routing_specs/route_to_matcher.feature +90 -0
- data/support/gems/rspec-rails-2.11.0/features/step_definitions/additional_cli_steps.rb +4 -0
- data/support/gems/rspec-rails-2.11.0/features/step_definitions/model_steps.rb +3 -0
- data/support/gems/rspec-rails-2.11.0/features/support/env.rb +53 -0
- data/support/gems/rspec-rails-2.11.0/features/view_specs/inferred_controller_path.feature +44 -0
- data/support/gems/rspec-rails-2.11.0/features/view_specs/stub_template.feature +51 -0
- data/support/gems/rspec-rails-2.11.0/features/view_specs/view_spec.feature +174 -0
- data/support/gems/rspec-rails-2.11.0/lib/autotest/rails_rspec2.rb +84 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec.rb +25 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/controller/controller_generator.rb +33 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/controller/templates/controller_spec.rb +14 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/controller/templates/view_spec.rb +5 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/helper/helper_generator.rb +15 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/helper/templates/helper_spec.rb +15 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/install/install_generator.rb +24 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/install/templates/.rspec +1 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/install/templates/spec/spec_helper.rb +38 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/integration/integration_generator.rb +27 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/integration/templates/request_spec.rb +15 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/mailer/mailer_generator.rb +20 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/mailer/templates/fixture +3 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/mailer/templates/mailer_spec.rb +23 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/model/model_generator.rb +22 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/model/templates/fixtures.yml +19 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/model/templates/model_spec.rb +5 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/observer/observer_generator.rb +12 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/observer/templates/observer_spec.rb +5 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/scaffold/scaffold_generator.rb +158 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/scaffold/templates/controller_spec.rb +166 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/scaffold/templates/edit_spec.rb +31 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/scaffold/templates/index_spec.rb +32 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/scaffold/templates/new_spec.rb +30 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/scaffold/templates/routing_spec.rb +37 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/scaffold/templates/show_spec.rb +28 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/view/templates/view_spec.rb +5 -0
- data/support/gems/rspec-rails-2.11.0/lib/generators/rspec/view/view_generator.rb +21 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec-rails.rb +14 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails.rb +17 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/adapters.rb +79 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/example.rb +38 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/example/controller_example_group.rb +128 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/example/helper_example_group.rb +40 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/example/mailer_example_group.rb +22 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/example/model_example_group.rb +10 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/example/rails_example_group.rb +14 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/example/request_example_group.rb +23 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/example/routing_example_group.rb +27 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/example/view_example_group.rb +155 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/extensions.rb +1 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/extensions/active_record/base.rb +45 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/fixture_support.rb +40 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/matchers.rb +26 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/matchers/be_a_new.rb +76 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/matchers/be_new_record.rb +19 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/matchers/have_extension.rb +35 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/matchers/have_rendered.rb +40 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/matchers/redirect_to.rb +37 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/matchers/relation_match_array.rb +3 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/matchers/routing_matchers.rb +107 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/mocks.rb +243 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/module_inclusion.rb +29 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/tasks/rspec.rake +56 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/vendor/capybara.rb +29 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/vendor/webrat.rb +33 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/version.rb +7 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/view_assigns.rb +45 -0
- data/support/gems/rspec-rails-2.11.0/lib/rspec/rails/view_rendering.rb +121 -0
- data/support/gems/rspec-rails-2.11.0/spec/autotest/rails_rspec2_spec.rb +36 -0
- data/support/gems/rspec-rails-2.11.0/spec/generators/rspec/controller/controller_generator_spec.rb +86 -0
- data/support/gems/rspec-rails-2.11.0/spec/generators/rspec/helper/helper_generator_spec.rb +30 -0
- data/support/gems/rspec-rails-2.11.0/spec/generators/rspec/install/install_generator_spec.rb +18 -0
- data/support/gems/rspec-rails-2.11.0/spec/generators/rspec/integration/integration_generator_spec.rb +44 -0
- data/support/gems/rspec-rails-2.11.0/spec/generators/rspec/mailer/mailer_generator_spec.rb +48 -0
- data/support/gems/rspec-rails-2.11.0/spec/generators/rspec/model/model_generator_spec.rb +52 -0
- data/support/gems/rspec-rails-2.11.0/spec/generators/rspec/observer/observer_generator_spec.rb +21 -0
- data/support/gems/rspec-rails-2.11.0/spec/generators/rspec/scaffold/scaffold_generator_spec.rb +107 -0
- data/support/gems/rspec-rails-2.11.0/spec/generators/rspec/view/view_generator_spec.rb +41 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/assertion_adapter_spec.rb +28 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/configuration_spec.rb +26 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/deprecations_spec.rb +18 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/example/controller_example_group_spec.rb +100 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/example/helper_example_group_spec.rb +64 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/example/mailer_example_group_spec.rb +21 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/example/model_example_group_spec.rb +15 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/example/request_example_group_spec.rb +17 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/example/routing_example_group_spec.rb +32 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/example/view_example_group_spec.rb +214 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/extensions/active_model/errors_on_spec.rb +23 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/extensions/active_record/records_spec.rb +9 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/fixture_support_spec.rb +17 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/matchers/be_a_new_spec.rb +142 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/matchers/be_new_record_spec.rb +19 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/matchers/be_routable_spec.rb +41 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/matchers/errors_on_spec.rb +38 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/matchers/have_rendered_spec.rb +93 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/matchers/redirect_to_spec.rb +80 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/matchers/relation_match_array_spec.rb +20 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/matchers/route_to_spec.rb +152 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/mocks/mock_model_spec.rb +379 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/mocks/stub_model_spec.rb +154 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/setup_and_teardown_adapter_spec.rb +32 -0
- data/support/gems/rspec-rails-2.11.0/spec/rspec/rails/view_rendering_spec.rb +111 -0
- data/support/gems/rspec-rails-2.11.0/spec/spec_helper.rb +31 -0
- data/support/gems/rspec-rails-2.11.0/spec/support/ar_classes.rb +42 -0
- data/support/gems/rspec-rails-2.11.0/spec/support/helpers.rb +20 -0
- data/support/gems/rspec-rails-2.11.0/spec/support/matchers.rb +9 -0
- data/support/specifications/rspec-2.11.0.gemspec +39 -0
- data/support/specifications/rspec-core-2.11.1.gemspec +61 -0
- data/support/specifications/rspec-expectations-2.11.2.gemspec +40 -0
- data/support/specifications/rspec-mocks-2.11.1.gemspec +37 -0
- data/support/specifications/rspec-rails-2.11.0.gemspec +55 -0
- metadata +653 -0
@@ -0,0 +1,114 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe RSpec::Mocks::Mock do
|
4
|
+
|
5
|
+
let(:obj) { double }
|
6
|
+
|
7
|
+
describe "#and_yield" do
|
8
|
+
context "with eval context as block argument" do
|
9
|
+
|
10
|
+
it "evaluates the supplied block as it is read" do
|
11
|
+
evaluated = false
|
12
|
+
obj.stub(:method_that_accepts_a_block).and_yield do |eval_context|
|
13
|
+
evaluated = true
|
14
|
+
end
|
15
|
+
evaluated.should be_true
|
16
|
+
end
|
17
|
+
|
18
|
+
it "passes an eval context object to the supplied block" do
|
19
|
+
obj.stub(:method_that_accepts_a_block).and_yield do |eval_context|
|
20
|
+
eval_context.should_not be_nil
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
it "evaluates the block passed to the stubbed method in the context of the supplied eval context" do
|
25
|
+
expected_eval_context = nil
|
26
|
+
actual_eval_context = nil
|
27
|
+
|
28
|
+
obj.stub(:method_that_accepts_a_block).and_yield do |eval_context|
|
29
|
+
expected_eval_context = eval_context
|
30
|
+
end
|
31
|
+
|
32
|
+
obj.method_that_accepts_a_block do
|
33
|
+
actual_eval_context = self
|
34
|
+
end
|
35
|
+
|
36
|
+
actual_eval_context.should equal(expected_eval_context)
|
37
|
+
end
|
38
|
+
|
39
|
+
context "and no yielded arguments" do
|
40
|
+
|
41
|
+
it "passes when expectations set on the eval context are met" do
|
42
|
+
configured_eval_context = nil
|
43
|
+
obj.stub(:method_that_accepts_a_block).and_yield do |eval_context|
|
44
|
+
configured_eval_context = eval_context
|
45
|
+
configured_eval_context.should_receive(:foo)
|
46
|
+
end
|
47
|
+
|
48
|
+
obj.method_that_accepts_a_block do
|
49
|
+
foo
|
50
|
+
end
|
51
|
+
|
52
|
+
configured_eval_context.rspec_verify
|
53
|
+
end
|
54
|
+
|
55
|
+
it "fails when expectations set on the eval context are not met" do
|
56
|
+
configured_eval_context = nil
|
57
|
+
obj.stub(:method_that_accepts_a_block).and_yield do |eval_context|
|
58
|
+
configured_eval_context = eval_context
|
59
|
+
configured_eval_context.should_receive(:foo)
|
60
|
+
end
|
61
|
+
|
62
|
+
obj.method_that_accepts_a_block do
|
63
|
+
# foo is not called here
|
64
|
+
end
|
65
|
+
|
66
|
+
lambda {configured_eval_context.rspec_verify}.should raise_error(RSpec::Mocks::MockExpectationError)
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
context "and yielded arguments" do
|
72
|
+
|
73
|
+
it "passes when expectations set on the eval context and yielded arguments are met" do
|
74
|
+
configured_eval_context = nil
|
75
|
+
yielded_arg = Object.new
|
76
|
+
obj.stub(:method_that_accepts_a_block).and_yield(yielded_arg) do |eval_context|
|
77
|
+
configured_eval_context = eval_context
|
78
|
+
configured_eval_context.should_receive(:foo)
|
79
|
+
yielded_arg.should_receive(:bar)
|
80
|
+
end
|
81
|
+
|
82
|
+
obj.method_that_accepts_a_block do |obj|
|
83
|
+
obj.bar
|
84
|
+
foo
|
85
|
+
end
|
86
|
+
|
87
|
+
configured_eval_context.rspec_verify
|
88
|
+
yielded_arg.rspec_verify
|
89
|
+
end
|
90
|
+
|
91
|
+
it "fails when expectations set on the eval context and yielded arguments are not met" do
|
92
|
+
configured_eval_context = nil
|
93
|
+
yielded_arg = Object.new
|
94
|
+
obj.stub(:method_that_accepts_a_block).and_yield(yielded_arg) do |eval_context|
|
95
|
+
configured_eval_context = eval_context
|
96
|
+
configured_eval_context.should_receive(:foo)
|
97
|
+
yielded_arg.should_receive(:bar)
|
98
|
+
end
|
99
|
+
|
100
|
+
obj.method_that_accepts_a_block do |obj|
|
101
|
+
# obj.bar is not called here
|
102
|
+
# foo is not called here
|
103
|
+
end
|
104
|
+
|
105
|
+
lambda {configured_eval_context.rspec_verify}.should raise_error(RSpec::Mocks::MockExpectationError)
|
106
|
+
lambda {yielded_arg.rspec_verify}.should raise_error(RSpec::Mocks::MockExpectationError)
|
107
|
+
end
|
108
|
+
|
109
|
+
end
|
110
|
+
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe RSpec::Mocks::AnyInstance::MessageChains do
|
4
|
+
let(:chains) { RSpec::Mocks::AnyInstance::MessageChains.new }
|
5
|
+
let(:stub_chain) { RSpec::Mocks::AnyInstance::StubChain.new }
|
6
|
+
let(:expectation_chain) { RSpec::Mocks::AnyInstance::PositiveExpectationChain.new }
|
7
|
+
|
8
|
+
it "knows if a method does not have an expectation set on it" do
|
9
|
+
chains.add(:method_name, stub_chain)
|
10
|
+
chains.has_expectation?(:method_name).should be_false
|
11
|
+
end
|
12
|
+
|
13
|
+
it "knows if a method has an expectation set on it" do
|
14
|
+
chains.add(:method_name, stub_chain)
|
15
|
+
chains.add(:method_name, expectation_chain)
|
16
|
+
chains.has_expectation?(:method_name).should be_true
|
17
|
+
end
|
18
|
+
|
19
|
+
it "can remove all stub chains" do
|
20
|
+
chains.add(:method_name, stub_chain)
|
21
|
+
chains.add(:method_name, expectation_chain)
|
22
|
+
chains.add(:method_name, RSpec::Mocks::AnyInstance::StubChain.new)
|
23
|
+
|
24
|
+
chains.remove_stub_chains_for!(:method_name)
|
25
|
+
chains[:method_name].should eq([expectation_chain])
|
26
|
+
end
|
27
|
+
|
28
|
+
context "creating stub chains" do
|
29
|
+
it "understands how to add a stub chain for a method" do
|
30
|
+
chains.add(:method_name, stub_chain)
|
31
|
+
chains[:method_name].should eq([stub_chain])
|
32
|
+
end
|
33
|
+
|
34
|
+
it "allows multiple stub chains for a method" do
|
35
|
+
chains.add(:method_name, stub_chain)
|
36
|
+
chains.add(:method_name, another_stub_chain = RSpec::Mocks::AnyInstance::StubChain.new)
|
37
|
+
chains[:method_name].should eq([stub_chain, another_stub_chain])
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,825 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module RSpec
|
4
|
+
module Mocks
|
5
|
+
describe "#any_instance" do
|
6
|
+
class CustomErrorForAnyInstanceSpec < StandardError;end
|
7
|
+
|
8
|
+
let(:klass) do
|
9
|
+
Class.new do
|
10
|
+
def existing_method; :existing_method_return_value; end
|
11
|
+
def existing_method_with_arguments(arg_one, arg_two = nil); :existing_method_with_arguments_return_value; end
|
12
|
+
def another_existing_method; end
|
13
|
+
private
|
14
|
+
def private_method; :private_method_return_value; end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
let(:existing_method_return_value){ :existing_method_return_value }
|
18
|
+
|
19
|
+
context "invocation order" do
|
20
|
+
context "#stub" do
|
21
|
+
it "raises an error if 'stub' follows 'with'" do
|
22
|
+
lambda{ klass.any_instance.with("1").stub(:foo) }.should raise_error(NoMethodError)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "raises an error if 'with' follows 'and_return'" do
|
26
|
+
lambda{ klass.any_instance.stub(:foo).and_return(1).with("1") }.should raise_error(NoMethodError)
|
27
|
+
end
|
28
|
+
|
29
|
+
it "raises an error if 'with' follows 'and_raise'" do
|
30
|
+
lambda{ klass.any_instance.stub(:foo).and_raise(1).with("1") }.should raise_error(NoMethodError)
|
31
|
+
end
|
32
|
+
|
33
|
+
it "raises an error if 'with' follows 'and_yield'" do
|
34
|
+
lambda{ klass.any_instance.stub(:foo).and_yield(1).with("1") }.should raise_error(NoMethodError)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
context "#stub_chain" do
|
39
|
+
it "raises an error if 'stub_chain' follows 'any_instance'" do
|
40
|
+
lambda{ klass.any_instance.and_return("1").stub_chain(:foo, :bar) }.should raise_error(NoMethodError)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
context "#should_receive" do
|
45
|
+
it "raises an error if 'should_receive' follows 'with'" do
|
46
|
+
lambda{ klass.any_instance.with("1").should_receive(:foo) }.should raise_error(NoMethodError)
|
47
|
+
end
|
48
|
+
|
49
|
+
it "raises an error if 'with' follows 'and_return'" do
|
50
|
+
pending "see Github issue #42"
|
51
|
+
lambda{ klass.any_instance.should_receive(:foo).and_return(1).with("1") }.should raise_error(NoMethodError)
|
52
|
+
end
|
53
|
+
|
54
|
+
it "raises an error if 'with' follows 'and_raise'" do
|
55
|
+
pending "see Github issue #42"
|
56
|
+
lambda{ klass.any_instance.should_receive(:foo).and_raise(1).with("1") }.should raise_error(NoMethodError)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
context "with #stub" do
|
62
|
+
it "does not suppress an exception when a method that doesn't exist is invoked" do
|
63
|
+
klass.any_instance.stub(:foo)
|
64
|
+
lambda{ klass.new.bar }.should raise_error(NoMethodError)
|
65
|
+
end
|
66
|
+
|
67
|
+
context 'multiple methods' do
|
68
|
+
it "allows multiple methods to be stubbed in a single invocation" do
|
69
|
+
klass.any_instance.stub(:foo => 'foo', :bar => 'bar')
|
70
|
+
instance = klass.new
|
71
|
+
instance.foo.should eq('foo')
|
72
|
+
instance.bar.should eq('bar')
|
73
|
+
end
|
74
|
+
|
75
|
+
it "adheres to the contract of multiple method stubbing withou any instance" do
|
76
|
+
Object.new.stub(:foo => 'foo', :bar => 'bar').should eq(:foo => 'foo', :bar => 'bar')
|
77
|
+
klass.any_instance.stub(:foo => 'foo', :bar => 'bar').should eq(:foo => 'foo', :bar => 'bar')
|
78
|
+
end
|
79
|
+
|
80
|
+
context "allows a chain of methods to be stubbed using #stub_chain" do
|
81
|
+
it "given symbols representing the methods" do
|
82
|
+
klass.any_instance.stub_chain(:one, :two, :three).and_return(:four)
|
83
|
+
klass.new.one.two.three.should eq(:four)
|
84
|
+
end
|
85
|
+
|
86
|
+
it "given a hash as the last argument uses the value as the expected return value" do
|
87
|
+
klass.any_instance.stub_chain(:one, :two, :three => :four)
|
88
|
+
klass.new.one.two.three.should eq(:four)
|
89
|
+
end
|
90
|
+
|
91
|
+
it "given a string of '.' separated method names representing the chain" do
|
92
|
+
klass.any_instance.stub_chain('one.two.three').and_return(:four)
|
93
|
+
klass.new.one.two.three.should eq(:four)
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
context "behaves as 'every instance'" do
|
99
|
+
it "stubs every instance in the spec" do
|
100
|
+
klass.any_instance.stub(:foo).and_return(result = Object.new)
|
101
|
+
klass.new.foo.should eq(result)
|
102
|
+
klass.new.foo.should eq(result)
|
103
|
+
end
|
104
|
+
|
105
|
+
it "stubs instance created before any_instance was called" do
|
106
|
+
instance = klass.new
|
107
|
+
klass.any_instance.stub(:foo).and_return(result = Object.new)
|
108
|
+
instance.foo.should eq(result)
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
context "with argument matching" do
|
113
|
+
before do
|
114
|
+
klass.any_instance.stub(:foo).with(:param_one, :param_two).and_return(:result_one)
|
115
|
+
klass.any_instance.stub(:foo).with(:param_three, :param_four).and_return(:result_two)
|
116
|
+
end
|
117
|
+
|
118
|
+
it "returns the stubbed value when arguments match" do
|
119
|
+
instance = klass.new
|
120
|
+
instance.foo(:param_one, :param_two).should eq(:result_one)
|
121
|
+
instance.foo(:param_three, :param_four).should eq(:result_two)
|
122
|
+
end
|
123
|
+
|
124
|
+
it "fails the spec with an expectation error when the arguments do not match" do
|
125
|
+
expect do
|
126
|
+
klass.new.foo(:param_one, :param_three)
|
127
|
+
end.to(raise_error(RSpec::Mocks::MockExpectationError))
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
context "with multiple stubs" do
|
132
|
+
before do
|
133
|
+
klass.any_instance.stub(:foo).and_return(1)
|
134
|
+
klass.any_instance.stub(:bar).and_return(2)
|
135
|
+
end
|
136
|
+
|
137
|
+
it "stubs a method" do
|
138
|
+
instance = klass.new
|
139
|
+
instance.foo.should eq(1)
|
140
|
+
instance.bar.should eq(2)
|
141
|
+
end
|
142
|
+
|
143
|
+
it "returns the same value for calls on different instances" do
|
144
|
+
klass.new.foo.should eq(klass.new.foo)
|
145
|
+
klass.new.bar.should eq(klass.new.bar)
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
context "with #and_return" do
|
150
|
+
it "stubs a method that doesn't exist" do
|
151
|
+
klass.any_instance.stub(:foo).and_return(1)
|
152
|
+
klass.new.foo.should eq(1)
|
153
|
+
end
|
154
|
+
|
155
|
+
it "stubs a method that exists" do
|
156
|
+
klass.any_instance.stub(:existing_method).and_return(1)
|
157
|
+
klass.new.existing_method.should eq(1)
|
158
|
+
end
|
159
|
+
|
160
|
+
it "returns the same object for calls on different instances" do
|
161
|
+
return_value = Object.new
|
162
|
+
klass.any_instance.stub(:foo).and_return(return_value)
|
163
|
+
klass.new.foo.should be(return_value)
|
164
|
+
klass.new.foo.should be(return_value)
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
168
|
+
context "with #and_yield" do
|
169
|
+
it "yields the value specified" do
|
170
|
+
yielded_value = Object.new
|
171
|
+
klass.any_instance.stub(:foo).and_yield(yielded_value)
|
172
|
+
klass.new.foo{|value| value.should be(yielded_value)}
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
context "with #and_raise" do
|
177
|
+
it "stubs a method that doesn't exist" do
|
178
|
+
klass.any_instance.stub(:foo).and_raise(CustomErrorForAnyInstanceSpec)
|
179
|
+
lambda{ klass.new.foo}.should raise_error(CustomErrorForAnyInstanceSpec)
|
180
|
+
end
|
181
|
+
|
182
|
+
it "stubs a method that exists" do
|
183
|
+
klass.any_instance.stub(:existing_method).and_raise(CustomErrorForAnyInstanceSpec)
|
184
|
+
lambda{ klass.new.existing_method}.should raise_error(CustomErrorForAnyInstanceSpec)
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
188
|
+
context "with a block" do
|
189
|
+
it "stubs a method" do
|
190
|
+
klass.any_instance.stub(:foo) { 1 }
|
191
|
+
klass.new.foo.should eq(1)
|
192
|
+
end
|
193
|
+
|
194
|
+
it "returns the same computed value for calls on different instances" do
|
195
|
+
klass.any_instance.stub(:foo) { 1 + 2 }
|
196
|
+
klass.new.foo.should eq(klass.new.foo)
|
197
|
+
end
|
198
|
+
end
|
199
|
+
|
200
|
+
context "core ruby objects" do
|
201
|
+
it "works uniformly across *everything*" do
|
202
|
+
Object.any_instance.stub(:foo).and_return(1)
|
203
|
+
Object.new.foo.should eq(1)
|
204
|
+
end
|
205
|
+
|
206
|
+
it "works with the non-standard constructor []" do
|
207
|
+
Array.any_instance.stub(:foo).and_return(1)
|
208
|
+
[].foo.should eq(1)
|
209
|
+
end
|
210
|
+
|
211
|
+
it "works with the non-standard constructor {}" do
|
212
|
+
Hash.any_instance.stub(:foo).and_return(1)
|
213
|
+
{}.foo.should eq(1)
|
214
|
+
end
|
215
|
+
|
216
|
+
it "works with the non-standard constructor \"\"" do
|
217
|
+
String.any_instance.stub(:foo).and_return(1)
|
218
|
+
"".foo.should eq(1)
|
219
|
+
end
|
220
|
+
|
221
|
+
it "works with the non-standard constructor \'\'" do
|
222
|
+
String.any_instance.stub(:foo).and_return(1)
|
223
|
+
''.foo.should eq(1)
|
224
|
+
end
|
225
|
+
|
226
|
+
it "works with the non-standard constructor module" do
|
227
|
+
Module.any_instance.stub(:foo).and_return(1)
|
228
|
+
module RSpec::SampleRspecTestModule;end
|
229
|
+
RSpec::SampleRspecTestModule.foo.should eq(1)
|
230
|
+
end
|
231
|
+
|
232
|
+
it "works with the non-standard constructor class" do
|
233
|
+
Class.any_instance.stub(:foo).and_return(1)
|
234
|
+
class RSpec::SampleRspecTestClass;end
|
235
|
+
RSpec::SampleRspecTestClass.foo.should eq(1)
|
236
|
+
end
|
237
|
+
end
|
238
|
+
end
|
239
|
+
|
240
|
+
context "with #stub!" do
|
241
|
+
it "raises with a message instructing the user to use stub instead" do
|
242
|
+
expect do
|
243
|
+
klass.any_instance.stub!(:foo)
|
244
|
+
end.to raise_error(/Use stub instead/)
|
245
|
+
end
|
246
|
+
end
|
247
|
+
|
248
|
+
context "unstub implementation" do
|
249
|
+
it "replaces the stubbed method with the original method" do
|
250
|
+
klass.any_instance.stub(:existing_method)
|
251
|
+
klass.any_instance.unstub(:existing_method)
|
252
|
+
klass.new.existing_method.should eq(:existing_method_return_value)
|
253
|
+
end
|
254
|
+
|
255
|
+
it "removes all stubs with the supplied method name" do
|
256
|
+
klass.any_instance.stub(:existing_method).with(1)
|
257
|
+
klass.any_instance.stub(:existing_method).with(2)
|
258
|
+
klass.any_instance.unstub(:existing_method)
|
259
|
+
klass.new.existing_method.should eq(:existing_method_return_value)
|
260
|
+
end
|
261
|
+
|
262
|
+
it "does not remove any expectations with the same method name" do
|
263
|
+
klass.any_instance.should_receive(:existing_method_with_arguments).with(3).and_return(:three)
|
264
|
+
klass.any_instance.stub(:existing_method_with_arguments).with(1)
|
265
|
+
klass.any_instance.stub(:existing_method_with_arguments).with(2)
|
266
|
+
klass.any_instance.unstub(:existing_method_with_arguments)
|
267
|
+
klass.new.existing_method_with_arguments(3).should eq(:three)
|
268
|
+
end
|
269
|
+
|
270
|
+
it "raises a MockExpectationError if the method has not been stubbed" do
|
271
|
+
lambda do
|
272
|
+
klass.any_instance.unstub(:existing_method)
|
273
|
+
end.should raise_error(RSpec::Mocks::MockExpectationError, 'The method `existing_method` was not stubbed or was already unstubbed')
|
274
|
+
end
|
275
|
+
end
|
276
|
+
|
277
|
+
context "with #should_not_receive" do
|
278
|
+
it "fails if the method is called" do
|
279
|
+
klass.any_instance.should_not_receive(:existing_method)
|
280
|
+
lambda { klass.new.existing_method }.should raise_error(RSpec::Mocks::MockExpectationError)
|
281
|
+
end
|
282
|
+
|
283
|
+
it "passes if no method is called" do
|
284
|
+
lambda { klass.any_instance.should_not_receive(:existing_method) }.should_not raise_error
|
285
|
+
end
|
286
|
+
|
287
|
+
it "passes if only a different method is called" do
|
288
|
+
klass.any_instance.should_not_receive(:existing_method)
|
289
|
+
lambda { klass.new.another_existing_method }.should_not raise_error
|
290
|
+
end
|
291
|
+
|
292
|
+
context "with constraints" do
|
293
|
+
it "fails if the method is called with the specified parameters" do
|
294
|
+
klass.any_instance.should_not_receive(:existing_method_with_arguments).with(:argument_one, :argument_two)
|
295
|
+
lambda do
|
296
|
+
klass.new.existing_method_with_arguments(:argument_one, :argument_two)
|
297
|
+
end.should raise_error(RSpec::Mocks::MockExpectationError)
|
298
|
+
end
|
299
|
+
|
300
|
+
it "passes if the method is called with different parameters" do
|
301
|
+
klass.any_instance.should_not_receive(:existing_method_with_arguments).with(:argument_one, :argument_two)
|
302
|
+
lambda { klass.new.existing_method_with_arguments(:argument_three, :argument_four) }.should_not raise_error
|
303
|
+
end
|
304
|
+
end
|
305
|
+
end
|
306
|
+
|
307
|
+
context "with #should_receive" do
|
308
|
+
let(:foo_expectation_error_message) { 'Exactly one instance should have received the following message(s) but didn\'t: foo' }
|
309
|
+
let(:existing_method_expectation_error_message) { 'Exactly one instance should have received the following message(s) but didn\'t: existing_method' }
|
310
|
+
|
311
|
+
context "with an expectation is set on a method which does not exist" do
|
312
|
+
it "returns the expected value" do
|
313
|
+
klass.any_instance.should_receive(:foo).and_return(1)
|
314
|
+
klass.new.foo(1).should eq(1)
|
315
|
+
end
|
316
|
+
|
317
|
+
it "fails if an instance is created but no invocation occurs" do
|
318
|
+
expect do
|
319
|
+
klass.any_instance.should_receive(:foo)
|
320
|
+
klass.new
|
321
|
+
klass.rspec_verify
|
322
|
+
end.to raise_error(RSpec::Mocks::MockExpectationError, foo_expectation_error_message)
|
323
|
+
end
|
324
|
+
|
325
|
+
it "fails if no instance is created" do
|
326
|
+
expect do
|
327
|
+
klass.any_instance.should_receive(:foo).and_return(1)
|
328
|
+
klass.rspec_verify
|
329
|
+
end.to raise_error(RSpec::Mocks::MockExpectationError, foo_expectation_error_message)
|
330
|
+
end
|
331
|
+
|
332
|
+
it "fails if no instance is created and there are multiple expectations" do
|
333
|
+
expect do
|
334
|
+
klass.any_instance.should_receive(:foo)
|
335
|
+
klass.any_instance.should_receive(:bar)
|
336
|
+
klass.rspec_verify
|
337
|
+
end.to raise_error(RSpec::Mocks::MockExpectationError, 'Exactly one instance should have received the following message(s) but didn\'t: bar, foo')
|
338
|
+
end
|
339
|
+
|
340
|
+
it "allows expectations on instances to take priority" do
|
341
|
+
klass.any_instance.should_receive(:foo)
|
342
|
+
klass.new.foo
|
343
|
+
|
344
|
+
instance = klass.new
|
345
|
+
instance.should_receive(:foo).and_return(result = Object.new)
|
346
|
+
instance.foo.should eq(result)
|
347
|
+
end
|
348
|
+
|
349
|
+
context "behaves as 'exactly one instance'" do
|
350
|
+
it "passes if subsequent invocations do not receive that message" do
|
351
|
+
klass.any_instance.should_receive(:foo)
|
352
|
+
klass.new.foo
|
353
|
+
klass.new
|
354
|
+
end
|
355
|
+
|
356
|
+
it "fails if the method is invoked on a second instance" do
|
357
|
+
instance_one = klass.new
|
358
|
+
instance_two = klass.new
|
359
|
+
expect do
|
360
|
+
klass.any_instance.should_receive(:foo)
|
361
|
+
|
362
|
+
instance_one.foo
|
363
|
+
instance_two.foo
|
364
|
+
end.to raise_error(RSpec::Mocks::MockExpectationError, "The message 'foo' was received by #{instance_two.inspect} but has already been received by #{instance_one.inspect}")
|
365
|
+
end
|
366
|
+
end
|
367
|
+
|
368
|
+
context "normal expectations on the class object" do
|
369
|
+
it "fail when unfulfilled" do
|
370
|
+
expect do
|
371
|
+
klass.any_instance.should_receive(:foo)
|
372
|
+
klass.should_receive(:woot)
|
373
|
+
klass.new.foo
|
374
|
+
klass.rspec_verify
|
375
|
+
end.to(raise_error(RSpec::Mocks::MockExpectationError) do |error|
|
376
|
+
error.message.should_not eq(existing_method_expectation_error_message)
|
377
|
+
end)
|
378
|
+
end
|
379
|
+
|
380
|
+
|
381
|
+
it "pass when expectations are met" do
|
382
|
+
klass.any_instance.should_receive(:foo)
|
383
|
+
klass.should_receive(:woot).and_return(result = Object.new)
|
384
|
+
klass.new.foo
|
385
|
+
klass.woot.should eq(result)
|
386
|
+
end
|
387
|
+
end
|
388
|
+
end
|
389
|
+
|
390
|
+
context "with an expectation is set on a method that exists" do
|
391
|
+
it "returns the expected value" do
|
392
|
+
klass.any_instance.should_receive(:existing_method).and_return(1)
|
393
|
+
klass.new.existing_method(1).should eq(1)
|
394
|
+
end
|
395
|
+
|
396
|
+
it "fails if an instance is created but no invocation occurs" do
|
397
|
+
expect do
|
398
|
+
klass.any_instance.should_receive(:existing_method)
|
399
|
+
klass.new
|
400
|
+
klass.rspec_verify
|
401
|
+
end.to raise_error(RSpec::Mocks::MockExpectationError, existing_method_expectation_error_message)
|
402
|
+
end
|
403
|
+
|
404
|
+
it "fails if no instance is created" do
|
405
|
+
expect do
|
406
|
+
klass.any_instance.should_receive(:existing_method)
|
407
|
+
klass.rspec_verify
|
408
|
+
end.to raise_error(RSpec::Mocks::MockExpectationError, existing_method_expectation_error_message)
|
409
|
+
end
|
410
|
+
|
411
|
+
it "fails if no instance is created and there are multiple expectations" do
|
412
|
+
expect do
|
413
|
+
klass.any_instance.should_receive(:existing_method)
|
414
|
+
klass.any_instance.should_receive(:another_existing_method)
|
415
|
+
klass.rspec_verify
|
416
|
+
end.to raise_error(RSpec::Mocks::MockExpectationError, 'Exactly one instance should have received the following message(s) but didn\'t: another_existing_method, existing_method')
|
417
|
+
end
|
418
|
+
|
419
|
+
context "after any one instance has received a message" do
|
420
|
+
it "passes if subsequent invocations do not receive that message" do
|
421
|
+
klass.any_instance.should_receive(:existing_method)
|
422
|
+
klass.new.existing_method
|
423
|
+
klass.new
|
424
|
+
end
|
425
|
+
|
426
|
+
it "fails if the method is invoked on a second instance" do
|
427
|
+
instance_one = klass.new
|
428
|
+
instance_two = klass.new
|
429
|
+
expect do
|
430
|
+
klass.any_instance.should_receive(:existing_method)
|
431
|
+
|
432
|
+
instance_one.existing_method
|
433
|
+
instance_two.existing_method
|
434
|
+
end.to raise_error(RSpec::Mocks::MockExpectationError, "The message 'existing_method' was received by #{instance_two.inspect} but has already been received by #{instance_one.inspect}")
|
435
|
+
end
|
436
|
+
end
|
437
|
+
end
|
438
|
+
|
439
|
+
context "with argument matching" do
|
440
|
+
before do
|
441
|
+
klass.any_instance.should_receive(:foo).with(:param_one, :param_two).and_return(:result_one)
|
442
|
+
klass.any_instance.should_receive(:foo).with(:param_three, :param_four).and_return(:result_two)
|
443
|
+
end
|
444
|
+
|
445
|
+
it "returns the expected value when arguments match" do
|
446
|
+
instance = klass.new
|
447
|
+
instance.foo(:param_one, :param_two).should eq(:result_one)
|
448
|
+
instance.foo(:param_three, :param_four).should eq(:result_two)
|
449
|
+
end
|
450
|
+
|
451
|
+
it "fails when the arguments match but different instances are used" do
|
452
|
+
instances = Array.new(2) { klass.new }
|
453
|
+
expect do
|
454
|
+
instances[0].foo(:param_one, :param_two).should eq(:result_one)
|
455
|
+
instances[1].foo(:param_three, :param_four).should eq(:result_two)
|
456
|
+
end.to raise_error(RSpec::Mocks::MockExpectationError)
|
457
|
+
|
458
|
+
# ignore the fact that should_receive expectations were not met
|
459
|
+
instances.each { |instance| instance.rspec_reset }
|
460
|
+
end
|
461
|
+
|
462
|
+
it "is not affected by the invocation of existing methods on other instances" do
|
463
|
+
klass.new.existing_method_with_arguments(:param_one, :param_two).should eq(:existing_method_with_arguments_return_value)
|
464
|
+
instance = klass.new
|
465
|
+
instance.foo(:param_one, :param_two).should eq(:result_one)
|
466
|
+
instance.foo(:param_three, :param_four).should eq(:result_two)
|
467
|
+
end
|
468
|
+
|
469
|
+
it "fails when arguments do not match" do
|
470
|
+
instance = klass.new
|
471
|
+
expect do
|
472
|
+
instance.foo(:param_one, :param_three)
|
473
|
+
end.to raise_error(RSpec::Mocks::MockExpectationError)
|
474
|
+
|
475
|
+
# ignore the fact that should_receive expectations were not met
|
476
|
+
instance.rspec_reset
|
477
|
+
end
|
478
|
+
end
|
479
|
+
|
480
|
+
context "message count" do
|
481
|
+
context "the 'once' constraint" do
|
482
|
+
it "passes for one invocation" do
|
483
|
+
klass.any_instance.should_receive(:foo).once
|
484
|
+
klass.new.foo
|
485
|
+
end
|
486
|
+
|
487
|
+
it "fails when no instances are declared" do
|
488
|
+
expect do
|
489
|
+
klass.any_instance.should_receive(:foo).once
|
490
|
+
klass.rspec_verify
|
491
|
+
end.to raise_error(RSpec::Mocks::MockExpectationError, foo_expectation_error_message)
|
492
|
+
end
|
493
|
+
|
494
|
+
it "fails when an instance is declared but there are no invocations" do
|
495
|
+
expect do
|
496
|
+
klass.any_instance.should_receive(:foo).once
|
497
|
+
klass.new
|
498
|
+
klass.rspec_verify
|
499
|
+
end.to raise_error(RSpec::Mocks::MockExpectationError, foo_expectation_error_message)
|
500
|
+
end
|
501
|
+
|
502
|
+
it "fails for more than one invocation" do
|
503
|
+
expect do
|
504
|
+
klass.any_instance.should_receive(:foo).once
|
505
|
+
instance = klass.new
|
506
|
+
2.times { instance.foo }
|
507
|
+
instance.rspec_verify
|
508
|
+
end.to raise_error(RSpec::Mocks::MockExpectationError)
|
509
|
+
end
|
510
|
+
end
|
511
|
+
|
512
|
+
context "the 'twice' constraint" do
|
513
|
+
it "passes for two invocations" do
|
514
|
+
klass.any_instance.should_receive(:foo).twice
|
515
|
+
instance = klass.new
|
516
|
+
2.times { instance.foo }
|
517
|
+
end
|
518
|
+
|
519
|
+
it "fails for more than two invocations" do
|
520
|
+
expect do
|
521
|
+
klass.any_instance.should_receive(:foo).twice
|
522
|
+
instance = klass.new
|
523
|
+
3.times { instance.foo }
|
524
|
+
instance.rspec_verify
|
525
|
+
end.to raise_error(RSpec::Mocks::MockExpectationError)
|
526
|
+
end
|
527
|
+
end
|
528
|
+
|
529
|
+
context "the 'exactly(n)' constraint" do
|
530
|
+
it "passes for n invocations where n = 3" do
|
531
|
+
klass.any_instance.should_receive(:foo).exactly(3).times
|
532
|
+
instance = klass.new
|
533
|
+
3.times { instance.foo }
|
534
|
+
end
|
535
|
+
|
536
|
+
it "fails for n invocations where n < 3" do
|
537
|
+
expect do
|
538
|
+
klass.any_instance.should_receive(:foo).exactly(3).times
|
539
|
+
instance = klass.new
|
540
|
+
2.times { instance.foo }
|
541
|
+
instance.rspec_verify
|
542
|
+
end.to raise_error(RSpec::Mocks::MockExpectationError)
|
543
|
+
end
|
544
|
+
|
545
|
+
it "fails for n invocations where n > 3" do
|
546
|
+
expect do
|
547
|
+
klass.any_instance.should_receive(:foo).exactly(3).times
|
548
|
+
instance = klass.new
|
549
|
+
4.times { instance.foo }
|
550
|
+
instance.rspec_verify
|
551
|
+
end.to raise_error(RSpec::Mocks::MockExpectationError)
|
552
|
+
end
|
553
|
+
end
|
554
|
+
|
555
|
+
context "the 'at_least(n)' constraint" do
|
556
|
+
it "passes for n invocations where n = 3" do
|
557
|
+
klass.any_instance.should_receive(:foo).at_least(3).times
|
558
|
+
instance = klass.new
|
559
|
+
3.times { instance.foo }
|
560
|
+
end
|
561
|
+
|
562
|
+
it "fails for n invocations where n < 3" do
|
563
|
+
expect do
|
564
|
+
klass.any_instance.should_receive(:foo).at_least(3).times
|
565
|
+
instance = klass.new
|
566
|
+
2.times { instance.foo }
|
567
|
+
instance.rspec_verify
|
568
|
+
end.to raise_error(RSpec::Mocks::MockExpectationError)
|
569
|
+
end
|
570
|
+
|
571
|
+
it "passes for n invocations where n > 3" do
|
572
|
+
klass.any_instance.should_receive(:foo).at_least(3).times
|
573
|
+
instance = klass.new
|
574
|
+
4.times { instance.foo }
|
575
|
+
end
|
576
|
+
end
|
577
|
+
|
578
|
+
context "the 'at_most(n)' constraint" do
|
579
|
+
it "passes for n invocations where n = 3" do
|
580
|
+
klass.any_instance.should_receive(:foo).at_most(3).times
|
581
|
+
instance = klass.new
|
582
|
+
3.times { instance.foo }
|
583
|
+
end
|
584
|
+
|
585
|
+
it "passes for n invocations where n < 3" do
|
586
|
+
klass.any_instance.should_receive(:foo).at_most(3).times
|
587
|
+
instance = klass.new
|
588
|
+
2.times { instance.foo }
|
589
|
+
end
|
590
|
+
|
591
|
+
it "fails for n invocations where n > 3" do
|
592
|
+
expect do
|
593
|
+
klass.any_instance.should_receive(:foo).at_most(3).times
|
594
|
+
instance = klass.new
|
595
|
+
4.times { instance.foo }
|
596
|
+
instance.rspec_verify
|
597
|
+
end.to raise_error(RSpec::Mocks::MockExpectationError)
|
598
|
+
end
|
599
|
+
end
|
600
|
+
|
601
|
+
context "the 'never' constraint" do
|
602
|
+
it "passes for 0 invocations" do
|
603
|
+
klass.any_instance.should_receive(:foo).never
|
604
|
+
klass.rspec_verify
|
605
|
+
end
|
606
|
+
|
607
|
+
it "fails on the first invocation" do
|
608
|
+
expect do
|
609
|
+
klass.any_instance.should_receive(:foo).never
|
610
|
+
klass.new.foo
|
611
|
+
end.to raise_error(RSpec::Mocks::MockExpectationError)
|
612
|
+
end
|
613
|
+
|
614
|
+
context "when combined with other expectations" do
|
615
|
+
it "passes when the other expecations are met" do
|
616
|
+
klass.any_instance.should_receive(:foo).never
|
617
|
+
klass.any_instance.should_receive(:existing_method).and_return(5)
|
618
|
+
klass.new.existing_method.should eq(5)
|
619
|
+
end
|
620
|
+
|
621
|
+
it "fails when the other expecations are not met" do
|
622
|
+
expect do
|
623
|
+
klass.any_instance.should_receive(:foo).never
|
624
|
+
klass.any_instance.should_receive(:existing_method).and_return(5)
|
625
|
+
klass.rspec_verify
|
626
|
+
end.to raise_error(RSpec::Mocks::MockExpectationError, existing_method_expectation_error_message)
|
627
|
+
end
|
628
|
+
end
|
629
|
+
end
|
630
|
+
|
631
|
+
context "the 'any_number_of_times' constraint" do
|
632
|
+
it "passes for 0 invocations" do
|
633
|
+
klass.any_instance.should_receive(:foo).any_number_of_times
|
634
|
+
klass.new.rspec_verify
|
635
|
+
end
|
636
|
+
|
637
|
+
it "passes for a non-zero number of invocations" do
|
638
|
+
klass.any_instance.should_receive(:foo).any_number_of_times
|
639
|
+
instance = klass.new
|
640
|
+
instance.foo
|
641
|
+
instance.rspec_verify
|
642
|
+
end
|
643
|
+
|
644
|
+
it "does not interfere with other expectations" do
|
645
|
+
klass.any_instance.should_receive(:foo).any_number_of_times
|
646
|
+
klass.any_instance.should_receive(:existing_method).and_return(5)
|
647
|
+
klass.new.existing_method.should eq(5)
|
648
|
+
end
|
649
|
+
|
650
|
+
context "when combined with other expectations" do
|
651
|
+
it "passes when the other expecations are met" do
|
652
|
+
klass.any_instance.should_receive(:foo).any_number_of_times
|
653
|
+
klass.any_instance.should_receive(:existing_method).and_return(5)
|
654
|
+
klass.new.existing_method.should eq(5)
|
655
|
+
end
|
656
|
+
|
657
|
+
it "fails when the other expecations are not met" do
|
658
|
+
expect do
|
659
|
+
klass.any_instance.should_receive(:foo).any_number_of_times
|
660
|
+
klass.any_instance.should_receive(:existing_method).and_return(5)
|
661
|
+
klass.rspec_verify
|
662
|
+
end.to raise_error(RSpec::Mocks::MockExpectationError, existing_method_expectation_error_message)
|
663
|
+
end
|
664
|
+
end
|
665
|
+
end
|
666
|
+
end
|
667
|
+
end
|
668
|
+
|
669
|
+
context "when resetting post-verification" do
|
670
|
+
let(:space) { RSpec::Mocks::Space.new }
|
671
|
+
|
672
|
+
context "existing method" do
|
673
|
+
before(:each) do
|
674
|
+
space.add(klass)
|
675
|
+
end
|
676
|
+
|
677
|
+
context "with stubbing" do
|
678
|
+
context "public methods" do
|
679
|
+
before(:each) do
|
680
|
+
klass.any_instance.stub(:existing_method).and_return(1)
|
681
|
+
klass.method_defined?(:__existing_method_without_any_instance__).should be_true
|
682
|
+
end
|
683
|
+
|
684
|
+
it "restores the class to its original state after each example when no instance is created" do
|
685
|
+
space.verify_all
|
686
|
+
|
687
|
+
klass.method_defined?(:__existing_method_without_any_instance__).should be_false
|
688
|
+
klass.new.existing_method.should eq(existing_method_return_value)
|
689
|
+
end
|
690
|
+
|
691
|
+
it "restores the class to its original state after each example when one instance is created" do
|
692
|
+
klass.new.existing_method
|
693
|
+
|
694
|
+
space.verify_all
|
695
|
+
|
696
|
+
klass.method_defined?(:__existing_method_without_any_instance__).should be_false
|
697
|
+
klass.new.existing_method.should eq(existing_method_return_value)
|
698
|
+
end
|
699
|
+
|
700
|
+
it "restores the class to its original state after each example when more than one instance is created" do
|
701
|
+
klass.new.existing_method
|
702
|
+
klass.new.existing_method
|
703
|
+
|
704
|
+
space.verify_all
|
705
|
+
|
706
|
+
klass.method_defined?(:__existing_method_without_any_instance__).should be_false
|
707
|
+
klass.new.existing_method.should eq(existing_method_return_value)
|
708
|
+
end
|
709
|
+
end
|
710
|
+
|
711
|
+
context "private methods" do
|
712
|
+
before :each do
|
713
|
+
klass.any_instance.stub(:private_method).and_return(:something)
|
714
|
+
space.verify_all
|
715
|
+
end
|
716
|
+
|
717
|
+
it "cleans up the backed up method" do
|
718
|
+
klass.method_defined?(:__existing_method_without_any_instance__).should be_false
|
719
|
+
end
|
720
|
+
|
721
|
+
it "restores a stubbed private method after the spec is run" do
|
722
|
+
klass.private_method_defined?(:private_method).should be_true
|
723
|
+
end
|
724
|
+
|
725
|
+
it "ensures that the restored method behaves as it originally did" do
|
726
|
+
klass.new.send(:private_method).should eq(:private_method_return_value)
|
727
|
+
end
|
728
|
+
end
|
729
|
+
end
|
730
|
+
|
731
|
+
context "with expectations" do
|
732
|
+
context "private methods" do
|
733
|
+
before :each do
|
734
|
+
klass.any_instance.should_receive(:private_method).and_return(:something)
|
735
|
+
klass.new.private_method
|
736
|
+
space.verify_all
|
737
|
+
end
|
738
|
+
|
739
|
+
it "cleans up the backed up method" do
|
740
|
+
klass.method_defined?(:__existing_method_without_any_instance__).should be_false
|
741
|
+
end
|
742
|
+
|
743
|
+
it "restores a stubbed private method after the spec is run" do
|
744
|
+
klass.private_method_defined?(:private_method).should be_true
|
745
|
+
end
|
746
|
+
|
747
|
+
it "ensures that the restored method behaves as it originally did" do
|
748
|
+
klass.new.send(:private_method).should eq(:private_method_return_value)
|
749
|
+
end
|
750
|
+
end
|
751
|
+
|
752
|
+
context "ensures that the subsequent specs do not see expectations set in previous specs" do
|
753
|
+
context "when the instance created after the expectation is set" do
|
754
|
+
it "first spec" do
|
755
|
+
klass.any_instance.should_receive(:existing_method).and_return(Object.new)
|
756
|
+
klass.new.existing_method
|
757
|
+
end
|
758
|
+
|
759
|
+
it "second spec" do
|
760
|
+
klass.new.existing_method.should eq(existing_method_return_value)
|
761
|
+
end
|
762
|
+
end
|
763
|
+
|
764
|
+
context "when the instance created before the expectation is set" do
|
765
|
+
before :each do
|
766
|
+
@instance = klass.new
|
767
|
+
end
|
768
|
+
|
769
|
+
it "first spec" do
|
770
|
+
klass.any_instance.should_receive(:existing_method).and_return(Object.new)
|
771
|
+
@instance.existing_method
|
772
|
+
end
|
773
|
+
|
774
|
+
it "second spec" do
|
775
|
+
@instance.existing_method.should eq(existing_method_return_value)
|
776
|
+
end
|
777
|
+
end
|
778
|
+
end
|
779
|
+
|
780
|
+
it "ensures that the next spec does not see that expectation" do
|
781
|
+
klass.any_instance.should_receive(:existing_method).and_return(Object.new)
|
782
|
+
klass.new.existing_method
|
783
|
+
space.verify_all
|
784
|
+
|
785
|
+
klass.new.existing_method.should eq(existing_method_return_value)
|
786
|
+
end
|
787
|
+
end
|
788
|
+
end
|
789
|
+
|
790
|
+
context "with multiple calls to any_instance in the same example" do
|
791
|
+
it "does not prevent the change from being rolled back" do
|
792
|
+
klass.any_instance.stub(:existing_method).and_return(false)
|
793
|
+
klass.any_instance.stub(:existing_method).and_return(true)
|
794
|
+
|
795
|
+
klass.rspec_verify
|
796
|
+
klass.new.should respond_to(:existing_method)
|
797
|
+
klass.new.existing_method.should eq(existing_method_return_value)
|
798
|
+
end
|
799
|
+
end
|
800
|
+
|
801
|
+
it "adds an class to the current space when #any_instance is invoked" do
|
802
|
+
klass.any_instance
|
803
|
+
RSpec::Mocks::space.send(:receivers).should include(klass)
|
804
|
+
end
|
805
|
+
|
806
|
+
it "adds an instance to the current space when stubbed method is invoked" do
|
807
|
+
klass.any_instance.stub(:foo)
|
808
|
+
instance = klass.new
|
809
|
+
instance.foo
|
810
|
+
RSpec::Mocks::space.send(:receivers).should include(instance)
|
811
|
+
end
|
812
|
+
end
|
813
|
+
|
814
|
+
context 'when used in conjunction with a `dup`' do
|
815
|
+
it "doesn't cause an infinite loop" do
|
816
|
+
Object.any_instance.stub(:some_method)
|
817
|
+
o = Object.new
|
818
|
+
o.some_method
|
819
|
+
lambda { o.dup.some_method }.should_not raise_error(SystemStackError)
|
820
|
+
end
|
821
|
+
end
|
822
|
+
|
823
|
+
end
|
824
|
+
end
|
825
|
+
end
|