aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/associations/has_many_associations_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/test/cases/associations/has_many_associations_test.rb')
-rw-r--r--activerecord/test/cases/associations/has_many_associations_test.rb33
1 files changed, 21 insertions, 12 deletions
diff --git a/activerecord/test/cases/associations/has_many_associations_test.rb b/activerecord/test/cases/associations/has_many_associations_test.rb
index ae58dbff21..169e1a5449 100644
--- a/activerecord/test/cases/associations/has_many_associations_test.rb
+++ b/activerecord/test/cases/associations/has_many_associations_test.rb
@@ -741,30 +741,39 @@ class HasManyAssociationsTest < ActiveRecord::TestCase
assert_equal client2, firm.clients.merge!(where: ["#{QUOTED_TYPE} = :type", { type: "Client" }], order: "id").first
end
- def test_find_first_after_reset
+ def test_find_first_after_reset_scope
firm = Firm.all.merge!(order: "id").first
+ collection = firm.clients
+
+ original_object_id = collection.first.object_id
+ assert_equal original_object_id, collection.first.object_id, "Expected second call to #first to cache the same object"
+
+ # It should return a different object, since the association has been reloaded
+ assert_not_equal original_object_id, firm.clients.first.object_id, "Expected #first to return a new object"
+ end
- # Calling first twice should return the same object
- original_object_id = firm.clients.first.object_id
- assert_equal firm.clients.first.object_id, original_object_id, "Expected multiple invocations of #first to return the same object"
+ def test_find_first_after_reset
+ firm = Firm.all.merge!(order: "id").first
+ collection = firm.clients
- firm.clients.reset
+ original_object_id = collection.first.object_id
+ assert_equal original_object_id, collection.first.object_id, "Expected second call to #first to cache the same object"
+ collection.reset
# It should return a different object, since the association has been reloaded
- assert_not_equal original_object_id, firm.clients.first.object_id, "Expected #first after #reload to return a new object"
+ assert_not_equal original_object_id, collection.first.object_id, "Expected #first after #reload to return a new object"
end
def test_find_first_after_reload
firm = Firm.all.merge!(order: "id").first
+ collection = firm.clients
- # Calling first twice should return the same object
- original_object_id = firm.clients.first.object_id
- assert_equal firm.clients.first.object_id, original_object_id, "Expected multiple invocations of #first to return the same object"
-
- firm.clients.reload
+ original_object_id = collection.first.object_id
+ assert_equal original_object_id, collection.first.object_id, "Expected second call to #first to cache the same object"
+ collection.reset
# It should return a different object, since the association has been reloaded
- assert_not_equal original_object_id, firm.clients.first.object_id, "Expected #first after #reload to return a new object"
+ assert_not_equal original_object_id, collection.first.object_id, "Expected #first after #reload to return a new object"
end
def test_find_all_with_include_and_conditions