Sha256: 7d64e465a7e3ab6178395283f310b94c71814439727887baa0d0f2140b7eb0e0

Contents?: true

Size: 1.39 KB

Versions: 7

Compression:

Stored size: 1.39 KB

Contents

require 'spec_helper'

describe 'SDAM events' do
  let(:subscriber) { Mongo::SDAMMonitoring::TestSubscriber.new }

  before do
    ClientRegistry.instance.close_all_clients
  end

  describe 'server closed event' do
    it 'is published when client is closed' do
      client = ClientRegistry.instance.new_local_client(
        SpecConfig.instance.addresses, SpecConfig.instance.test_options)
      client.subscribe(Mongo::Monitoring::SERVER_CLOSED, subscriber)

      # get the client connected
      client.database.command(ismaster: 1)
      expect(subscriber.events).to be_empty

      client.close(true)

      expect(subscriber.events).not_to be_empty
      event = subscriber.first_event('server_closed_event')
      expect(event).not_to be_nil
    end
  end

  describe 'topology closed event' do
    it 'is published when client is closed' do
      client = ClientRegistry.instance.new_local_client(
        SpecConfig.instance.addresses, SpecConfig.instance.test_options)
      client.subscribe(Mongo::Monitoring::TOPOLOGY_CLOSED, subscriber)

      # get the client connected
      client.database.command(ismaster: 1)
      expect(subscriber.events).to be_empty

      client.close(true)

      expect(subscriber.events).not_to be_empty
      event = subscriber.first_event('topology_closed_event')
      expect(event).not_to be_nil

      expect(event.topology).to eql(client.cluster.topology)
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
mongo-2.10.5 spec/integration/sdam_events_spec.rb
mongo-2.10.4 spec/integration/sdam_events_spec.rb
mongo-2.10.3 spec/integration/sdam_events_spec.rb
mongo-2.10.2 spec/integration/sdam_events_spec.rb
mongo-2.10.1 spec/integration/sdam_events_spec.rb
mongo-2.10.0 spec/integration/sdam_events_spec.rb
mongo-2.10.0.rc0 spec/integration/sdam_events_spec.rb