aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorJon Leighton <j@jonathanleighton.com>2011-03-16 18:54:51 +0000
committerJon Leighton <j@jonathanleighton.com>2011-03-16 18:54:51 +0000
commit8aaf3c1e553d18b40d9980951d496bffad56f37b (patch)
tree2eddd2b50a5924420b30caa5c6d867f4870a71dc /activerecord/test
parent9abc94c44516afdcfe4a3b202c336c9578fd6d0d (diff)
parent0eae62525696b57fe7fc4bbb0bf9c0bc7ee4e480 (diff)
downloadrails-8aaf3c1e553d18b40d9980951d496bffad56f37b.tar.gz
rails-8aaf3c1e553d18b40d9980951d496bffad56f37b.tar.bz2
rails-8aaf3c1e553d18b40d9980951d496bffad56f37b.zip
Merge branch 'master' into nested_has_many_through
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/cases/relations_test.rb26
1 files changed, 26 insertions, 0 deletions
diff --git a/activerecord/test/cases/relations_test.rb b/activerecord/test/cases/relations_test.rb
index ac586e2a63..680e1d50cf 100644
--- a/activerecord/test/cases/relations_test.rb
+++ b/activerecord/test/cases/relations_test.rb
@@ -673,6 +673,32 @@ class RelationTest < ActiveRecord::TestCase
assert_equal expected, posts.count
end
+ def test_empty
+ posts = Post.scoped
+
+ assert_queries(1) { assert_equal false, posts.empty? }
+ assert ! posts.loaded?
+
+ no_posts = posts.where(:title => "")
+ assert_queries(1) { assert_equal true, no_posts.empty? }
+ assert ! no_posts.loaded?
+
+ best_posts = posts.where(:comments_count => 0)
+ best_posts.to_a # force load
+ assert_no_queries { assert_equal false, best_posts.empty? }
+ end
+
+ def test_empty_complex_chained_relations
+ posts = Post.select("comments_count").where("id is not null").group("author_id").where("comments_count > 0")
+
+ assert_queries(1) { assert_equal false, posts.empty? }
+ assert ! posts.loaded?
+
+ no_posts = posts.where(:title => "")
+ assert_queries(1) { assert_equal true, no_posts.empty? }
+ assert ! no_posts.loaded?
+ end
+
def test_any
posts = Post.scoped