Sha256: 322fc4ac283617bfd1c4750a42d88cfc04e8af12965bcd84dbdf662b3da39146

Contents?: true

Size: 1.52 KB

Versions: 47

Compression:

Stored size: 1.52 KB

Contents

require 'spec_helper'

describe Mongo::Session::ServerSession do

  describe '#initialize' do

    it 'sets the last use variable to the current time' do
      expect(described_class.new.last_use).to be_within(0.2).of(Time.now)
    end

    it 'sets a UUID as the session id' do
      expect(described_class.new.instance_variable_get(:@session_id)).to be_a(BSON::Document)
      expect(described_class.new.session_id).to be_a(BSON::Document)
      expect(described_class.new.session_id[:id]).to be_a(BSON::Binary)
    end
  end

  describe '#next_txn_number' do

    it 'advances and returns the next transaction number' do
      expect(described_class.new.next_txn_num).to be(1)
    end

    context 'when the method is called multiple times' do

      let(:server_session) do
        described_class.new
      end

      before do
        server_session.next_txn_num
        server_session.next_txn_num
      end

      it 'advances and returns the next transaction number' do
        expect(server_session.next_txn_num).to be(3)
      end
    end
  end

  describe '#inspect' do

    let(:session) do
      described_class.new
    end

    it 'includes the Ruby object_id in the formatted string' do
      expect(session.inspect).to include(session.object_id.to_s)
    end

    it 'includes the session_id in the formatted string' do
      expect(session.inspect).to include(session.session_id.to_s)
    end

    it 'includes the last_use in the formatted string' do
      expect(session.inspect).to include(session.last_use.to_s)
    end
  end
end

Version data entries

47 entries across 47 versions & 2 rubygems

Version Path
mongo-2.13.3 spec/mongo/session/server_session_spec.rb
mongo-2.14.1 spec/mongo/session/server_session_spec.rb
tdiary-5.1.6 vendor/bundle/ruby/2.7.0/gems/mongo-2.8.0/spec/mongo/session/server_session_spec.rb
mongo-2.15.0.alpha spec/mongo/session/server_session_spec.rb
mongo-2.13.2 spec/mongo/session/server_session_spec.rb
mongo-2.14.0 spec/mongo/session/server_session_spec.rb
mongo-2.14.0.rc1 spec/mongo/session/server_session_spec.rb
mongo-2.13.1 spec/mongo/session/server_session_spec.rb
mongo-2.12.4 spec/mongo/session/server_session_spec.rb
mongo-2.11.6 spec/mongo/session/server_session_spec.rb
mongo-2.13.0 spec/mongo/session/server_session_spec.rb
mongo-2.12.3 spec/mongo/session/server_session_spec.rb
mongo-2.13.0.rc1 spec/mongo/session/server_session_spec.rb
mongo-2.12.2 spec/mongo/session/server_session_spec.rb
mongo-2.10.5 spec/mongo/session/server_session_spec.rb
mongo-2.11.5 spec/mongo/session/server_session_spec.rb
mongo-2.13.0.beta1 spec/mongo/session/server_session_spec.rb
mongo-2.12.1 spec/mongo/session/server_session_spec.rb
mongo-2.12.0.rc0 spec/mongo/session/server_session_spec.rb
mongo-2.11.4 spec/mongo/session/server_session_spec.rb