diff options
author | Andrew White <andyw@pixeltrix.co.uk> | 2011-05-11 14:22:22 +0100 |
---|---|---|
committer | Andrew White <andyw@pixeltrix.co.uk> | 2011-05-11 14:22:22 +0100 |
commit | 0fde84c0f8c0db40110c27890525221751015e6d (patch) | |
tree | e1d5c5090118bf832a20750ad8226ec483fe5f58 /activerecord/test | |
parent | b3f45195aa8a35277c3f998917312797936a1f4e (diff) | |
download | rails-0fde84c0f8c0db40110c27890525221751015e6d.tar.gz rails-0fde84c0f8c0db40110c27890525221751015e6d.tar.bz2 rails-0fde84c0f8c0db40110c27890525221751015e6d.zip |
Don't remove the target if it has already been destroyed
Diffstat (limited to 'activerecord/test')
-rw-r--r-- | activerecord/test/cases/associations/has_one_associations_test.rb | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/activerecord/test/cases/associations/has_one_associations_test.rb b/activerecord/test/cases/associations/has_one_associations_test.rb index 625515f4f1..c2a82b8c60 100644 --- a/activerecord/test/cases/associations/has_one_associations_test.rb +++ b/activerecord/test/cases/associations/has_one_associations_test.rb @@ -95,6 +95,15 @@ class HasOneAssociationsTest < ActiveRecord::TestCase assert_nil Account.find(old_account_id).firm_id end + def test_natural_assignment_to_nil_after_destroy + firm = companies(:rails_core) + old_account_id = firm.account.id + firm.account.destroy + firm.account = nil + assert_nil companies(:rails_core).account + assert_raise(ActiveRecord::RecordNotFound) { Account.find(old_account_id) } + end + def test_association_change_calls_delete companies(:first_firm).deletable_account = Account.new(:credit_limit => 5) assert_equal [], Account.destroyed_account_ids[companies(:first_firm).id] |