Sha256: d417ec76c95b1c5f06c7c2a2a81a8072f2106d03828f8c4e17b707af4d63c087

Contents?: true

Size: 1.25 KB

Versions: 18

Compression:

Stored size: 1.25 KB

Contents

require 'spec_helper'

require_relative '../../../lib/locomotive/steam/adapters/mongodb.rb'

describe Locomotive::Steam::MongoDBAdapter do

  let(:adapter) { Locomotive::Steam::MongoDBAdapter.new(database: 'steam_test', hosts: ['127.0.0.1:27017'], min_pool_size: 2, max_pool_size: 5) }

  before(:all) do
    described_class.disconnect_session
    @before_connections = current_connections
  end

  describe '#session' do

    subject { adapter.send(:session) }

    it { is_expected.not_to eq nil }

    it "don't create more Mongo sessions than the max pool" do
      10.times { subject['locomotive_sites'].find.count }
      _after = current_connections
      expect(_after).to be >= (@before_connections + 2) # min_pool_size
      expect(_after).to be <= (@before_connections + 5) # max_pool_size
    end

  end

  describe '.disconnect_session' do

    let(:connection) { adapter.send(:session) }

    subject { described_class.disconnect_session }

    it { is_expected.to eq nil }

    it 'closes clients' do
      10.times { connection['locomotive_sites'].find.count }
      subject
      expect(current_connections).to eq @before_connections
    end

  end

  def current_connections
    `mongo --eval "db.serverStatus().connections.current"`.split("\n").last.to_i
  end

end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
locomotivecms_steam-1.4.0.rc1 spec/integration/adapters/mongodb_spec.rb
locomotivecms_steam-1.4.0.pre.rc.1 spec/integration/adapters/mongodb_spec.rb
locomotivecms_steam-1.3.0 spec/integration/adapters/mongodb_spec.rb
locomotivecms_steam-1.3.0.rc2 spec/integration/adapters/mongodb_spec.rb
locomotivecms_steam-1.1.2 spec/integration/adapters/mongodb_spec.rb
locomotivecms_steam-1.2.1 spec/integration/adapters/mongodb_spec.rb
locomotivecms_steam-1.3.0.rc1 spec/integration/adapters/mongodb_spec.rb
locomotivecms_steam-1.2.0 spec/integration/adapters/mongodb_spec.rb
locomotivecms_steam-1.2.0.rc3 spec/integration/adapters/mongodb_spec.rb
locomotivecms_steam-1.2.0.rc2 spec/integration/adapters/mongodb_spec.rb
locomotivecms_steam-1.2.0.rc1 spec/integration/adapters/mongodb_spec.rb
locomotivecms_steam-1.2.0.beta1 spec/integration/adapters/mongodb_spec.rb
locomotivecms_steam-1.1.1 spec/integration/adapters/mongodb_spec.rb
locomotivecms_steam-1.1.0 spec/integration/adapters/mongodb_spec.rb
locomotivecms_steam-1.1.0.rc3 spec/integration/adapters/mongodb_spec.rb
locomotivecms_steam-1.1.0.rc2 spec/integration/adapters/mongodb_spec.rb
locomotivecms_steam-1.1.0.rc1 spec/integration/adapters/mongodb_spec.rb
locomotivecms_steam-1.0.1 spec/integration/adapters/mongodb_spec.rb