diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2005-11-06 20:39:34 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2005-11-06 20:39:34 +0000 |
commit | 49c801b71d425543ae88e171b969b3316f022c2a (patch) | |
tree | a7a4fd2f16414b091fdb4c7c4335e300f15414f7 /activerecord/test | |
parent | 89ec75edc9a4d9064c0e644c5be0949f5119967c (diff) | |
download | rails-49c801b71d425543ae88e171b969b3316f022c2a.tar.gz rails-49c801b71d425543ae88e171b969b3316f022c2a.tar.bz2 rails-49c801b71d425543ae88e171b969b3316f022c2a.zip |
Added :include as an option for association declarations [DHH]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2898 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/test')
-rw-r--r-- | activerecord/test/associations_go_eager_test.rb | 25 | ||||
-rw-r--r-- | activerecord/test/fixtures/author.rb | 4 | ||||
-rw-r--r-- | activerecord/test/fixtures/post.rb | 3 |
3 files changed, 32 insertions, 0 deletions
diff --git a/activerecord/test/associations_go_eager_test.rb b/activerecord/test/associations_go_eager_test.rb index c2e903fa2c..f05e5c6fe2 100644 --- a/activerecord/test/associations_go_eager_test.rb +++ b/activerecord/test/associations_go_eager_test.rb @@ -186,4 +186,29 @@ class EagerAssociationTest < Test::Unit::TestCase assert_nothing_raised { Post.find(:all, :include => 'comments') } end + def test_preconfigured_includes_with_belongs_to + author = posts(:welcome).author_with_posts + assert_equal 5, author.posts.size + end + + def test_preconfigured_includes_with_has_one + comment = posts(:sti_comments).very_special_comment_with_post + assert_equal posts(:sti_comments), comment.post + end + + def test_preconfigured_includes_with_has_many + posts = authors(:david).posts_with_comments + assert_equal 2, posts.first.comments.size + end + + def test_preconfigured_includes_with_habtm + posts = authors(:david).posts_with_categories + assert_equal 2, posts.first.categories.size + end + + def test_preconfigured_includes_with_has_many_and_habtm + posts = authors(:david).posts_with_comments_and_categories + assert_equal 2, posts.first.comments.size + assert_equal 2, posts.first.categories.size + end end diff --git a/activerecord/test/fixtures/author.rb b/activerecord/test/fixtures/author.rb index ea0094de39..c183940c2f 100644 --- a/activerecord/test/fixtures/author.rb +++ b/activerecord/test/fixtures/author.rb @@ -1,5 +1,9 @@ class Author < ActiveRecord::Base has_many :posts + has_many :posts_with_comments, :include => :comments, :class_name => "Post" + has_many :posts_with_categories, :include => :categories, :class_name => "Post" + has_many :posts_with_comments_and_categories, :include => [ :comments, :categories ], :class_name => "Post" + has_many :posts_with_callbacks, :class_name => "Post", :before_add => :log_before_adding, :after_add => :log_after_adding, :before_remove => :log_before_removing, :after_remove => :log_after_removing diff --git a/activerecord/test/fixtures/post.rb b/activerecord/test/fixtures/post.rb index 1697f0a599..bf44d8a0a5 100644 --- a/activerecord/test/fixtures/post.rb +++ b/activerecord/test/fixtures/post.rb @@ -5,6 +5,8 @@ class Post < ActiveRecord::Base end end + belongs_to :author_with_posts, :class_name => "Author", :include => :posts + has_many :comments, :order => "body" do def find_most_recent find(:first, :order => "id DESC") @@ -12,6 +14,7 @@ class Post < ActiveRecord::Base end has_one :very_special_comment + has_one :very_special_comment_with_post, :class_name => "VerySpecialComment", :include => :post has_many :special_comments has_and_belongs_to_many :categories |