Sha256: cb215da1ca3d3bb8d2de9dd3ecfc1bd60ae78ba9dab9a075ba5b3d81d1d75f0a

Contents?: true

Size: 1.38 KB

Versions: 42

Compression:

Stored size: 1.38 KB

Contents

# encoding: utf-8
# This file is distributed under New Relic's license terms.
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.

require File.expand_path(File.join(File.dirname(__FILE__),'..','..','test_helper'))

class EventListenerTest < Minitest::Test

  def setup
    @events = NewRelic::Agent::EventListener.new

    @called = false
    @called_with = nil

    @check_method = Proc.new do |*args|
      @called = true
      @called_with = args
    end
  end


  #
  # Helpers
  #

  def assert_was_called
    assert @called, "Event wasn't called"
  end

  def assert_was_not_called
    assert !@called, "Event was called"
  end


  #
  # Tests
  #

  def test_notifies
    @events.subscribe(:before_call, &@check_method)
    @events.notify(:before_call, :env => "env")

    assert_was_called
    assert_equal([{:env => "env"}], @called_with)
  end

  def test_failure_during_notify_doesnt_block_other_hooks
    @events.subscribe(:after_call) { raise "Boo!" }
    @events.subscribe(:after_call, &@check_method)

    @events.notify(:after_call)

    assert_was_called
  end

  def test_runaway_events
    @events.runaway_threshold = 0
    expects_logging(:debug, includes("my_event"))
    @events.subscribe(:my_event) {}
  end

  def test_clear
    @events.subscribe(:after_call, &@check_method)
    @events.clear
    @events.notify(:after_call)

    assert_was_not_called
  end

end

Version data entries

42 entries across 42 versions & 2 rubygems

Version Path
newrelic_rpm-4.1.0.333 test/new_relic/agent/event_listener_test.rb
newrelic_rpm-4.0.0.332 test/new_relic/agent/event_listener_test.rb
newrelic_rpm-3.18.1.330 test/new_relic/agent/event_listener_test.rb
newrelic_rpm-3.18.0.329 test/new_relic/agent/event_listener_test.rb
newrelic_rpm-3.17.2.327 test/new_relic/agent/event_listener_test.rb
newrelic_rpm-3.17.1.326 test/new_relic/agent/event_listener_test.rb
newrelic_rpm-3.17.0.325 test/new_relic/agent/event_listener_test.rb
newrelic_rpm-3.16.3.323 test/new_relic/agent/event_listener_test.rb
newrelic_rpm-3.16.2.321 test/new_relic/agent/event_listener_test.rb
newrelic_rpm-3.16.1.320 test/new_relic/agent/event_listener_test.rb
newrelic_rpm-3.16.0.318 test/new_relic/agent/event_listener_test.rb
ish_lib_manager-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.15.2.317/test/new_relic/agent/event_listener_test.rb
newrelic_rpm-3.15.2.317 test/new_relic/agent/event_listener_test.rb
newrelic_rpm-3.15.1.316 test/new_relic/agent/event_listener_test.rb
newrelic_rpm-3.15.0.314 test/new_relic/agent/event_listener_test.rb
newrelic_rpm-3.14.3.313 test/new_relic/agent/event_listener_test.rb
newrelic_rpm-3.14.2.312 test/new_relic/agent/event_listener_test.rb
newrelic_rpm-3.14.1.311 test/new_relic/agent/event_listener_test.rb
newrelic_rpm-3.14.0.305 test/new_relic/agent/event_listener_test.rb
newrelic_rpm-3.13.2.302 test/new_relic/agent/event_listener_test.rb