diff --git a/activerecord-2.2.2/test/cases/associations/eager_test.rb b/activerecord-2.2.2/test/cases/associations/eager_test.rb index a4f1f65..e29680e 100644 --- a/activerecord-2.2.2/test/cases/associations/eager_test.rb +++ b/activerecord-2.2.2/test/cases/associations/eager_test.rb @@ -4,6 +4,7 @@ require 'models/tagging' require 'models/comment' require 'models/author' require 'models/category' +require 'models/categorization' require 'models/company' require 'models/person' require 'models/reader' @@ -18,11 +19,14 @@ require 'models/developer' require 'models/project' class EagerAssociationTest < ActiveRecord::TestCase - fixtures :posts, :comments, :authors, :author_addresses, :categories, :categories_posts, + fixtures :posts, :comments, :authors, :author_addresses, :categories, :categories_posts, :categorizations, :companies, :accounts, :tags, :taggings, :people, :readers, :owners, :pets, :author_favorites, :jobs, :references, :subscribers, :subscriptions, :books, :developers, :projects, :developers_projects @@ -111,6 +115,13 @@ class EagerAssociationTest < ActiveRecord::TestCase end end + def test_deep_including_through_habtm + posts = Post.find(:all, :include => {:categories => :categorizations}, :order => "posts.id") + assert_no_queries { assert_equal 2, posts[0].categories[0].categorizations.size } + assert_no_queries { assert_equal 0, posts[0].categories[1].categorizations.size } + assert_no_queries { assert_equal 2, posts[1].categories[0].categorizations.size } + end + def test_finding_with_includes_on_has_many_association_with_same_include_includes_only_once author_id = authors(:david).id author = assert_queries(3) { Author.find(author_id, :include => {:posts_with_comments => :comments}) } # find the author, then find the posts, then find the comments