From f16008afddaf7d80d6bac0ace380e864b78106fe Mon Sep 17 00:00:00 2001 From: Dmitry Ratnikov Date: Sun, 9 Aug 2009 03:35:45 -0500 Subject: [PATCH] Modified Rich Bradley's test-case to fail as part of suite and with a reasonable message Signed-off-by: Jeremy Kemper --- activerecord/test/cases/modules_test.rb | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/activerecord/test/cases/modules_test.rb b/activerecord/test/cases/modules_test.rb index 8360416aa21ab..9c44bea74f43e 100644 --- a/activerecord/test/cases/modules_test.rb +++ b/activerecord/test/cases/modules_test.rb @@ -4,6 +4,16 @@ class ModulesTest < ActiveRecord::TestCase fixtures :accounts, :companies, :projects, :developers + def setup + # need to make sure Object::Firm is not defined, so that constantize will not be able to cheat when having to load namespaced classes + @firm_const = Object.send(:remove_const, :Firm) if Object.const_defined?(:Firm) + end + + def teardown + # reinstate the Object::Firm constant for further tests + Object.send :const_set, :Firm, @firm_const unless @firm_const.nil? + end + def test_module_spanning_associations firm = MyApplication::Business::Firm.find(:first) assert !firm.clients.empty?, "Firm should have clients" @@ -40,8 +50,12 @@ def test_table_name def test_eager_loading_in_modules # need to add an eager loading condition to force the eager loading model into # the old join model, to test that. See http://dev.rubyonrails.org/ticket/9640 - client_join_loaded = MyApplication::Business::Client.find(3, :include => {:firm => :account}, :conditions => 'accounts.id IS NOT NULL') - client_sequential_loaded = MyApplication::Business::Client.find(3, :include => {:firm => :account}) + begin + client_join_loaded = MyApplication::Business::Client.find(3, :include => {:firm => :account}, :conditions => 'accounts.id IS NOT NULL') + client_sequential_loaded = MyApplication::Business::Client.find(3, :include => {:firm => :account}) + rescue NameError => nE + flunk "Should be able to resolve all classes via reflections" + end [client_join_loaded, client_sequential_loaded].each do |client| assert_no_queries do