Sha256: 88fb007b2a5ce5ed5e6c9ed5253bf0cf37e6fa36bbd48c24bc785fd21a9b1fca

Contents?: true

Size: 1.54 KB

Versions: 26

Compression:

Stored size: 1.54 KB

Contents

require 'spec_helper'

describe 'Command Monitoring Events' do

  COMMAND_MONITORING_TESTS.each do |file|

    spec = Mongo::CommandMonitoring::Spec.new(file)

    spec.tests.each do |test|
      context(test.description) do

        if test.min_server_fcv
          min_server_fcv test.min_server_fcv
        end
        if test.max_server_version
          max_server_version test.max_server_version
        end

        let(:subscriber) do
          Mongo::CommandMonitoring::TestSubscriber.new
        end

        let(:monitoring) do
          authorized_client.send(:monitoring)
        end

        before do
          authorized_collection.find.delete_many
          authorized_client.subscribe(Mongo::Monitoring::COMMAND, subscriber)
        end

        after do
          monitoring.subscribers[Mongo::Monitoring::COMMAND].delete(subscriber)
          authorized_collection.find.delete_many
        end

        test.expectations.each do |expectation|

          it "generates a #{expectation.event_name} for #{expectation.command_name}" do
            begin
              test.run(authorized_collection)
              event = subscriber.send(expectation.event_type)[expectation.command_name]
              expect(event).to send(expectation.matcher, expectation)
            rescue Mongo::Error::OperationFailure, Mongo::Error::BulkWriteError
              event = subscriber.send(expectation.event_type)[expectation.command_name]
              expect(event).to send(expectation.matcher, expectation)
            end
          end
        end
      end
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
mongo-2.12.4 spec/spec_tests/command_monitoring_spec.rb
mongo-2.11.6 spec/spec_tests/command_monitoring_spec.rb
mongo-2.12.3 spec/spec_tests/command_monitoring_spec.rb
mongo-2.12.2 spec/spec_tests/command_monitoring_spec.rb
mongo-2.10.5 spec/spec_tests/command_monitoring_spec.rb
mongo-2.11.5 spec/spec_tests/command_monitoring_spec.rb
mongo-2.12.1 spec/spec_tests/command_monitoring_spec.rb
mongo-2.12.0.rc0 spec/spec_tests/command_monitoring_spec.rb
mongo-2.11.4 spec/spec_tests/command_monitoring_spec.rb
mongo-2.10.4 spec/spec_tests/command_monitoring_spec.rb
mongo-2.11.3 spec/spec_tests/command_monitoring_spec.rb
mongo-2.11.2 spec/spec_tests/command_monitoring_spec.rb
mongo-2.11.1 spec/spec_tests/command_monitoring_spec.rb
mongo-2.10.3 spec/spec_tests/command_monitoring_spec.rb
mongo-2.11.0 spec/spec_tests/command_monitoring_spec.rb
mongo-2.9.2 spec/spec_tests/command_monitoring_spec.rb
mongo-2.10.2 spec/spec_tests/command_monitoring_spec.rb
mongo-2.11.0.rc0 spec/spec_tests/command_monitoring_spec.rb
mongo-2.10.1 spec/spec_tests/command_monitoring_spec.rb
mongo-2.10.0 spec/spec_tests/command_monitoring_spec.rb