Sha256: c7969ec725be04806395c0d61019350393a863adbe967e18ba7dd21b2f8f69b5

Contents?: true

Size: 929 Bytes

Versions: 6

Compression:

Stored size: 929 Bytes

Contents

class MockActor
  attr_reader :tasks

  def initialize
    @tasks = []
  end

  def setup_thread
  end
end

shared_context "a Celluloid Task" do |task_class|
  let(:task_type)     { :foobar }
  let(:suspend_state) { :doing_something }
  let(:actor)         { MockActor.new }

  subject { task_class.new(task_type) { Celluloid::Task.suspend(suspend_state) } }

  before :each do
    Thread.current[:celluloid_actor] = actor
  end

  after :each do
    Thread.current[:celluloid_actor] = nil
  end

  it "begins with status :new" do
    subject.status.should be :new
  end

  it "resumes" do
    subject.should be_running
    subject.resume
    subject.status.should eq(suspend_state)
    subject.resume
    subject.should_not be_running
  end

  it "raises exceptions outside" do
    task = task_class.new(task_type) do
      raise "failure"
    end
    expect do
      task.resume
    end.to raise_exception("failure")
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
celluloid-0.14.1 spec/support/task_examples.rb
celluloid-0.14.1.pre spec/support/task_examples.rb
sidekiq-statsd-0.1.1 vendor/ruby/1.9.1/gems/celluloid-0.14.0/spec/support/task_examples.rb
sidekiq-statsd-0.1.0 vendor/ruby/1.9.1/gems/celluloid-0.14.0/spec/support/task_examples.rb
celluloid-0.14.0 spec/support/task_examples.rb
celluloid-0.14.0.pre spec/support/task_examples.rb