Sha256: 254aa7191c88a6062956bb08572f0677f4bfde142a15dd8841e241f102935ec7

Contents?: true

Size: 1.42 KB

Versions: 1

Compression:

Stored size: 1.42 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

    it "should return listener result" do
      EventListener = Class.new { observe :event }
      EventListener.should_receive(:event_handler).and_return(:result)
      NotificationCenter.post_notification(:event).should eql(:result)
    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.1 spec/lib/notification_center_spec.rb