Sha256: 968434ab364d2d2566fa7ccc23e7869c3a2aa16ecf468df1d48da0afb6edd4e7

Contents?: true

Size: 1.43 KB

Versions: 1

Compression:

Stored size: 1.43 KB

Contents

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

module JCukeForker
  describe TaskManager do
    let(:worker_path) { '/tmp/jcukeforker-test-socket' }
    let(:feature) { 'feature:1' }
    let(:mock_socket) { double('socket', :puts => nil) }
    let(:mock_file) { double(IO, :puts => nil) }

    it "can register a worker" do

      mock_file.should_receive(:write).with("{\"worker\":\"/tmp/jcukeforker-test-socket\",\"feature\":\"feature:1\",\"action\":\"feature\"}#{$-0}")

      task_manager = TaskManager.new [feature], mock_file
      task_manager.on_worker_register worker_path
    end

    it "can finish task" do

      mock_file.should_receive(:write).with("{\"worker\":\"/tmp/jcukeforker-test-socket\",\"feature\":\"feature:1\",\"action\":\"feature\"}#{$-0}")

      task_manager = TaskManager.new [feature], mock_file
      task_manager.on_task_finished worker_path, nil, nil
    end

    it "can send '__KILL__' when there are no tasks left" do

      mock_file.should_receive(:write).with("{\"action\":\"__KILL__\",\"worker\":\"/tmp/jcukeforker-test-socket\"}#{$-0}")

      task_manager = TaskManager.new [], mock_file
      task_manager.on_task_finished worker_path, nil, nil
    end

    it "can detect failure" do
      task_manager = TaskManager.new [], mock_file
      def task_manager.pop_task(*args); end
      task_manager.on_task_finished worker_path, feature, false
      task_manager.has_failures?.should == true
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
jcukeforker-0.3.1 spec/jcukeforker/task_manager_spec.rb