Sha256: e6c4b64fc7317a0d1fb7f82bd87620708b1cd25ae01f39940dc063e5b0b4dff0

Contents?: true

Size: 1.61 KB

Versions: 17

Compression:

Stored size: 1.61 KB

Contents

##
## $Rev: 1 $
## $Release: 1.0.0 $
## copyright(c) 2006 kuwata-lab.com all rights reserved.
##

testdir = File.dirname(File.expand_path(__FILE__))
libdir  = File.dirname(testdir) + "/lib"
$: << libdir


require 'test/unit'
require 'abstract'


class Foo
  abstract_method "arg1, arg2=''", :m1, :m2, :m3
end


class Bar
  def m1(arg1, arg2='')
    not_implemented
  end
end



class AbstractTest < Test::Unit::TestCase


  def _test(obj)
    assert_raise(NotImplementedError) do
      begin
        obj = Foo.new
        obj.m1 'a'
      rescue => ex
        linenum = (ex.backtrace[0] =~ /:(\d+)/) && $1
        raise ex
      end
    end
  end


  def test_abstract_method1
    obj = Foo.new
    assert_raise(NotImplementedError) { obj.m1 'a' }
    assert_raise(NotImplementedError) { obj.m2 'a', 'b' }
  end


  def test_abstract_method2
    begin
      obj = Foo.new
      linenum = __LINE__; obj.m1 'a'
    rescue NotImplementedError => ex
      actual_linenum = (ex.backtrace[0] =~ /:(\d+)/) && $1.to_i
    end
    assert_equal linenum, actual_linenum
  end


  def test_not_implemented1
    obj = Bar.new
    assert_raise(NotImplementedError) { obj.m1 123 }
  end


  def test_not_implemented2
    begin
      obj = Bar.new
      linenum = __LINE__; obj.m1 'a'
    rescue NotImplementedError => ex
      actual_linenum = (ex.backtrace[0] =~ /:(\d+)/) && $1.to_i
    end
    assert_equal linenum, actual_linenum
  end


  def test_not_implemented3
    begin
      obj = Bar.new
      obj.not_implemented
    rescue Exception => ex
      assert_instance_of(NoMethodError, ex)
      assert_match(/private method/, ex.message)
    end
  end


end

Version data entries

17 entries across 15 versions & 4 rubygems

Version Path
merb-core-1.1.3 spec10/public/webrat/test_app/gems/gems/abstract-1.0.0/test/test.rb
merb-core-1.1.2 spec10/public/webrat/test_app/gems/gems/abstract-1.0.0/test/test.rb
merb-core-1.1.1 spec10/public/webrat/test_app/gems/gems/abstract-1.0.0/test/test.rb
merb-core-1.1.0 spec10/public/webrat/test_app/gems/gems/abstract-1.0.0/test/test.rb
merb-core-1.1.0.rc1 spec10/public/webrat/test_app/gems/gems/abstract-1.0.0/test/test.rb
simple-templater-0.0.1.4 gems/gems/abstract-1.0.0/test/test.rb
simple-templater-0.0.1.3 vendor/abstract/test/test.rb
simple-templater-0.2.pre vendor/abstract/test/test.rb
simple-templater-0.0.1.2 vendor/abstract/test/test.rb
simple-templater-0.0.1.1 vendor/abstract/test/test.rb
rango-0.0.6 vendor/simple-templater/vendor/abstract/test/test.rb
rango-0.0.6 vendor/abstract/test/test.rb
rango-0.1.pre vendor/simple-templater/vendor/abstract/test/test.rb
rango-0.1.pre vendor/abstract/test/test.rb
simple-templater-0.0.1 vendor/abstract/test/test.rb
merb-core-1.1.0.pre spec10/public/webrat/test_app/gems/gems/abstract-1.0.0/test/test.rb
abstract-1.0.0 test/test.rb