59 lines
1.7 KiB
Ruby
59 lines
1.7 KiB
Ruby
|
require 'abstract_unit'
|
||
|
|
||
|
class Foo; end
|
||
|
class Bar < Foo;
|
||
|
def index; end
|
||
|
def self.index; end
|
||
|
end
|
||
|
class Baz < Bar; end
|
||
|
module FooBar; end
|
||
|
|
||
|
class TestLookup < ActiveSupport::TestCase
|
||
|
|
||
|
def find_foo(name)
|
||
|
self.class.determine_constant_from_test_name(name) do |constant|
|
||
|
Class === constant && constant < Foo
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def find_module(name)
|
||
|
self.class.determine_constant_from_test_name(name) do |constant|
|
||
|
Module === constant
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def test_find_bar_from_foo
|
||
|
assert_equal Bar, find_foo("Bar")
|
||
|
assert_equal Bar, find_foo("Bar::index")
|
||
|
assert_equal Bar, find_foo("Bar::index::authenticated")
|
||
|
assert_equal Bar, find_foo("BarTest")
|
||
|
assert_equal Bar, find_foo("BarTest::index")
|
||
|
assert_equal Bar, find_foo("BarTest::index::authenticated")
|
||
|
end
|
||
|
|
||
|
def test_find_module
|
||
|
assert_equal FooBar, find_module("FooBar")
|
||
|
assert_equal FooBar, find_module("FooBar::index")
|
||
|
assert_equal FooBar, find_module("FooBar::index::authenticated")
|
||
|
assert_equal FooBar, find_module("FooBarTest")
|
||
|
assert_equal FooBar, find_module("FooBarTest::index")
|
||
|
assert_equal FooBar, find_module("FooBarTest::index::authenticated")
|
||
|
end
|
||
|
|
||
|
def test_returns_nil_when_cant_find_foo
|
||
|
assert_nil find_foo("DoesntExist")
|
||
|
assert_nil find_foo("DoesntExistTest")
|
||
|
assert_nil find_foo("DoesntExist::Nadda")
|
||
|
assert_nil find_foo("DoesntExist::Nadda::Nope")
|
||
|
assert_nil find_foo("DoesntExist::Nadda::Nope::NotHere")
|
||
|
end
|
||
|
|
||
|
def test_returns_nil_when_cant_find_module
|
||
|
assert_nil find_module("DoesntExist")
|
||
|
assert_nil find_module("DoesntExistTest")
|
||
|
assert_nil find_module("DoesntExist::Nadda")
|
||
|
assert_nil find_module("DoesntExist::Nadda::Nope")
|
||
|
assert_nil find_module("DoesntExist::Nadda::Nope::NotHere")
|
||
|
end
|
||
|
end
|