Sha256: 77ae5517f42afeacfcbc35e087a2424f801ee5373b2d3a17a382f81348219094

Contents?: true

Size: 1.75 KB

Versions: 28

Compression:

Stored size: 1.75 KB

Contents

require 'lib/task_manager.rb'

describe TaskManager do

  before do
    @files = ['/path/to.file']
    @result = {
      :state => :success,
      :detail =>'task output'
    }

    @task1 = mock('Task 1')
    @task2 = mock('Task 2')
    @output = mock('Output')

  end

  it "should call start_run and then output a run task" do
    @task1.should_receive(:run).with(@files).and_return(@result)
    @output.should_receive(:start_run)
    @output.should_receive(:add_result).with(@result)

    task_manager = TaskManager.new(@output)
    task_manager.add(@task1)
    task_manager.run(@files)
  end

  it "should run multiple tasks in order added" do
    @task1.should_receive(:run).ordered.with(@files).and_return(@result)
    @task2.should_receive(:run).ordered.with(@files).and_return(@result)
    @output.should_receive(:start_run)
    @output.should_receive(:add_result).any_number_of_times

    task_manager = TaskManager.new(@output)
    task_manager.add(@task1)
    task_manager.add(@task2)
    task_manager.run(@files)
  end

  it "should stop running tasks on error state" do
    @task1.should_receive(:run).ordered.with(@files).and_return({:state => :error})
    @output.should_receive(:start_run)
    @output.should_receive(:add_result).any_number_of_times

    task_manager = TaskManager.new(@output)
    task_manager.add(@task1)
    task_manager.add(@task2)
    task_manager.run(@files)
  end

  it "should stop running tasks on failure state" do
    @task1.should_receive(:run).ordered.with(@files).and_return({:state => :failure})
    @output.should_receive(:start_run)
    @output.should_receive(:add_result).any_number_of_times

    task_manager = TaskManager.new(@output)
    task_manager.add(@task1)
    task_manager.add(@task2)
    task_manager.run(@files)
  end

end


Version data entries

28 entries across 28 versions & 2 rubygems

Version Path
karl-loris-0.0.10 spec/task_manager_spec.rb
karl-loris-0.0.11 spec/task_manager_spec.rb
karl-loris-0.0.6 spec/task_manager_spec.rb
karl-loris-0.0.7 spec/task_manager_spec.rb
karl-loris-0.0.9 spec/task_manager_spec.rb
loris-0.5.2 spec/task_manager_spec.rb
loris-0.5.1 spec/task_manager_spec.rb
loris-0.5.0 spec/task_manager_spec.rb
loris-0.4.1 spec/task_manager_spec.rb
loris-0.4.0 spec/task_manager_spec.rb
loris-0.3.2 spec/task_manager_spec.rb
loris-0.3.1 spec/task_manager_spec.rb
loris-0.3.0 spec/task_manager_spec.rb
loris-0.2.3 spec/task_manager_spec.rb
loris-0.2.2 spec/task_manager_spec.rb
loris-0.2.1 spec/task_manager_spec.rb
loris-0.2.0 spec/task_manager_spec.rb
loris-0.1.7 spec/task_manager_spec.rb
loris-0.1.5 spec/task_manager_spec.rb
loris-0.1.4 spec/task_manager_spec.rb