aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorMurray Steele <muz@h-lame.com>2009-12-17 12:19:10 +0000
committerEloy Duran <eloy.de.enige@gmail.com>2009-12-28 15:12:15 +0100
commit6a74ee7f4deea4a44520d3fcc9120e0bb848823f (patch)
tree6654d00f15bb5fc2598c21ffe1f31b76f979eb5a /activerecord/test
parent81ca0cf2b074f4b868a84c427ef155607a956119 (diff)
downloadrails-6a74ee7f4deea4a44520d3fcc9120e0bb848823f.tar.gz
rails-6a74ee7f4deea4a44520d3fcc9120e0bb848823f.tar.bz2
rails-6a74ee7f4deea4a44520d3fcc9120e0bb848823f.zip
Provide a slightly more robust we_can_set_the_inverse_on_this? method for polymorphic belongs_to associations. [#3520 state:resolved]
Also add a new test for polymorphic belongs_to that test direct accessor assignment, not just .replace assignment. Signed-off-by: Eloy Duran <eloy.de.enige@gmail.com>
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/cases/associations/inverse_associations_test.rb17
1 files changed, 16 insertions, 1 deletions
diff --git a/activerecord/test/cases/associations/inverse_associations_test.rb b/activerecord/test/cases/associations/inverse_associations_test.rb
index 2ab3aa141a..0696f06e5b 100644
--- a/activerecord/test/cases/associations/inverse_associations_test.rb
+++ b/activerecord/test/cases/associations/inverse_associations_test.rb
@@ -481,7 +481,22 @@ class InversePolymorphicBelongsToTests < ActiveRecord::TestCase
assert_equal f.description, m.polymorphic_face.description, "Description of face should be the same after changes to parent-owned instance"
end
- def test_child_instance_should_be_shared_with_replaced_parent
+ def test_child_instance_should_be_shared_with_replaced_via_accessor_parent
+ face = faces(:confused)
+ old_man = face.polymorphic_man
+ new_man = Man.new
+
+ assert_not_nil face.polymorphic_man
+ face.polymorphic_man = new_man
+
+ assert_equal face.description, new_man.polymorphic_face.description, "Description of face should be the same before changes to parent instance"
+ face.description = 'Bongo'
+ assert_equal face.description, new_man.polymorphic_face.description, "Description of face should be the same after changes to parent instance"
+ new_man.polymorphic_face.description = 'Mungo'
+ assert_equal face.description, new_man.polymorphic_face.description, "Description of face should be the same after changes to replaced-parent-owned instance"
+ end
+
+ def test_child_instance_should_be_shared_with_replaced_via_method_parent
face = faces(:confused)
old_man = face.polymorphic_man
new_man = Man.new