aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/associations
diff options
context:
space:
mode:
authorJon Leighton <j@jonathanleighton.com>2011-01-09 16:34:23 +0000
committerAaron Patterson <aaron.patterson@gmail.com>2011-01-11 13:45:07 -0800
commit6055bbedaa4b7b4bb2377ac87147196eebb2edc1 (patch)
tree0c7fb7848c25eed7d0ec9dd880f755c3b4e6cd3b /activerecord/test/cases/associations
parent1d6e2184283d15d20ed3102ca462d905e5efa73d (diff)
downloadrails-6055bbedaa4b7b4bb2377ac87147196eebb2edc1.tar.gz
rails-6055bbedaa4b7b4bb2377ac87147196eebb2edc1.tar.bz2
rails-6055bbedaa4b7b4bb2377ac87147196eebb2edc1.zip
Raise ActiveRecord::RecordNotSaved if an AssociationCollection fails to be replaced
Diffstat (limited to 'activerecord/test/cases/associations')
-rw-r--r--activerecord/test/cases/associations/has_many_associations_test.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/activerecord/test/cases/associations/has_many_associations_test.rb b/activerecord/test/cases/associations/has_many_associations_test.rb
index 2b7ad3642a..1ce91d7211 100644
--- a/activerecord/test/cases/associations/has_many_associations_test.rb
+++ b/activerecord/test/cases/associations/has_many_associations_test.rb
@@ -975,6 +975,19 @@ class HasManyAssociationsTest < ActiveRecord::TestCase
assert !firm.clients.include?(:first_client)
end
+ def test_replace_failure
+ firm = companies(:first_firm)
+ account = Account.new
+ orig_accounts = firm.accounts.to_a
+
+ assert !account.valid?
+ assert !orig_accounts.empty?
+ assert_raise ActiveRecord::RecordNotSaved do
+ firm.accounts = [account]
+ end
+ assert_equal orig_accounts, firm.accounts
+ end
+
def test_get_ids
assert_equal [companies(:first_client).id, companies(:second_client).id], companies(:first_firm).client_ids
end