diff options
author | Jon Leighton <j@jonathanleighton.com> | 2012-09-14 23:59:35 +0100 |
---|---|---|
committer | Jon Leighton <j@jonathanleighton.com> | 2012-09-15 00:03:04 +0100 |
commit | 02f56554d68cddae02ccc4a8511cc5c64210d258 (patch) | |
tree | 4b091ddba84e3948128e9071ba3f4044eb79cdea /activerecord/test/cases | |
parent | 61951427903dbc0d92f6106ec5874025e2185056 (diff) | |
download | rails-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.rb | 32 |
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 |