Sha256: 3070225997d4d41c7c57252513e18a9b80de912325b64bd44088e722529630b3

Contents?: true

Size: 1.16 KB

Versions: 465

Compression:

Stored size: 1.16 KB

Contents

require File.expand_path('../helper', __FILE__)
require 'stringio'

class TestRakeExtension < Rake::TestCase

  module Redirect
    def error_redirect
      old_err = $stderr
      result = StringIO.new
      $stderr = result
      yield
      result
    ensure
      $stderr = old_err
    end
  end

  class Sample
    extend Redirect

    def duplicate_method
      :original
    end

    OK_ERRS = error_redirect do
      rake_extension("a") do
        def ok_method
        end
      end
    end


    DUP_ERRS = error_redirect do
      rake_extension("duplicate_method") do
        def duplicate_method
          :override
        end
      end
    end
  end

  def test_methods_actually_exist
    sample = Sample.new
    sample.ok_method
    sample.duplicate_method
  end

  def test_no_warning_when_defining_ok_method
    assert_equal "", Sample::OK_ERRS.string
  end

  def test_extension_complains_when_a_method_that_is_present
    assert_match(/warning:/i, Sample::DUP_ERRS.string)
    assert_match(/already exists/i, Sample::DUP_ERRS.string)
    assert_match(/duplicate_method/i, Sample::DUP_ERRS.string)
    assert_equal :original, Sample.new.duplicate_method
  end

end

Version data entries

465 entries across 395 versions & 113 rubygems

Version Path
config_gems_initialization_aim-0.1.3 vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_extension.rb
lgrgic_palindrome_detector-0.2.0 vendor/cache/gems/rake-10.5.0/test/test_rake_extension.rb
lgrgic_palindrome_detector-0.2.0 vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_extension.rb
lgrgic_palindrome_detector-0.1.0 vendor/cache/gems/rake-10.5.0/test/test_rake_extension.rb
xaiml-0.1.1 vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_extension.rb
xaiml-0.1.0 vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_extension.rb
wfrey_palindrome-0.3.0 vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/test/test_rake_extension.rb
wfrey_palindrome-0.3.0 vendor/bundle/ruby/2.3.0/gems/wfrey_palindrome-0.1.0/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/test/test_rake_extension.rb
wfrey_palindrome-0.2.0 vendor/bundle/ruby/2.3.0/gems/wfrey_palindrome-0.1.0/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/test/test_rake_extension.rb
wfrey_palindrome-0.2.0 vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/test/test_rake_extension.rb
wfrey_palindrome-0.1.0 vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/test/test_rake_extension.rb
wfrey_palindrome-0.1.0 vendor/bundle/ruby/2.3.0/gems/wfrey_palindrome-0.1.0/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/test/test_rake_extension.rb
bsielski_control_flow-1.0.0 vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_extension.rb
daslabs-0.12.0 vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_extension.rb
daslabs-0.11.0 vendor/cache/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_extension.rb
sprokovuln-0.2.0 vendor/ruby/gems/rake-10.5.0/test/test_rake_extension.rb
mercadopago-custom-checkout-0.1.2 .gs/gems/rake-10.5.0/test/test_rake_extension.rb
monero_wallet_gen-0.1.0 vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/test/test_rake_extension.rb
sb_prime_table-0.1.1 vendor/bundle/ruby/2.4.0/gems/rake-10.5.0/test/test_rake_extension.rb
sb_prime_table-0.1.0 vendor/bundle/ruby/2.4.0/gems/rake-10.5.0/test/test_rake_extension.rb