Sha256: 4f1590e30f147329e9f01fb0290fe852a8fa0e99c0affcfa6774d9818814d9b7

Contents?: true

Size: 771 Bytes

Versions: 9

Compression:

Stored size: 771 Bytes

Contents

require 'spec_helper'

describe "recovery when Mysql down" do
  class User3 < ActiveRecord::Base
    self.table_name = "users"

    class << self
      attr_writer :limit_time

      def slave_connection
        @access_time ||= 0
        @access_time += 1
        if @access_time > limit_time
          super
        else
          raise ActiveRecord::StatementInvalid, "MySQL server has gone away"
        end
      end

      def limit_time
        @limit_time || 1
      end
    end
  end

  it "enable recovery" do
    User3.limit_time = 1
    expect {
      User3.first
    }.not_to raise_error
  end

  it "raise exception when retry over" do
    User3.limit_time = 100
    expect {
      User3.first
    }.to raise_error(ActiveRecord::StatementInvalid)
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
fresh_connection-0.4.0 spec/unit/recovery_spec.rb
fresh_connection-0.3.0 spec/unit/recovery_spec.rb
fresh_connection-0.2.6 spec/unit/recovery_spec.rb
fresh_connection-0.2.5 spec/unit/recovery_spec.rb
fresh_connection-0.2.4 spec/unit/recovery_spec.rb
fresh_connection-0.2.3 spec/unit/recovery_spec.rb
fresh_connection-0.2.2 spec/unit/recovery_spec.rb
fresh_connection-0.2.1 spec/unit/recovery_spec.rb
fresh_connection-0.2.0 spec/unit/recovery_spec.rb