Sha256: 6777e9fd436a31fa2a51a688df5df019188194aaf811e7cf25e9e2f1f752269e

Contents?: true

Size: 1.24 KB

Versions: 36

Compression:

Stored size: 1.24 KB

Contents

require 'spec_helper'

describe Saucy::Notifications do
  let(:observer_class) do
    Class.new do
      def some_event(*args)
      end
    end
  end

  it "can notify observers" do
    observer = observer_class.new
    observer.stubs(:some_event => true)

    cleanup_observers do
      Saucy::Notifications.register_observer(observer)
      Saucy::Notifications.notify_observers("some_event", "some_data")
      observer.should have_received("some_event").with("some_data")
    end
  end

  it "only notifies observers that respond to a given event" do
    observer = Object.new

    cleanup_observers do
      expect do
        Saucy::Notifications.register_observer(observer)
        Saucy::Notifications.notify_observers("some_event", "some_data")
      end.should_not raise_error
    end
  end

  it "can clear its observers" do
    observer = observer_class.new
    observer.stubs(:some_event => true)

    cleanup_observers do
      Saucy::Notifications.register_observer(observer)
      Saucy::Notifications.clear_observers
      Saucy::Notifications.notify_observers("some_event", "some_data")
      observer.should_not have_received("some_event").with("some_data")
    end
  end

  def cleanup_observers
    yield
  ensure
    subject.clear_observers
  end
end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
saucy-0.16.1 spec/saucy/notifications_spec.rb
saucy-0.16.0 spec/saucy/notifications_spec.rb
saucy-0.15.2 spec/saucy/notifications_spec.rb
saucy-0.15.1 spec/saucy/notifications_spec.rb
saucy-0.15.0 spec/saucy/notifications_spec.rb
saucy-0.14.5 spec/saucy/notifications_spec.rb
saucy-0.14.3 spec/saucy/notifications_spec.rb
saucy-0.10.10 spec/saucy/notifications_spec.rb
saucy-0.14.2 spec/saucy/notifications_spec.rb
saucy-0.14.1 spec/saucy/notifications_spec.rb
saucy-0.14.0 spec/saucy/notifications_spec.rb
saucy-0.13.3 spec/saucy/notifications_spec.rb
saucy-0.13.2 spec/saucy/notifications_spec.rb
saucy-0.10.9 spec/saucy/notifications_spec.rb
saucy-0.10.8 spec/saucy/notifications_spec.rb
saucy-0.13.1 spec/saucy/notifications_spec.rb
saucy-0.13.0 spec/saucy/notifications_spec.rb
saucy-0.12.5 spec/saucy/notifications_spec.rb
saucy-0.12.4 spec/saucy/notifications_spec.rb
saucy-0.12.3 spec/saucy/notifications_spec.rb