aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/finder_test.rb
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2005-03-20 21:56:50 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2005-03-20 21:56:50 +0000
commitee8d110068e958b400987b5f224e14e292fd0558 (patch)
treea94385c7b5cddb6704d2e6d53aa8097bd5363198 /activerecord/test/finder_test.rb
parent9fe45f31ebeb772fdd1bc850c12cd465463e2ef7 (diff)
downloadrails-ee8d110068e958b400987b5f224e14e292fd0558.tar.gz
rails-ee8d110068e958b400987b5f224e14e292fd0558.tar.bz2
rails-ee8d110068e958b400987b5f224e14e292fd0558.zip
Added adapter independent limit clause as a two-element array with the first being the limit, the second being the offset #795 [Sam Stephenson]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@944 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/test/finder_test.rb')
-rwxr-xr-xactiverecord/test/finder_test.rb29
1 files changed, 28 insertions, 1 deletions
diff --git a/activerecord/test/finder_test.rb b/activerecord/test/finder_test.rb
index 3b239b581c..de6d240faa 100755
--- a/activerecord/test/finder_test.rb
+++ b/activerecord/test/finder_test.rb
@@ -4,7 +4,7 @@ require 'fixtures/topic'
require 'fixtures/entrant'
class FinderTest < Test::Unit::TestCase
- fixtures :companies, :topics, :entrants
+ fixtures :companies, :topics, :entrants, :developers
def test_find
assert_equal(@topics["first"]["title"], Topic.find(1).title)
@@ -244,6 +244,33 @@ class FinderTest < Test::Unit::TestCase
assert_raises(ActiveRecord::StatementInvalid) { Topic.find_by_sql "select 1 from badtable" }
end
+ def test_find_all_with_limit
+ first_five_developers = Developer.find_all nil, 'id ASC', 5
+ assert_equal 5, first_five_developers.length
+ assert_equal 'David', first_five_developers.first.name
+ assert_equal 'fixture_5', first_five_developers.last.name
+
+ no_developers = Developer.find_all nil, 'id ASC', 0
+ assert_equal 0, no_developers.length
+
+ assert_equal first_five_developers, Developer.find_all(nil, 'id ASC', [5])
+ assert_equal no_developers, Developer.find_all(nil, 'id ASC', [0])
+ end
+
+ def test_find_all_with_limit_and_offset
+ first_three_developers = Developer.find_all nil, 'id ASC', [3, 0]
+ second_three_developers = Developer.find_all nil, 'id ASC', [3, 3]
+ last_two_developers = Developer.find_all nil, 'id ASC', [3, 8]
+
+ assert_equal 3, first_three_developers.length
+ assert_equal 3, second_three_developers.length
+ assert_equal 2, last_two_developers.length
+
+ assert_equal 'David', first_three_developers.first.name
+ assert_equal 'fixture_4', second_three_developers.first.name
+ assert_equal 'fixture_9', last_two_developers.first.name
+ end
+
protected
def bind(statement, *vars)
if vars.first.is_a?(Hash)