aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/transactions_test.rb
diff options
context:
space:
mode:
authorwycats <wycats@gmail.com>2010-03-26 15:10:24 -0700
committerwycats <wycats@gmail.com>2010-03-26 15:10:24 -0700
commit197904341f2b2f21d69c653cede3aec124e86720 (patch)
tree83f1234e238016126860a929594db22e1862d783 /activerecord/test/cases/transactions_test.rb
parent76d2c455c0607b4cd5f238cadef8f933a18567fb (diff)
parentb3a0aed028835ce4551c4a76742744a40a71b0be (diff)
downloadrails-197904341f2b2f21d69c653cede3aec124e86720.tar.gz
rails-197904341f2b2f21d69c653cede3aec124e86720.tar.bz2
rails-197904341f2b2f21d69c653cede3aec124e86720.zip
Merge branch 'master' into docrails
Diffstat (limited to 'activerecord/test/cases/transactions_test.rb')
-rw-r--r--activerecord/test/cases/transactions_test.rb38
1 files changed, 32 insertions, 6 deletions
diff --git a/activerecord/test/cases/transactions_test.rb b/activerecord/test/cases/transactions_test.rb
index aca70b4238..c550030329 100644
--- a/activerecord/test/cases/transactions_test.rb
+++ b/activerecord/test/cases/transactions_test.rb
@@ -51,6 +51,7 @@ class TransactionTest < ActiveRecord::TestCase
assert !Topic.find(2).approved?, "Second should have been unapproved"
ensure
class << Topic.connection
+ remove_method :commit_db_transaction
alias :commit_db_transaction :real_commit_db_transaction rescue nil
end
end
@@ -382,28 +383,53 @@ class TransactionTest < ActiveRecord::TestCase
private
def add_exception_raising_after_save_callback_to_topic
- Topic.class_eval "def after_save_for_transaction; raise 'Make the transaction rollback' end"
+ Topic.class_eval <<-eoruby, __FILE__, __LINE__ + 1
+ remove_method(:after_save_for_transaction)
+ def after_save_for_transaction
+ raise 'Make the transaction rollback'
+ end
+ eoruby
end
def remove_exception_raising_after_save_callback_to_topic
- Topic.class_eval "def after_save_for_transaction; end"
+ Topic.class_eval <<-eoruby, __FILE__, __LINE__ + 1
+ remove_method :after_save_for_transaction
+ def after_save_for_transaction; end
+ eoruby
end
def add_exception_raising_after_create_callback_to_topic
- Topic.class_eval "def after_create_for_transaction; raise 'Make the transaction rollback' end"
+ Topic.class_eval <<-eoruby, __FILE__, __LINE__ + 1
+ remove_method(:after_create_for_transaction)
+ def after_create_for_transaction
+ raise 'Make the transaction rollback'
+ end
+ eoruby
end
def remove_exception_raising_after_create_callback_to_topic
- Topic.class_eval "def after_create_for_transaction; end"
+ Topic.class_eval <<-eoruby, __FILE__, __LINE__ + 1
+ remove_method :after_create_for_transaction
+ def after_create_for_transaction; end
+ eoruby
end
%w(validation save destroy).each do |filter|
define_method("add_cancelling_before_#{filter}_with_db_side_effect_to_topic") do
- Topic.class_eval "def before_#{filter}_for_transaction() Book.create; false end"
+ Topic.class_eval <<-eoruby, __FILE__, __LINE__ + 1
+ remove_method :before_#{filter}_for_transaction
+ def before_#{filter}_for_transaction
+ Book.create
+ false
+ end
+ eoruby
end
define_method("remove_cancelling_before_#{filter}_with_db_side_effect_to_topic") do
- Topic.class_eval "def before_#{filter}_for_transaction; end"
+ Topic.class_eval <<-eoruby, __FILE__, __LINE__ + 1
+ remove_method :before_#{filter}_for_transaction
+ def before_#{filter}_for_transaction; end
+ eoruby
end
end
end