Sha256: 3cb344a35d7e4abfc4211bca7712486bc7adfd3eb06d1716b79c20fc8a58c514

Contents?: true

Size: 1.19 KB

Versions: 1

Compression:

Stored size: 1.19 KB

Contents

require 'spec_helper'


describe NotificationCenter do
  describe '.post_notification' do
    before { NotificationCenter::Cache.flush_cache! }

    it "should fire event handler" do
      EventListener = Class.new { observe :event }
      EventListener.should_receive(:event_handler)
      NotificationCenter.post_notification :event
    end

    it "should not raise any exception when no event" do
      NotificationCenter.post_notification :imaginary_event
    end

    context 'when cache disabled' do
      before { NotificationCenter.enable_cache = false }
      it "should not fire event twice" do
        EventListener = Class.new { observe :event }
        EventListener.should_receive(:event_handler).twice

        NotificationCenter.post_notification :event
        NotificationCenter.post_notification :event
      end
    end

    context 'when cache enabled' do
      before { NotificationCenter.enable_cache = true }

      it "should not fire event twice" do
        EventListener = Class.new { observe :event }
        EventListener.should_receive :event_handler

        NotificationCenter.post_notification :event
        NotificationCenter.post_notification :event
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
notification_center-0.3 spec/lib/notification_center_spec.rb