aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorLauro Caetano <laurocaetano1@gmail.com>2014-04-03 22:07:03 -0300
committerLauro Caetano <laurocaetano1@gmail.com>2014-04-11 20:06:19 -0300
commitd6840f914a32bff4d73f23c3f5c64c5397f8b400 (patch)
treeab8d7cea0dabe701d8acf61916541bfd7096ba11 /activerecord/test
parentc8a70660d46343d05c954c8a9b830166aa7335e9 (diff)
downloadrails-d6840f914a32bff4d73f23c3f5c64c5397f8b400.tar.gz
rails-d6840f914a32bff4d73f23c3f5c64c5397f8b400.tar.bz2
rails-d6840f914a32bff4d73f23c3f5c64c5397f8b400.zip
The comparison between `Relation` and `CollectionProxy` should be consistent.
Example: author.posts == Post.where(author_id: author.id) # => true Post.where(author_id: author.id) == author.posts # => true Fixes #13506
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/cases/base_test.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/activerecord/test/cases/base_test.rb b/activerecord/test/cases/base_test.rb
index 4969344763..d253b94b10 100644
--- a/activerecord/test/cases/base_test.rb
+++ b/activerecord/test/cases/base_test.rb
@@ -551,6 +551,23 @@ class BasicsTest < ActiveRecord::TestCase
assert_equal one, two
end
+ def test_equality_of_relation_and_collection_proxy
+ car = Car.create!
+ car.bulbs.build
+ car.save
+
+ assert car.bulbs == Bulb.where(car_id: car.id), 'CollectionProxy should be comparable with Relation'
+ assert Bulb.where(car_id: car.id) == car.bulbs, 'Relation should be comparable with CollectionProxy'
+ end
+
+ def test_equality_of_relation_and_array
+ car = Car.create!
+ car.bulbs.build
+ car.save
+
+ assert Bulb.where(car_id: car.id) == car.bulbs.to_a, 'Relation should be comparable with Array'
+ end
+
def test_hashing
assert_equal [ Topic.find(1) ], [ Topic.find(2).topic ] & [ Topic.find(1) ]
end