ruby/test/rdoc/test_rdoc_any_method.rb

86 строки
1.7 KiB
Ruby

require File.expand_path '../xref_test_case', __FILE__
class RDocAnyMethodTest < XrefTestCase
def test_aref
m = RDoc::AnyMethod.new nil, 'method?'
assert_equal 'method-i-method%3F', m.aref
m.singleton = true
assert_equal 'method-c-method%3F', m.aref
end
def test_arglists
m = RDoc::AnyMethod.new nil, 'method'
assert_nil m.arglists
m.params = "(a, b)"
m.block_params = "c, d"
assert_equal "method(a, b) { |c, d| ... }", m.arglists
call_seq = <<-SEQ
method(a) { |c| ... }
method(a, b) { |c, d| ... }
SEQ
m.call_seq = call_seq.dup
assert_equal call_seq, m.arglists
end
def test_full_name
assert_equal 'C1::m', @c1.method_list.first.full_name
end
def test_marshal_load
instance_method = Marshal.load Marshal.dump(@c1.method_list.last)
assert_equal 'C1#m', instance_method.full_name
assert_equal 'C1', instance_method.parent_name
assert_equal '(foo)', instance_method.params
class_method = Marshal.load Marshal.dump(@c1.method_list.first)
assert_equal 'C1::m', class_method.full_name
assert_equal 'C1', class_method.parent_name
assert_equal '()', class_method.params
end
def test_name
m = RDoc::AnyMethod.new nil, nil
assert_nil m.name
end
def test_param_seq
m = RDoc::AnyMethod.new nil, 'method'
m.parent = @c1
m.params = 'a'
assert_equal '(a)', m.param_seq
m.params = '(a)'
assert_equal '(a)', m.param_seq
m.params = "(a,\n b)"
assert_equal '(a, b)', m.param_seq
m.block_params = "c,\n d"
assert_equal '(a, b) { |c, d| ... }', m.param_seq
end
def test_parent_name
assert_equal 'C1', @c1.method_list.first.parent_name
assert_equal 'C1', @c1.method_list.last.parent_name
end
end