diff --git a/mocha-1.1.0.gem b/mocha-1.1.0.gem new file mode 100644 index 0000000..39128ca Binary files /dev/null and b/mocha-1.1.0.gem differ diff --git a/rubygem-mocha-1.1.0-As-of-Ruby-v2.2-nil-is-frozen-so-these-tests-are-irrelevant.patch b/rubygem-mocha-1.1.0-As-of-Ruby-v2.2-nil-is-frozen-so-these-tests-are-irrelevant.patch new file mode 100644 index 0000000..ff5e9d8 --- /dev/null +++ b/rubygem-mocha-1.1.0-As-of-Ruby-v2.2-nil-is-frozen-so-these-tests-are-irrelevant.patch @@ -0,0 +1,101 @@ +From a65ea1ed3dce43cbc2cc16b3660afd2cce3db33e Mon Sep 17 00:00:00 2001 +From: James Mead +Date: Mon, 2 Mar 2015 19:37:21 +0000 +Subject: [PATCH] As of Ruby v2.2, nil is frozen so these tests are irrelevant. + +In all these scenarios in the latest versions of Ruby, a `Mocha::StubbingError` +will be raised with the message: "can't stub method on frozen object: nil". + +This behaviour is already tested in the more generic `StubbingFrozenObjectTest` +and so it's safe to ignore these tests for the relevant versions of Ruby. +--- + test/acceptance/stubbing_nil_test.rb | 68 +++++++++++++++++++----------------- + 1 file changed, 35 insertions(+), 33 deletions(-) + +diff --git a/test/acceptance/stubbing_nil_test.rb b/test/acceptance/stubbing_nil_test.rb +index ac163e7..f8c55cd 100644 +--- a/test/acceptance/stubbing_nil_test.rb ++++ b/test/acceptance/stubbing_nil_test.rb +@@ -13,47 +13,49 @@ def teardown + teardown_acceptance_test + end + +- def test_should_allow_stubbing_method_on_nil +- Mocha::Configuration.allow(:stubbing_method_on_nil) +- test_result = run_as_test do +- nil.stubs(:stubbed_method) ++ if RUBY_VERSION < '2.2.0' ++ def test_should_allow_stubbing_method_on_nil ++ Mocha::Configuration.allow(:stubbing_method_on_nil) ++ test_result = run_as_test do ++ nil.stubs(:stubbed_method) ++ end ++ assert_passed(test_result) ++ assert !@logger.warnings.include?("stubbing method on nil: nil.stubbed_method") + end +- assert_passed(test_result) +- assert !@logger.warnings.include?("stubbing method on nil: nil.stubbed_method") +- end + +- def test_should_warn_on_stubbing_method_on_nil +- Mocha::Configuration.warn_when(:stubbing_method_on_nil) +- test_result = run_as_test do +- nil.stubs(:stubbed_method) ++ def test_should_warn_on_stubbing_method_on_nil ++ Mocha::Configuration.warn_when(:stubbing_method_on_nil) ++ test_result = run_as_test do ++ nil.stubs(:stubbed_method) ++ end ++ assert_passed(test_result) ++ assert @logger.warnings.include?("stubbing method on nil: nil.stubbed_method") + end +- assert_passed(test_result) +- assert @logger.warnings.include?("stubbing method on nil: nil.stubbed_method") +- end + +- def test_should_prevent_stubbing_method_on_nil +- Mocha::Configuration.prevent(:stubbing_method_on_nil) +- test_result = run_as_test do +- nil.stubs(:stubbed_method) ++ def test_should_prevent_stubbing_method_on_nil ++ Mocha::Configuration.prevent(:stubbing_method_on_nil) ++ test_result = run_as_test do ++ nil.stubs(:stubbed_method) ++ end ++ assert_failed(test_result) ++ assert test_result.error_messages.include?("Mocha::StubbingError: stubbing method on nil: nil.stubbed_method") + end +- assert_failed(test_result) +- assert test_result.error_messages.include?("Mocha::StubbingError: stubbing method on nil: nil.stubbed_method") +- end + +- def test_should_default_to_prevent_stubbing_method_on_non_mock_object +- test_result = run_as_test do +- nil.stubs(:stubbed_method) ++ def test_should_default_to_prevent_stubbing_method_on_non_mock_object ++ test_result = run_as_test do ++ nil.stubs(:stubbed_method) ++ end ++ assert_failed(test_result) ++ assert test_result.error_messages.include?("Mocha::StubbingError: stubbing method on nil: nil.stubbed_method") + end +- assert_failed(test_result) +- assert test_result.error_messages.include?("Mocha::StubbingError: stubbing method on nil: nil.stubbed_method") +- end + +- def test_should_allow_stubbing_method_on_non_nil_object +- Mocha::Configuration.prevent(:stubbing_method_on_nil) +- object = Object.new +- test_result = run_as_test do +- object.stubs(:stubbed_method) ++ def test_should_allow_stubbing_method_on_non_nil_object ++ Mocha::Configuration.prevent(:stubbing_method_on_nil) ++ object = Object.new ++ test_result = run_as_test do ++ object.stubs(:stubbed_method) ++ end ++ assert_passed(test_result) + end +- assert_passed(test_result) + end + end diff --git a/rubygem-mocha.spec b/rubygem-mocha.spec new file mode 100644 index 0000000..54df2e4 --- /dev/null +++ b/rubygem-mocha.spec @@ -0,0 +1,69 @@ +%global gem_name mocha +Summary: Mocking and stubbing library +Name: rubygem-%{gem_name} +Version: 1.1.0 +Release: 1 +License: MIT or Ruby or BSD +URL: https://github.com/freerange/mocha +Source0: http://rubygems.org/gems/mocha-%{version}.gem +Patch0: rubygem-mocha-1.1.0-As-of-Ruby-v2.2-nil-is-frozen-so-these-tests-are-irrelevant.patch +BuildRequires: ruby(release) rubygems-devel ruby rubygem(metaclass) rubygem(introspection) +BuildRequires: rubygem(minitest) +BuildArch: noarch +%description +Mocking and stubbing library with JMock/SchMock syntax, which allows mocking +and stubbing of methods on real (non-mock) classes. + +%package doc +Summary: Documentation for %{name} +Requires: %{name} = %{version}-%{release} +BuildArch: noarch +%description doc +This package contains documentation for %{name}. + +%prep +%setup -q -c -T +%gem_install -n %{SOURCE0} +pushd .%{gem_instdir} +%patch0 -p1 +popd + +%build + +%install +mkdir -p %{buildroot}%{gem_dir} +cp -pa .%{gem_dir}/* \ + %{buildroot}%{gem_dir}/ + +%check +pushd .%{gem_instdir} +ruby -e "Dir.glob('./test/{unit,acceptance}/**/*_test.rb').each {|t| require t}" +ruby -e "Dir.glob('./test/integration/**/*_test.rb').each {|t| require t}" +popd + +%files +%exclude %{gem_instdir}/.* +%exclude %{gem_instdir}/init.rb +%doc %{gem_instdir}/COPYING.md +%doc %{gem_instdir}/README.md +%doc %{gem_instdir}/MIT-LICENSE.md +%doc %{gem_instdir}/RELEASE.md +%dir %{gem_instdir} +%{gem_instdir}/bin +%{gem_libdir} +%exclude %{gem_cache} +%{gem_spec} + +%files doc +%{gem_instdir}/Gemfile* +%doc %{gem_docdir} +%doc %{gem_instdir}/CONTRIBUTING.md +%{gem_instdir}/Rakefile +%{gem_instdir}/mocha.gemspec +%{gem_instdir}/gemfiles/ +%{gem_instdir}/test/ +%{gem_instdir}/yard-templates/ + +%changelog +* Wed Aug 5 2020 wangchong - 1.1.0-1 +- package init diff --git a/rubygem-mocha.yaml b/rubygem-mocha.yaml new file mode 100644 index 0000000..27d6f7f --- /dev/null +++ b/rubygem-mocha.yaml @@ -0,0 +1,4 @@ +version_control: github +src_repo: freerange/mocha +tag_prefix: "^v" +seperator: "."