aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/class_cache_test.rb
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2011-03-01 17:20:10 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2011-03-01 17:20:35 -0800
commit7b6bfe84f332a3c99656f73cf0251bce0a16ba88 (patch)
treefe0fa3c7ef7d0638b9ef9f3db1b259ade1c656de /activesupport/test/class_cache_test.rb
parent50ed1a25a4e496a7a67861b1a04d667bd3445bb6 (diff)
downloadrails-7b6bfe84f332a3c99656f73cf0251bce0a16ba88.tar.gz
rails-7b6bfe84f332a3c99656f73cf0251bce0a16ba88.tar.bz2
rails-7b6bfe84f332a3c99656f73cf0251bce0a16ba88.zip
refactor Reference to a ClassCache object, fix lazy lookup in Middleware so that anonymous classes are supported
Diffstat (limited to 'activesupport/test/class_cache_test.rb')
-rw-r--r--activesupport/test/class_cache_test.rb81
1 files changed, 81 insertions, 0 deletions
diff --git a/activesupport/test/class_cache_test.rb b/activesupport/test/class_cache_test.rb
new file mode 100644
index 0000000000..3d3ae559e5
--- /dev/null
+++ b/activesupport/test/class_cache_test.rb
@@ -0,0 +1,81 @@
+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
+ @cache.new ClassCacheTest
+ assert @cache.key?(ClassCacheTest.name)
+ end
+
+ def test_new_rejects_strings
+ @cache.new ClassCacheTest.name
+ assert !@cache.key?(ClassCacheTest.name)
+ end
+
+ def test_new_returns_self
+ v = @cache.new ClassCacheTest.name
+ assert_equal @cache, v
+ end
+
+ def test_anonymous_class_fail
+ assert_raises(ArgumentError) do
+ @cache.new Class.new
+ end
+
+ assert_raises(ArgumentError) do
+ x = Class.new
+ @cache[x] = x
+ end
+ end
+ end
+ end
+end