2003-09-04 12:18:59 -04:00
|
|
|
require 'test/unit'
|
|
|
|
|
|
|
|
class TestAlias < Test::Unit::TestCase
|
|
|
|
class Alias0
|
|
|
|
def foo; "foo" end
|
|
|
|
end
|
|
|
|
class Alias1<Alias0
|
|
|
|
alias bar foo
|
|
|
|
def foo; "foo+" + super end
|
|
|
|
end
|
|
|
|
class Alias2<Alias1
|
|
|
|
alias baz foo
|
|
|
|
undef foo
|
|
|
|
end
|
|
|
|
class Alias3<Alias2
|
|
|
|
def foo
|
|
|
|
defined? super
|
|
|
|
end
|
|
|
|
def bar
|
|
|
|
defined? super
|
|
|
|
end
|
|
|
|
def quux
|
|
|
|
defined? super
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_alias
|
|
|
|
x = Alias2.new
|
2003-09-05 11:15:43 -04:00
|
|
|
assert_equal("foo", x.bar)
|
|
|
|
assert_equal("foo+foo", x.baz)
|
|
|
|
|
2003-09-04 12:18:59 -04:00
|
|
|
# test_check for cache
|
2003-09-05 11:15:43 -04:00
|
|
|
assert_equal("foo+foo", x.baz)
|
|
|
|
|
2003-09-04 12:18:59 -04:00
|
|
|
x = Alias3.new
|
|
|
|
assert(!x.foo)
|
|
|
|
assert(x.bar)
|
|
|
|
assert(!x.quux)
|
|
|
|
end
|
|
|
|
end
|