aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorPratik Naik <pratiknaik@gmail.com>2009-02-24 12:30:37 +0000
committerPratik Naik <pratiknaik@gmail.com>2009-02-24 12:30:37 +0000
commit1248c6325b28082232162551af055f3681b0813a (patch)
tree3d8a087421f0d74da7a7c3878e3ad1dddbf23697 /activerecord/test
parent346ac0bba7cfbfbd0a7155163ca4125bc80ba463 (diff)
parent53cd102b39eb62567298430cbd94e40dd78d46a0 (diff)
downloadrails-1248c6325b28082232162551af055f3681b0813a.tar.gz
rails-1248c6325b28082232162551af055f3681b0813a.tar.bz2
rails-1248c6325b28082232162551af055f3681b0813a.zip
Merge commit 'mainstream/master'
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/cases/batches_test.rb49
1 files changed, 49 insertions, 0 deletions
diff --git a/activerecord/test/cases/batches_test.rb b/activerecord/test/cases/batches_test.rb
new file mode 100644
index 0000000000..108d679108
--- /dev/null
+++ b/activerecord/test/cases/batches_test.rb
@@ -0,0 +1,49 @@
+require 'cases/helper'
+require 'models/post'
+
+class EachTest < ActiveRecord::TestCase
+ fixtures :posts
+
+ def setup
+ @posts = Post.all(:order => "id asc")
+ @total = Post.count
+ end
+
+ def test_each_should_excecute_one_query_per_batch
+ assert_queries(Post.count + 1) do
+ Post.each(:batch_size => 1) do |post|
+ assert_kind_of Post, post
+ end
+ end
+ end
+
+ def test_each_should_raise_if_the_order_is_set
+ assert_raise(RuntimeError) do
+ Post.each(:order => "title") { |post| post }
+ end
+ end
+
+ def test_each_should_raise_if_the_limit_is_set
+ assert_raise(RuntimeError) do
+ Post.each(:limit => 1) { |post| post }
+ end
+ end
+
+ def test_find_in_batches_should_return_batches
+ assert_queries(Post.count + 1) do
+ Post.find_in_batches(:batch_size => 1) do |batch|
+ assert_kind_of Array, batch
+ assert_kind_of Post, batch.first
+ end
+ end
+ end
+
+ def test_find_in_batches_should_start_from_the_start_option
+ assert_queries(Post.count) do
+ Post.find_in_batches(:batch_size => 1, :start => 2) do |batch|
+ assert_kind_of Array, batch
+ assert_kind_of Post, batch.first
+ end
+ end
+ end
+end \ No newline at end of file