Sha256: f100ecf331f54a229dd2ffa603e407233cc6cd027e83b48e5bd2c3410015529d

Contents?: true

Size: 1.56 KB

Versions: 10

Compression:

Stored size: 1.56 KB

Contents

require File.expand_path('../test_helper', __FILE__)

module Larva
  class WorkerPoolTest < Minitest::Test
    def test_should_complete_for_no_processors
      WorkerPool.start({})
    end

    def test_process_logs_start_and_end_messages
      Propono.config.logger.stubs(:info)
      Propono.config.logger.expects(:info).with("Starting 0 threads.")
      Propono.config.logger.expects(:info).with("0 threads started.")
      WorkerPool.start({})
    end

    def test_start_worker_logs_exception
      Larva::Listener.expects(:listen).raises(RuntimeError)
      Propono.config.logger.expects(:error).with do |error|
        error.start_with?("Unexpected listener termination:")
      end
      Propono.config.logger.expects(:error).with('Listener for qux was dead')
      Propono.config.logger.expects(:error).with('Some threads have died:')
      pool = WorkerPool.new({'qux' => nil})
      pool.stubs(:sleep)
      err = assert_raises(StandardError) { pool.start }
      assert_equal 'Some threads have died', err.message
    end

    def test_listen_is_called_correctly
      Propono.config.logger.stubs(:info)
      Propono.config.logger.expects(:info).with("All threads are alive.")

      topic_name = "Foo"
      processor = mock
      Larva::Listener.expects(:listen).with(topic_name, processor)
      pool = WorkerPool.new({topic_name => processor})

      pool.expects(:sleep).with(60).at_least_once

      Thread.any_instance.stubs(alive?: true)

      Thread.new do
        while true 
          sleep(1)
          pool.stop
        end
      end

      pool.start
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
larva-1.3.0 test/worker_pool_test.rb
larva-1.2.0 test/worker_pool_test.rb
larva-1.1.3 test/worker_pool_test.rb
larva-1.1.2 test/worker_pool_test.rb
larva-1.1.1 test/worker_pool_test.rb
larva-1.1.0 test/worker_pool_test.rb
larva-1.0.1 test/worker_pool_test.rb
larva-1.0.0 test/worker_pool_test.rb
larva-0.9.2 test/worker_pool_test.rb
larva-0.9.1 test/worker_pool_test.rb