diff options
Diffstat (limited to 'activerecord/test')
-rw-r--r-- | activerecord/test/associations_go_eager_test.rb | 20 | ||||
-rw-r--r-- | activerecord/test/reflection_test.rb | 33 |
2 files changed, 30 insertions, 23 deletions
diff --git a/activerecord/test/associations_go_eager_test.rb b/activerecord/test/associations_go_eager_test.rb index 110fb8e4ae..892a879283 100644 --- a/activerecord/test/associations_go_eager_test.rb +++ b/activerecord/test/associations_go_eager_test.rb @@ -29,7 +29,7 @@ class EagerAssociationTest < Test::Unit::TestCase assert_equal posts(:thinking), posts[4] assert_equal posts(:welcome), posts[5] end - + def test_loading_with_multiple_associations posts = Post.find(:all, :include => [ :comments, :author, :categories ], :order => "posts.id") assert_equal 2, posts.first.comments.size @@ -61,23 +61,23 @@ class EagerAssociationTest < Test::Unit::TestCase assert posts[0].categories.include?(categories(:technology)) assert posts[1].categories.include?(categories(:general)) end - + def test_eager_with_inheritance posts = SpecialPost.find(:all, :include => [ :comments ]) - end + end def test_eager_has_one_with_association_inheritance post = Post.find(4, :include => [ :very_special_comment ]) assert_equal "VerySpecialComment", post.very_special_comment.class.to_s - end - + end + def test_eager_has_many_with_association_inheritance post = Post.find(4, :include => [ :special_comments ]) post.special_comments.each do |special_comment| assert_equal "SpecialComment", special_comment.class.to_s end - end - + end + def test_eager_habtm_with_association_inheritance post = Post.find(6, :include => [ :special_categories ]) assert_equal 1, post.special_categories.size @@ -90,7 +90,8 @@ class EagerAssociationTest < Test::Unit::TestCase assert_not_nil companies(:first_firm).account f = Firm.find(:first, :include => :account, :conditions => ["companies.name = ?", "37signals"]) - assert_not_nil companies(:first_firm, :reload).account + assert_not_nil f.account + assert_equal companies(:first_firm, :reload).account, f.account end def test_eager_with_invalid_association_reference @@ -103,6 +104,3 @@ class EagerAssociationTest < Test::Unit::TestCase end end - - - diff --git a/activerecord/test/reflection_test.rb b/activerecord/test/reflection_test.rb index 1658408d7a..0935b7e5a2 100644 --- a/activerecord/test/reflection_test.rb +++ b/activerecord/test/reflection_test.rb @@ -17,7 +17,7 @@ class ReflectionTest < Test::Unit::TestCase @first.attribute_names ) end - + def test_columns assert_equal 12, Topic.columns.length end @@ -30,7 +30,7 @@ class ReflectionTest < Test::Unit::TestCase def test_content_columns assert_equal 8, Topic.content_columns.length end - + def test_column_string_type_and_limit assert_equal :string, @first.column_for_attribute("title").type assert_equal 255, @first.column_for_attribute("title").limit @@ -39,10 +39,10 @@ class ReflectionTest < Test::Unit::TestCase def test_human_name_for_column assert_equal "Author name", @first.column_for_attribute("author_name").human_name end - + def test_integer_columns assert_equal :integer, @first.column_for_attribute("id").type - end + end def test_aggregation_reflection reflection_for_address = ActiveRecord::Reflection::AggregateReflection.new( @@ -61,23 +61,32 @@ class ReflectionTest < Test::Unit::TestCase [ reflection_for_address, reflection_for_balance, reflection_for_gps_location ], Customer.reflect_on_all_aggregations ) - + assert_equal reflection_for_address, Customer.reflect_on_aggregation(:address) - + assert_equal Address, Customer.reflect_on_aggregation(:address).klass end - - def test_association_reflection - reflection_for_clients = ActiveRecord::Reflection::AssociationReflection.new( - :has_many, :clients, { :order => "id", :dependent => true }, Firm - ) + + def test_has_many_reflection + reflection_for_clients = ActiveRecord::Reflection::AssociationReflection.new(:has_many, :clients, { :order => "id", :dependent => true }, Firm) assert_equal reflection_for_clients, Firm.reflect_on_association(:clients) assert_equal Client, Firm.reflect_on_association(:clients).klass + assert_equal 'companies', Firm.reflect_on_association(:clients).table_name + assert_equal Client, Firm.reflect_on_association(:clients_of_firm).klass + assert_equal 'companies', Firm.reflect_on_association(:clients_of_firm).table_name + end + + def test_has_one_reflection + reflection_for_account = ActiveRecord::Reflection::AssociationReflection.new(:has_one, :account, { :foreign_key => "firm_id", :dependent => true }, Firm) + assert_equal reflection_for_account, Firm.reflect_on_association(:account) + + assert_equal Account, Firm.reflect_on_association(:account).klass + assert_equal 'accounts', Firm.reflect_on_association(:account).table_name end - + def test_association_reflection_in_modules assert_equal MyApplication::Business::Client, MyApplication::Business::Firm.reflect_on_association(:clients_of_firm).klass assert_equal MyApplication::Business::Firm, MyApplication::Billing::Account.reflect_on_association(:firm).klass |