diff options
author | Andrew Bloomgarden <stalkingtiger@gmail.com> | 2010-06-01 22:47:34 -0700 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2010-06-08 15:34:47 -0400 |
commit | 0e9b9d59859efa46a82b56e0715784fa52656650 (patch) | |
tree | d779373d72176101829b54d4946c59b72a4bed3d /activerecord/test/cases/base_test.rb | |
parent | bdcf70cca89df906a3510464ef46a44646fd29a3 (diff) | |
download | rails-0e9b9d59859efa46a82b56e0715784fa52656650.tar.gz rails-0e9b9d59859efa46a82b56e0715784fa52656650.tar.bz2 rails-0e9b9d59859efa46a82b56e0715784fa52656650.zip |
Fix ActiveRecord::Base.compute_type swallowing NoMethodError. [#4751 state:resolved]
Signed-off-by: David Heinemeier Hansson <david@loudthinking.com>
Diffstat (limited to 'activerecord/test/cases/base_test.rb')
-rwxr-xr-x | activerecord/test/cases/base_test.rb | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/activerecord/test/cases/base_test.rb b/activerecord/test/cases/base_test.rb index 36c572b5e7..5c175de6d4 100755 --- a/activerecord/test/cases/base_test.rb +++ b/activerecord/test/cases/base_test.rb @@ -2334,6 +2334,23 @@ class BasicsTest < ActiveRecord::TestCase assert !Minimalistic.new.freeze.dup.frozen? end + def test_compute_type_success + assert_equal Author, ActiveRecord::Base.send(:compute_type, 'Author') + end + + def test_compute_type_nonexistent_constant + assert_raises NameError do + ActiveRecord::Base.send :compute_type, 'NonexistentModel' + end + end + + def test_compute_type_no_method_error + String.any_instance.stubs(:constantize).raises(NoMethodError) + assert_raises NoMethodError do + ActiveRecord::Base.send :compute_type, 'InvalidModel' + end + end + protected def with_env_tz(new_tz = 'US/Eastern') old_tz, ENV['TZ'] = ENV['TZ'], new_tz |