mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
109 lines
2.5 KiB
Ruby
109 lines
2.5 KiB
Ruby
|
require 'abstract_unit'
|
||
|
require 'active_support/dependencies'
|
||
|
|
||
|
module ActiveSupport
|
||
|
module Dependencies
|
||
|
class ClassCacheTest < ActiveSupport::TestCase
|
||
|
def setup
|
||
|
@cache = ClassCache.new
|
||
|
end
|
||
|
|
||
|
def test_empty?
|
||
|
assert @cache.empty?
|
||
|
@cache[ClassCacheTest] = ClassCacheTest
|
||
|
assert !@cache.empty?
|
||
|
end
|
||
|
|
||
|
def test_clear!
|
||
|
assert @cache.empty?
|
||
|
@cache[ClassCacheTest] = ClassCacheTest
|
||
|
assert !@cache.empty?
|
||
|
@cache.clear!
|
||
|
assert @cache.empty?
|
||
|
end
|
||
|
|
||
|
def test_set_key
|
||
|
@cache[ClassCacheTest] = ClassCacheTest
|
||
|
assert @cache.key?(ClassCacheTest.name)
|
||
|
end
|
||
|
|
||
|
def test_set_rejects_strings
|
||
|
@cache[ClassCacheTest.name] = ClassCacheTest
|
||
|
assert @cache.empty?
|
||
|
end
|
||
|
|
||
|
def test_get_with_class
|
||
|
@cache[ClassCacheTest] = ClassCacheTest
|
||
|
assert_equal ClassCacheTest, @cache[ClassCacheTest]
|
||
|
end
|
||
|
|
||
|
def test_get_with_name
|
||
|
@cache[ClassCacheTest] = ClassCacheTest
|
||
|
assert_equal ClassCacheTest, @cache[ClassCacheTest.name]
|
||
|
end
|
||
|
|
||
|
def test_get_constantizes
|
||
|
assert @cache.empty?
|
||
|
assert_equal ClassCacheTest, @cache[ClassCacheTest.name]
|
||
|
end
|
||
|
|
||
|
def test_get_is_an_alias
|
||
|
assert_equal @cache[ClassCacheTest], @cache.get(ClassCacheTest.name)
|
||
|
end
|
||
|
|
||
|
def test_new
|
||
|
assert_deprecated do
|
||
|
@cache.new ClassCacheTest
|
||
|
end
|
||
|
assert @cache.key?(ClassCacheTest.name)
|
||
|
end
|
||
|
|
||
|
def test_new_rejects_strings
|
||
|
assert_deprecated do
|
||
|
@cache.new ClassCacheTest.name
|
||
|
end
|
||
|
assert !@cache.key?(ClassCacheTest.name)
|
||
|
end
|
||
|
|
||
|
def test_new_rejects_strings
|
||
|
@cache.store ClassCacheTest.name
|
||
|
assert !@cache.key?(ClassCacheTest.name)
|
||
|
end
|
||
|
|
||
|
def test_store_returns_self
|
||
|
x = @cache.store ClassCacheTest
|
||
|
assert_equal @cache, x
|
||
|
end
|
||
|
|
||
|
def test_new_returns_proxy
|
||
|
v = nil
|
||
|
assert_deprecated do
|
||
|
v = @cache.new ClassCacheTest.name
|
||
|
end
|
||
|
|
||
|
assert_deprecated do
|
||
|
assert_equal ClassCacheTest, v.get
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def test_anonymous_class_fail
|
||
|
assert_raises(ArgumentError) do
|
||
|
assert_deprecated do
|
||
|
@cache.new Class.new
|
||
|
end
|
||
|
end
|
||
|
|
||
|
assert_raises(ArgumentError) do
|
||
|
x = Class.new
|
||
|
@cache[x] = x
|
||
|
end
|
||
|
|
||
|
assert_raises(ArgumentError) do
|
||
|
x = Class.new
|
||
|
@cache.store x
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|