aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/active_record/connection_adapters/fake_adapter.rb4
-rw-r--r--activerecord/test/cases/adapter_test.rb32
-rw-r--r--activerecord/test/cases/transactions_test.rb37
3 files changed, 49 insertions, 24 deletions
diff --git a/activerecord/test/active_record/connection_adapters/fake_adapter.rb b/activerecord/test/active_record/connection_adapters/fake_adapter.rb
index 1199be68eb..59324c4857 100644
--- a/activerecord/test/active_record/connection_adapters/fake_adapter.rb
+++ b/activerecord/test/active_record/connection_adapters/fake_adapter.rb
@@ -36,6 +36,10 @@ module ActiveRecord
def columns(table_name)
@columns[table_name]
end
+
+ def active?
+ true
+ end
end
end
end
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
diff --git a/activerecord/test/cases/transactions_test.rb b/activerecord/test/cases/transactions_test.rb
index 0d0de455b3..0b5fda3817 100644
--- a/activerecord/test/cases/transactions_test.rb
+++ b/activerecord/test/cases/transactions_test.rb
@@ -36,6 +36,7 @@ class TransactionTest < ActiveRecord::TestCase
end
end
+ # FIXME: Get rid of this fucking global variable!
def test_successful_with_return
class << Topic.connection
alias :real_commit_db_transaction :commit_db_transaction
@@ -348,7 +349,6 @@ class TransactionTest < ActiveRecord::TestCase
def test_rollback_when_commit_raises
Topic.connection.expects(:begin_db_transaction)
Topic.connection.expects(:commit_db_transaction).raises('OH NOES')
- Topic.connection.expects(:outside_transaction?).returns(false)
Topic.connection.expects(:rollback_db_transaction)
assert_raise RuntimeError do
@@ -397,31 +397,11 @@ class TransactionTest < ActiveRecord::TestCase
if current_adapter?(:PostgreSQLAdapter) && defined?(PGconn::PQTRANS_IDLE)
def test_outside_transaction_works
- assert Topic.connection.outside_transaction?
+ assert assert_deprecated { Topic.connection.outside_transaction? }
Topic.connection.begin_db_transaction
- assert !Topic.connection.outside_transaction?
+ assert assert_deprecated { !Topic.connection.outside_transaction? }
Topic.connection.rollback_db_transaction
- assert Topic.connection.outside_transaction?
- end
-
- def test_rollback_wont_be_executed_if_no_transaction_active
- assert_raise RuntimeError do
- Topic.transaction do
- Topic.connection.rollback_db_transaction
- Topic.connection.expects(:rollback_db_transaction).never
- raise "Rails doesn't scale!"
- end
- end
- end
-
- def test_open_transactions_count_is_reset_to_zero_if_no_transaction_active
- Topic.transaction do
- Topic.transaction do
- Topic.connection.rollback_db_transaction
- end
- assert_equal 0, Topic.connection.open_transactions
- end
- assert_equal 0, Topic.connection.open_transactions
+ assert assert_deprecated { Topic.connection.outside_transaction? }
end
end
@@ -580,5 +560,14 @@ if current_adapter?(:PostgreSQLAdapter)
assert_equal original_salary, Developer.find(1).salary
end
+
+ test "#transaction_joinable= is deprecated" do
+ Developer.transaction do
+ conn = Developer.connection
+ assert conn.current_transaction.joinable?
+ assert_deprecated { conn.transaction_joinable = false }
+ assert !conn.current_transaction.joinable?
+ end
+ end
end
end