Sha256: e837746a4a0119625eb411e7c1f9183cf1d9125ff3d02637380f34f92e0c1011

Contents?: true

Size: 1.51 KB

Versions: 3

Compression:

Stored size: 1.51 KB

Contents

require File.expand_path("../helper", __FILE__)

class WorkerTest < Test::Unit::TestCase
  def test_cooler
    cooled = false
    worker = nil
    cooler = lambda { worker.stop;cooled = true }

    worker = new_worker [], :processor => lambda { |_| fail 'item found?' },
      :cooler => cooler

    worker.run
    assert cooled
  end

  def test_custom_on_error_handler
    called = false
    error_handler = lambda do |exc|
      called = true
      assert_equal 'booya', exc.message
    end

    worker = new_worker [1], :processor => lambda { |_| raise 'booya' },
      :error_handler => error_handler

    worker.work

    assert called
  end

  def test_default_error_handler
    processor = lambda do |item|
      raise item.to_s
    end

    worker = new_worker [1], :processor => processor

    begin
      worker.work
    rescue RuntimeError => err
      assert_equal '1', err.message
    else
      fail "no exception raised"
    end
  end

  def test_breaks_when_stopped
    called = false
    worker = nil

    processor = lambda do |item|
      fail "callback called multiple times" if called
      assert_equal 1, item
      called = true
      worker.stop
    end

    worker = new_worker [1, nil], :processor => processor
    worker.run

    assert called
  end

  def test_new_worker_is_not_working
    assert !new_worker.working?
  end

  def new_worker(queue = [], options = {})
    options[:instrumenter] ||= NullInstrumenter.new
    Worker.new(queue, options)
  end

  class Worker
    include QueueKit::Worker
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
queue_kit-0.0.10 test/worker_test.rb
queue_kit-0.0.9 test/worker_test.rb
queue_kit-0.0.8 test/worker_test.rb