diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2013-07-15 16:29:01 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2013-07-15 16:29:01 -0700 |
commit | 9675c7da28758432ec7bd6e7ca1814801b2591f5 (patch) | |
tree | 39219fc8b144defc071738cfa0d3cdf00182aa40 /activerecord/test/cases | |
parent | d345ed40b5783ec2cb43f4434872ea5b2d57d203 (diff) | |
download | rails-9675c7da28758432ec7bd6e7ca1814801b2591f5.tar.gz rails-9675c7da28758432ec7bd6e7ca1814801b2591f5.tar.bz2 rails-9675c7da28758432ec7bd6e7ca1814801b2591f5.zip |
reorder bind parameters when merging relations
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/relation_test.rb | 9 | ||||
-rw-r--r-- | activerecord/test/cases/relations_test.rb | 17 |
2 files changed, 25 insertions, 1 deletions
diff --git a/activerecord/test/cases/relation_test.rb b/activerecord/test/cases/relation_test.rb index 7862d96bd7..7c90f54343 100644 --- a/activerecord/test/cases/relation_test.rb +++ b/activerecord/test/cases/relation_test.rb @@ -9,6 +9,9 @@ module ActiveRecord fixtures :posts, :comments, :authors class FakeKlass < Struct.new(:table_name, :name) + def self.connection + Post.connection + end end def test_construction @@ -204,6 +207,10 @@ module ActiveRecord def arel_table Post.arel_table end + + def connection + Post.connection + end end def relation @@ -295,7 +302,7 @@ module ActiveRecord assert_equal({foo: 'bar'}, relation.create_with_value) end - test 'merge!' do + def test_merge! assert relation.merge!(where: :foo).equal?(relation) assert_equal [:foo], relation.where_values end diff --git a/activerecord/test/cases/relations_test.rb b/activerecord/test/cases/relations_test.rb index b205472cf5..d0f8731b9a 100644 --- a/activerecord/test/cases/relations_test.rb +++ b/activerecord/test/cases/relations_test.rb @@ -1556,4 +1556,21 @@ class RelationTest < ActiveRecord::TestCase merged = left.merge(right) assert_equal binds, merged.bind_values end + + def test_merging_reorders_bind_params + post = Post.first + id_column = Post.columns_hash['id'] + title_column = Post.columns_hash['title'] + + bv = Post.connection.substitute_at id_column, 0 + + right = Post.where(id: bv) + right.bind_values += [[id_column, post.id]] + + left = Post.where(title: bv) + left.bind_values += [[title_column, post.title]] + + merged = left.merge(right) + assert_equal post, merged.first + end end |