Sha256: 8c9f7467a3d880c616bdca821538e75227ce029ce1f0f61cb07de554d50c7730
Contents?: true
Size: 1.51 KB
Versions: 3
Compression:
Stored size: 1.51 KB
Contents
require File.expand_path(File.join(*%w[ .. helper ]), File.dirname(__FILE__)) class PigeonSchedulerTest < Minitest::Test class TaggedTask < Pigeon::Task attr_accessor :tag def initialize(tag, options = nil) super(options) @tag = tag end def inspect "<#{@tag}>" end end def setup @engine = Pigeon::Engine.new Pigeon::Engine.register_engine(@engine) end def teardown Pigeon::Engine.unregister_engine(@engine) end def test_defaults scheduler = Pigeon::Scheduler.new assert_equal true, scheduler.default_queue.empty? assert_equal 0, scheduler.queue_size assert_equal true, scheduler.empty? end def test_queued queue = Pigeon::Queue.new scheduler = Pigeon::Scheduler.new(queue) count = 1000 count.times do |n| queue << TaggedTask.new(n) end assert_eventually(5) do queue.empty? end assert_equal 0, scheduler.processors.select(&:task?).length assert_equal 0, queue.length end def test_add queue = Pigeon::Queue.new scheduler = Pigeon::Scheduler.new(queue) assert scheduler.processors.length > 0 count = 1000 backlog = [ ] count.times do |n| scheduler.add(TaggedTask.new(n * 2 + 1)) backlog << TaggedTask.new(n * 2) end scheduler.add(backlog) assert_eventually(5) do queue.empty? end assert_equal 0, scheduler.processors.select(&:task?).length assert_equal 0, queue.length end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
pigeon-1.0.2 | test/unit/pigeon_scheduler_test.rb |
pigeon-1.0.1 | test/unit/pigeon_scheduler_test.rb |
pigeon-1.0.0 | test/unit/pigeon_scheduler_test.rb |