Make merging of order values consistent

This commit is contained in:
Pratik Naik 2010-01-17 14:16:50 +05:30
parent f9a4300415
commit 54a043895f
3 changed files with 8 additions and 6 deletions

@ -33,7 +33,7 @@ def merge(r)
from(r.from_value). from(r.from_value).
having(r.having_values) having(r.having_values)
merged_relation.order_values = Array.wrap(order_values) + Array.wrap(r.order_values) merged_relation.order_values = r.order_values if r.order_values.present?
merged_relation.create_with_value = @create_with_value merged_relation.create_with_value = @create_with_value

@ -1865,7 +1865,9 @@ def test_scoped_find_order
end end
assert scoped_developers.include?(developers(:poor_jamis)) assert scoped_developers.include?(developers(:poor_jamis))
assert scoped_developers.include?(developers(:david)) assert scoped_developers.include?(developers(:david))
assert scoped_developers.include?(developers(:dev_10)) assert ! scoped_developers.include?(developers(:jamis))
assert_equal 3, scoped_developers.size
# Test without scoped find conditions to ensure we get the right thing # Test without scoped find conditions to ensure we get the right thing
developers = Developer.find(:all, :order => 'id', :limit => 1) developers = Developer.find(:all, :order => 'id', :limit => 1)
assert scoped_developers.include?(developers(:david)) assert scoped_developers.include?(developers(:david))

@ -625,21 +625,21 @@ def test_default_scoping_with_inheritance
end end
def test_method_scope def test_method_scope
expected = Developer.find(:all, :order => 'name DESC, salary DESC').collect { |dev| dev.salary } expected = Developer.find(:all, :order => 'name DESC').collect { |dev| dev.salary }
received = DeveloperOrderedBySalary.all_ordered_by_name.collect { |dev| dev.salary } received = DeveloperOrderedBySalary.all_ordered_by_name.collect { |dev| dev.salary }
assert_equal expected, received assert_equal expected, received
end end
def test_nested_scope def test_nested_scope
expected = Developer.find(:all, :order => 'name DESC, salary DESC').collect { |dev| dev.salary } expected = Developer.find(:all, :order => 'name DESC').collect { |dev| dev.salary }
received = DeveloperOrderedBySalary.send(:with_scope, :find => { :order => 'name DESC'}) do received = DeveloperOrderedBySalary.send(:with_scope, :find => { :order => 'name DESC'}) do
DeveloperOrderedBySalary.find(:all).collect { |dev| dev.salary } DeveloperOrderedBySalary.find(:all).collect { |dev| dev.salary }
end end
assert_equal expected, received assert_equal expected, received
end end
def test_named_scope_order_appended_to_default_scope_order def test_named_scope_overwrites_default
expected = Developer.find(:all, :order => 'name DESC, salary DESC').collect { |dev| dev.name } expected = Developer.find(:all, :order => 'name DESC').collect { |dev| dev.name }
received = DeveloperOrderedBySalary.by_name.find(:all).collect { |dev| dev.name } received = DeveloperOrderedBySalary.by_name.find(:all).collect { |dev| dev.name }
assert_equal expected, received assert_equal expected, received
end end