Sha256: ad273a339df8e977093a66d9a452b2e899bb9df096b2a01b8945abf2298ac85e

Contents?: true

Size: 1.37 KB

Versions: 16

Compression:

Stored size: 1.37 KB

Contents

require 'unit_spec_helper'

describe Rpush::Daemon::DispatcherLoop do
  def run_dispatcher_loop
    dispatcher_loop.start
    dispatcher_loop.stop
  end

  let(:notification) { double }
  let(:batch) { double(notification_processed: nil) }
  let(:queue) { Queue.new }
  let(:dispatcher) { double(dispatch: nil, cleanup: nil) }
  let(:dispatcher_loop) { Rpush::Daemon::DispatcherLoop.new(queue, dispatcher) }
  let(:store) { double(Rpush::Daemon::Store::ActiveRecord, release_connection: nil) }

  before do
    Rpush::Daemon.stub(store: store)
    queue.push([notification, batch])
  end

  it 'logs errors' do
    logger = double
    Rpush.stub(logger: logger)
    error = StandardError.new
    dispatcher.stub(:dispatch).and_raise(error)
    Rpush.logger.should_receive(:error).with(error)
    run_dispatcher_loop
  end

  it 'reflects an exception' do
    Rpush.stub(logger: double(error: nil))
    error = StandardError.new
    dispatcher.stub(:dispatch).and_raise(error)
    dispatcher_loop.should_receive(:reflect).with(:error, error)
    run_dispatcher_loop
  end

  describe 'stop' do
    before do
      queue.clear
    end

    it 'instructs the dispatcher to cleanup' do
      dispatcher.should_receive(:cleanup)
      run_dispatcher_loop
    end

    it 'releases the store connection' do
      Rpush::Daemon.store.should_receive(:release_connection)
      run_dispatcher_loop
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
rpush-2.3.1-java spec/unit/daemon/dispatcher_loop_spec.rb
rpush-2.3.1 spec/unit/daemon/dispatcher_loop_spec.rb
rpush-2.3.0-java spec/unit/daemon/dispatcher_loop_spec.rb
rpush-2.3.0 spec/unit/daemon/dispatcher_loop_spec.rb
rpush-2.3.0.rc1 spec/unit/daemon/dispatcher_loop_spec.rb
rpush-2.2.0-java spec/unit/daemon/dispatcher_loop_spec.rb
rpush-2.2.0 spec/unit/daemon/dispatcher_loop_spec.rb
rpush-2.1.0-java spec/unit/daemon/dispatcher_loop_spec.rb
rpush-2.1.0 spec/unit/daemon/dispatcher_loop_spec.rb
rpush-2.0.1-java spec/unit/daemon/dispatcher_loop_spec.rb
rpush-2.0.1 spec/unit/daemon/dispatcher_loop_spec.rb
rpush-2.0.0-java spec/unit/daemon/dispatcher_loop_spec.rb
rpush-2.0.0 spec/unit/daemon/dispatcher_loop_spec.rb
rpush-2.0.0.rc1-java spec/unit/daemon/dispatcher_loop_spec.rb
rpush-2.0.0.rc1 spec/unit/daemon/dispatcher_loop_spec.rb
rpush-2.0.0.beta2 spec/unit/daemon/dispatcher_loop_spec.rb