Sha256: b172a0f98b77b0f4305968006cee06197ff1a0cad9149fc3fcc2e5f1229db889

Contents?: true

Size: 1.57 KB

Versions: 30

Compression:

Stored size: 1.57 KB

Contents

require "cases/helper"

class MysqlConnectionTest < ActiveRecord::TestCase
  def setup
    super
    @connection = ActiveRecord::Base.connection
  end

  def test_mysql_reconnect_attribute_after_connection_with_reconnect_true
    run_without_connection do |orig_connection|
      ActiveRecord::Base.establish_connection(orig_connection.merge({:reconnect => true}))
      assert ActiveRecord::Base.connection.raw_connection.reconnect
    end
  end

  def test_mysql_reconnect_attribute_after_connection_with_reconnect_false
    run_without_connection do |orig_connection|
      ActiveRecord::Base.establish_connection(orig_connection.merge({:reconnect => false}))
      assert !ActiveRecord::Base.connection.raw_connection.reconnect
    end
  end

  def test_no_automatic_reconnection_after_timeout
    assert @connection.active?
    @connection.update('set @@wait_timeout=1')
    sleep 2
    assert !@connection.active?
  end

  def test_successful_reconnection_after_timeout_with_manual_reconnect
    assert @connection.active?
    @connection.update('set @@wait_timeout=1')
    sleep 2
    @connection.reconnect!
    assert @connection.active?
  end

  def test_successful_reconnection_after_timeout_with_verify
    assert @connection.active?
    @connection.update('set @@wait_timeout=1')
    sleep 2
    @connection.verify!
    assert @connection.active?
  end

  private

  def run_without_connection
    original_connection = ActiveRecord::Base.remove_connection
    begin
      yield original_connection
    ensure
      ActiveRecord::Base.establish_connection(original_connection)
    end
  end
end

Version data entries

30 entries across 29 versions & 8 rubygems

Version Path
radiantcms-couchrest_model-0.2.4 vendor/rails/activerecord/test/cases/connection_test_mysql.rb
radiantcms-couchrest_model-0.2.2 vendor/rails/activerecord/test/cases/connection_test_mysql.rb
radiantcms-couchrest_model-0.2.1 vendor/rails/activerecord/test/cases/connection_test_mysql.rb
radiantcms-couchrest_model-0.2 vendor/rails/activerecord/test/cases/connection_test_mysql.rb
radiantcms-couchrest_model-0.1.9 vendor/rails/activerecord/test/cases/connection_test_mysql.rb
radiantcms-couchrest_model-0.1.8 vendor/rails/activerecord/test/cases/connection_test_mysql.rb
radiantcms-couchrest_model-0.1.7 vendor/rails/activerecord/test/cases/connection_test_mysql.rb
radiantcms-couchrest_model-0.1.6 vendor/rails/activerecord/test/cases/connection_test_mysql.rb
radiantcms-couchrest_model-0.1.5 vendor/rails/activerecord/test/cases/connection_test_mysql.rb
radiant-0.8.2 vendor/rails/activerecord/test/cases/connection_test_mysql.rb
usher-0.7.0 spec/rails2_3/vendor/rails/vendor/rails/activerecord/test/cases/connection_test_mysql.rb
usher-0.7.0 spec/rails2_3/vendor/rails/vendor/rails/activerecord/pkg/activerecord-2.3.3/test/cases/connection_test_mysql.rb
ginst-2009.12.8 vendor/rails/activerecord/test/cases/connection_test_mysql.rb
ginst-2009.11.24 vendor/rails/activerecord/test/cases/connection_test_mysql.rb
ginst-2009.11.23 vendor/rails/activerecord/test/cases/connection_test_mysql.rb
ginst-2.0.1 vendor/rails/activerecord/test/cases/connection_test_mysql.rb
ginst-2.0.0 vendor/rails/activerecord/test/cases/connection_test_mysql.rb
gemstreamer-1.2.0 spec/assets/testapp/vendor/rails/activerecord/test/cases/connection_test_mysql.rb
gemstreamer-1.1.1 spec/assets/testapp/vendor/rails/activerecord/test/cases/connection_test_mysql.rb
gemstreamer-1.1.0 spec/assets/testapp/vendor/rails/activerecord/test/cases/connection_test_mysql.rb