diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2017-06-15 06:30:55 +0900 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2017-06-15 06:40:28 +0900 |
commit | 249fcbec4aa64a5f9e9f1671bf9180db4ebf9a37 (patch) | |
tree | 9c5f7e30c7d0325c84677a7ca8ab5aae6e53d5cc /activerecord/test/cases | |
parent | f340490b98ac9f13f004b5db8863cb3ff6fb71f9 (diff) | |
download | rails-249fcbec4aa64a5f9e9f1671bf9180db4ebf9a37.tar.gz rails-249fcbec4aa64a5f9e9f1671bf9180db4ebf9a37.tar.bz2 rails-249fcbec4aa64a5f9e9f1671bf9180db4ebf9a37.zip |
Add test cases for #28274
`object.id` is correctly restored since #29378 has merged.
Closes #28274, Closes #28395.
[Ryuta Kamizono & Eugene Kenny]
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/transactions_test.rb | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/activerecord/test/cases/transactions_test.rb b/activerecord/test/cases/transactions_test.rb index 5c6d78b574..79ba306ef5 100644 --- a/activerecord/test/cases/transactions_test.rb +++ b/activerecord/test/cases/transactions_test.rb @@ -595,6 +595,52 @@ class TransactionTest < ActiveRecord::TestCase assert_not topic.frozen? end + def test_restore_id_after_rollback + topic = Topic.new + + Topic.transaction do + topic.save! + raise ActiveRecord::Rollback + end + + assert_nil topic.id + end + + def test_restore_custom_primary_key_after_rollback + movie = Movie.new(name: "foo") + + Movie.transaction do + movie.save! + raise ActiveRecord::Rollback + end + + assert_nil movie.id + end + + def test_assign_id_after_rollback + topic = Topic.create! + + Topic.transaction do + topic.save! + raise ActiveRecord::Rollback + end + + topic.id = nil + assert_nil topic.id + end + + def test_assign_custom_primary_key_after_rollback + movie = Movie.create!(name: "foo") + + Movie.transaction do + movie.save! + raise ActiveRecord::Rollback + end + + movie.id = nil + assert_nil movie.id + end + def test_rollback_of_frozen_records topic = Topic.create.freeze Topic.transaction do |