aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases
diff options
context:
space:
mode:
authorJon Leighton <j@jonathanleighton.com>2012-09-14 23:59:35 +0100
committerJon Leighton <j@jonathanleighton.com>2012-09-15 00:03:04 +0100
commit02f56554d68cddae02ccc4a8511cc5c64210d258 (patch)
tree4b091ddba84e3948128e9071ba3f4044eb79cdea /activerecord/test/cases
parent61951427903dbc0d92f6106ec5874025e2185056 (diff)
downloadrails-02f56554d68cddae02ccc4a8511cc5c64210d258.tar.gz
rails-02f56554d68cddae02ccc4a8511cc5c64210d258.tar.bz2
rails-02f56554d68cddae02ccc4a8511cc5c64210d258.zip
Ensure disconnecting or reconnecting resets the transaction state
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r--activerecord/test/cases/adapter_test.rb32
1 files changed, 32 insertions, 0 deletions
diff --git a/activerecord/test/cases/adapter_test.rb b/activerecord/test/cases/adapter_test.rb
index 852fc0e26e..93b01a3934 100644
--- a/activerecord/test/cases/adapter_test.rb
+++ b/activerecord/test/cases/adapter_test.rb
@@ -160,4 +160,36 @@ module ActiveRecord
end
end
end
+
+ class AdapterTestWithoutTransaction < ActiveRecord::TestCase
+ self.use_transactional_fixtures = false
+
+ def setup
+ @klass = Class.new(ActiveRecord::Base)
+ @klass.establish_connection 'arunit'
+ @connection = @klass.connection
+ end
+
+ def teardown
+ @klass.remove_connection
+ end
+
+ test "transaction state is reset after a reconnect" do
+ skip "in-memory db doesn't allow reconnect" if in_memory_db?
+
+ @connection.begin_transaction
+ assert @connection.transaction_open?
+ @connection.reconnect!
+ assert !@connection.transaction_open?
+ end
+
+ test "transaction state is reset after a disconnect" do
+ skip "in-memory db doesn't allow disconnect" if in_memory_db?
+
+ @connection.begin_transaction
+ assert @connection.transaction_open?
+ @connection.disconnect!
+ assert !@connection.transaction_open?
+ end
+ end
end