aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorMarcel Molina <marcel@vernix.org>2006-04-26 06:37:04 +0000
committerMarcel Molina <marcel@vernix.org>2006-04-26 06:37:04 +0000
commit91531372f9b7130f8a940cdb23f19984b65a60fa (patch)
tree096e1bc255bb6f7400fb919d4fb011fce5075d04 /activerecord/test
parentf274a89f8b23cedf020a1d59a8fe0438d6bc9be9 (diff)
downloadrails-91531372f9b7130f8a940cdb23f19984b65a60fa.tar.gz
rails-91531372f9b7130f8a940cdb23f19984b65a60fa.tar.bz2
rails-91531372f9b7130f8a940cdb23f19984b65a60fa.zip
Add support for :order option to with_scope. Closes #3887. [eric.daspet@survol.net]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4274 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/test')
-rwxr-xr-xactiverecord/test/base_test.rb23
1 files changed, 23 insertions, 0 deletions
diff --git a/activerecord/test/base_test.rb b/activerecord/test/base_test.rb
index 63bc3ea6a2..c4c0742b7b 100755
--- a/activerecord/test/base_test.rb
+++ b/activerecord/test/base_test.rb
@@ -1164,6 +1164,29 @@ class BasicsTest < Test::Unit::TestCase
assert_equal Developer.count, developers.size
end
+ def test_scoped_find_order
+ # Test order in scope
+ scoped_developers = Developer.with_scope(:find => { :limit => 1, :order => 'salary DESC' }) do
+ Developer.find(:all)
+ end
+ assert_equal 'Jamis', scoped_developers.first.name
+ assert scoped_developers.include?(developers(:jamis))
+ # Test scope without order and order in find
+ scoped_developers = Developer.with_scope(:find => { :limit => 1 }) do
+ Developer.find(:all, :order => 'salary DESC')
+ end
+ # Test scope order + find order, find has priority
+ scoped_developers = Developer.with_scope(:find => { :limit => 3, :order => 'id DESC' }) do
+ Developer.find(:all, :order => 'salary ASC')
+ end
+ assert scoped_developers.include?(developers(:poor_jamis))
+ assert scoped_developers.include?(developers(:david))
+ assert scoped_developers.include?(developers(:dev_10))
+ # Test without scoped find conditions to ensure we get the right thing
+ developers = Developer.find(:all, :order => 'id', :limit => 1)
+ assert scoped_developers.include?(developers(:david))
+ end
+
def test_base_class
assert LoosePerson.abstract_class?
assert !LooseDescendant.abstract_class?