Sha256: baca3679afa6b348fb189a1022610cb53563a6cd6a050c68c44c4be9e7396cc6

Contents?: true

Size: 1.24 KB

Versions: 133

Compression:

Stored size: 1.24 KB

Contents

#!/usr/bin/env ruby

require 'test/unit'
require 'rake'
require 'stringio'

######################################################################
class TestExtension < Test::Unit::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

133 entries across 105 versions & 11 rubygems

Version Path
craigmarksmith-rake-0.8.3.100 test/test_extension.rb
craigmarksmith-rake-0.8.4.101 test/test_extension.rb
craigmarksmith-rake-0.8.4.102 test/test_extension.rb
craigmarksmith-rake-0.8.4.103 test/test_extension.rb
elliottcable-echoe-3.1.1 vendor/rake/test/test_extension.rb
elliottcable-echoe-3.1.2 vendor/rake/test/test_extension.rb
jimweirich-rake-0.8.1.10 test/test_extension.rb
jimweirich-rake-0.8.1.11 test/test_extension.rb
jimweirich-rake-0.8.1.5 test/test_extension.rb
jimweirich-rake-0.8.1.6 test/test_extension.rb
jimweirich-rake-0.8.1.7 test/test_extension.rb
jimweirich-rake-0.8.1.8 test/test_extension.rb
jimweirich-rake-0.8.1.9 test/test_extension.rb
jimweirich-rake-0.8.2.99 test/test_extension.rb
jimweirich-rake-0.8.2 test/test_extension.rb
jimweirich-rake-0.8.3.1 test/test_extension.rb
jimweirich-rake-0.8.3.100 test/test_extension.rb
jimweirich-rake-0.8.3.99 test/test_extension.rb
jimweirich-rake-0.8.3 test/test_extension.rb
jimweirich-rake-0.8.4.99 test/test_extension.rb