aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/associations_go_eager_test.rb25
-rw-r--r--activerecord/test/fixtures/author.rb4
-rw-r--r--activerecord/test/fixtures/post.rb3
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