Sha256: 05068221c39f7952c8deca67214acd152207c99ee4c5f84e77345a64d46fa4cd

Contents?: true

Size: 1.88 KB

Versions: 21

Compression:

Stored size: 1.88 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

  # Test that MySQL allows multiple results for stored procedures
  if Mysql.const_defined?(:CLIENT_MULTI_RESULTS)
    def test_multi_results
      rows = ActiveRecord::Base.connection.select_rows('CALL ten();')
      assert_equal 10, rows[0][0].to_i, "ten() did not return 10 as expected: #{rows.inspect}"
    end
  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

21 entries across 21 versions & 6 rubygems

Version Path
activerecord_csi-2.3.5.p8 test/cases/connection_test_mysql.rb
activerecord_csi-2.3.5.p7 test/cases/connection_test_mysql.rb
activerecord_csi-2.3.5.p6 test/cases/connection_test_mysql.rb
webroar-0.5.0 src/admin_panel/vendor/rails/activerecord/test/cases/connection_test_mysql.rb
radiantcms-couchrest_model-0.1.4 vendor/rails/activerecord/test/cases/connection_test_mysql.rb
radiantcms-couchrest_model-0.1.3 vendor/rails/activerecord/test/cases/connection_test_mysql.rb
radiantcms-couchrest_model-0.1.2 vendor/rails/activerecord/test/cases/connection_test_mysql.rb
radiantcms-couchrest_model-0.1.1 vendor/rails/activerecord/test/cases/connection_test_mysql.rb
radiantcms-couchrest_model-0.1 vendor/rails/activerecord/test/cases/connection_test_mysql.rb
webroar-0.4.0 src/admin_panel/vendor/rails/activerecord/test/cases/connection_test_mysql.rb
radiant-0.9.1 vendor/rails/activerecord/test/cases/connection_test_mysql.rb
activerecord-2.3.8 test/cases/connection_test_mysql.rb
activerecord-2.3.8.pre1 test/cases/connection_test_mysql.rb
activerecord-2.3.7 test/cases/connection_test_mysql.rb
activerecord-2.3.6 test/cases/connection_test_mysql.rb
radiant-0.9.0.rc2 vendor/rails/activerecord/test/cases/connection_test_mysql.rb
webroar-0.3.1 src/admin_panel/vendor/rails/activerecord/test/cases/connection_test_mysql.rb
webroar-0.3.0 src/admin_panel/vendor/rails/activerecord/test/cases/connection_test_mysql.rb
simply_stated-0.0.5 vendor/gems/ruby/1.8/gems/activerecord-2.3.5/test/cases/connection_test_mysql.rb
simply_stated-0.0.4 vendor/gems/ruby/1.8/gems/activerecord-2.3.5/test/cases/connection_test_mysql.rb