aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/relation_scoping_test.rb
diff options
context:
space:
mode:
authorBrian Mathiyakom <brian@rarevisions.net>2011-05-27 13:59:18 -0700
committerJon Leighton <j@jonathanleighton.com>2011-06-01 18:29:29 +0100
commit1e43bd9f3520364ba2ebc99bde047334c34cb361 (patch)
tree02049c1ba7c81bf8741827b88e99d857297e3dc9 /activerecord/test/cases/relation_scoping_test.rb
parentfba977dfa359f23b88908462869eb1c2bee6b78c (diff)
downloadrails-1e43bd9f3520364ba2ebc99bde047334c34cb361.tar.gz
rails-1e43bd9f3520364ba2ebc99bde047334c34cb361.tar.bz2
rails-1e43bd9f3520364ba2ebc99bde047334c34cb361.zip
Fix issue #1272
Set reverse_order_value when asked to reverse_order(). Do the actual reversal in build_arel.
Diffstat (limited to 'activerecord/test/cases/relation_scoping_test.rb')
-rw-r--r--activerecord/test/cases/relation_scoping_test.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/activerecord/test/cases/relation_scoping_test.rb b/activerecord/test/cases/relation_scoping_test.rb
index 83bc472764..a6e08f95d0 100644
--- a/activerecord/test/cases/relation_scoping_test.rb
+++ b/activerecord/test/cases/relation_scoping_test.rb
@@ -11,6 +11,14 @@ require 'models/reference'
class RelationScopingTest < ActiveRecord::TestCase
fixtures :authors, :developers, :projects, :comments, :posts, :developers_projects
+ def test_reverse_order
+ assert_equal Developer.order("id DESC").to_a.reverse, Developer.order("id DESC").reverse_order
+ end
+
+ def test_double_reverse_order_produces_original_order
+ assert_equal Developer.order("name DESC"), Developer.order("name DESC").reverse_order.reverse_order
+ end
+
def test_scoped_find
Developer.where("name = 'David'").scoping do
assert_nothing_raised { Developer.find(1) }
@@ -483,4 +491,11 @@ class DefaultScopingTest < ActiveRecord::TestCase
def test_default_scope_order_ignored_by_aggregations
assert_equal DeveloperOrderedBySalary.all.count, DeveloperOrderedBySalary.count
end
+
+ def test_default_scope_find_last
+ assert DeveloperOrderedBySalary.count > 1, "need more than one row for test"
+
+ lowest_salary_dev = DeveloperOrderedBySalary.find(developers(:poor_jamis).id)
+ assert_equal lowest_salary_dev, DeveloperOrderedBySalary.last
+ end
end