Sha256: 845707f30f5ab336e912609d1079c98a4baea0c805600f0496ed235d1f26205d

Contents?: true

Size: 1.23 KB

Versions: 4

Compression:

Stored size: 1.23 KB

Contents

require 'woodhouse'
require File.dirname(File.expand_path(__FILE__)) + '/shared_contexts'

describe Woodhouse::Scheduler do
  it_should_behave_like "common"

  subject { Woodhouse::Scheduler.new(common_config) }

  let(:worker) {
    Woodhouse::Layout::Worker.new(:FooBarWorker, :foo)
  }

  let(:worker_2) {
    Woodhouse::Layout::Worker.new(:FooBarWorker, :foo, :only => { :job => "big" })
  } 

  it "should create a new worker set when a new worker is sent to #start_worker" do
    subject.start_worker worker
    subject.should be_running_worker(worker)
  end

  it "should not create a new worker set when an existing worker is sent to #start_worker" do
    subject.start_worker(worker).should be_true
    subject.start_worker(worker).should be_false
  end

  it "should spin down and remove a worker set when a worker is sent to #stop_worker" do
    subject.start_worker worker
    subject.stop_worker worker, true
    subject.should_not be_running_worker(worker)
  end

  it "should spin down and remove all worker sets when #spin_down is called" do
    subject.start_worker worker
    subject.start_worker worker_2
    subject.spin_down
    subject.should_not be_running_worker(worker)
    subject.should_not be_running_worker(worker_2)
  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
woodhouse-1.0.0 spec/scheduler_spec.rb
woodhouse-0.1.5 spec/scheduler_spec.rb
woodhouse-0.1.2 spec/scheduler_spec.rb
woodhouse-0.1.1 spec/scheduler_spec.rb