Sha256: a16a8de62c978e124a8268613a0e4b30c764aa15b80cde2a0622049bdc373241

Contents?: true

Size: 1.5 KB

Versions: 63

Compression:

Stored size: 1.5 KB

Contents

# encoding: utf-8
require "logstash/event_dispatcher"
require "logstash/plugins/hooks_registry"

describe LogStash::Plugins::HooksRegistry do
  class DummyEmitter
    attr_reader :dispatcher

    def initialize
      @dispatcher = LogStash::EventDispatcher.new(self)
    end

    def do_work
      dispatcher.fire(:do_work)
    end
  end

  class DummyListener
    def initialize
      @work = false
    end

    def do_work(emitter = nil)
      @work = true
    end

    def work?
      @work
    end
  end

  subject { described_class.new }

  let(:emitter) { DummyEmitter.new }
  let(:listener) { DummyListener.new }

  it "allow to register an emitter" do
    expect { subject.register_emitter(emitter.class, emitter.dispatcher) }.to change { subject.emitters_count }.by(1)
  end

  it "allow to remove an emitter" do
    subject.register_emitter(emitter.class, emitter.dispatcher)
    expect { subject.remove_emitter(emitter.class)}.to change { subject.emitters_count }.by(-1)
  end

  it "allow to register hooks to emitters" do
    expect { subject.register_hooks(emitter.class, listener) }.to change { subject.hooks_count }.by(1)
    expect { subject.register_hooks(emitter.class, listener) }.to change { subject.hooks_count(emitter.class) }.by(1)
  end

  it "link the emitter class to the listener" do
    subject.register_emitter(emitter.class, emitter.dispatcher)
    subject.register_hooks(emitter.class, listener)

    expect(listener.work?).to be_falsey
    emitter.do_work

    expect(listener.work?).to be_truthy
  end
end

Version data entries

63 entries across 63 versions & 7 rubygems

Version Path
logstash-output-scalyr-0.2.1.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/spec/logstash/plugins/hooks_registry_spec.rb
logstash-output-scalyr-0.2.0 vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/spec/logstash/plugins/hooks_registry_spec.rb
logstash-output-scalyr-0.2.0.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/spec/logstash/plugins/hooks_registry_spec.rb
logstash-output-scalyr-0.1.26.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/spec/logstash/plugins/hooks_registry_spec.rb
logstash-output-scalyr-0.1.25.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/spec/logstash/plugins/hooks_registry_spec.rb
logstash-output-scalyr-0.1.24.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/spec/logstash/plugins/hooks_registry_spec.rb
logstash-output-scalyr-0.1.23.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/spec/logstash/plugins/hooks_registry_spec.rb
logstash-output-scalyr-0.1.22.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/spec/logstash/plugins/hooks_registry_spec.rb
logstash-output-scalyr-0.1.21.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/spec/logstash/plugins/hooks_registry_spec.rb
logstash-output-scalyr-0.1.20.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/spec/logstash/plugins/hooks_registry_spec.rb
logstash-output-scalyr-0.1.19.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/spec/logstash/plugins/hooks_registry_spec.rb
logstash-output-scalyr-0.1.18.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/spec/logstash/plugins/hooks_registry_spec.rb
logstash-output-scalyr-0.1.17.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/spec/logstash/plugins/hooks_registry_spec.rb
logstash-output-scalyr-0.1.16.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/spec/logstash/plugins/hooks_registry_spec.rb
logstash-output-scalyr-0.1.15.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/spec/logstash/plugins/hooks_registry_spec.rb
logstash-output-scalyr-0.1.14.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/spec/logstash/plugins/hooks_registry_spec.rb
logstash-output-scalyr-0.1.13 vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/spec/logstash/plugins/hooks_registry_spec.rb
logstash-output-scalyr-0.1.12 vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/spec/logstash/plugins/hooks_registry_spec.rb
logstash-output-scalyr-0.1.11.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/spec/logstash/plugins/hooks_registry_spec.rb
logstash-output-scalyr-0.1.10.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/spec/logstash/plugins/hooks_registry_spec.rb