Sha256: cc9d99e3c7b18e13e0e77aed78164bcbaf606bed291b187662de8f9709b3359f

Contents?: true

Size: 1.3 KB

Versions: 2

Compression:

Stored size: 1.3 KB

Contents

require 'spec_helper'

class FakeWorker
  include Celluloid
end

describe SuckerPunch::Queue do
  describe ".[]" do
    it "delegates to Celluloid" do
      Celluloid::Actor[:fake] = FakeWorker.pool
      Celluloid::Actor.should_receive(:[]).with(:fake)
      SuckerPunch::Queue[:fake]
    end
  end

  describe "#register" do
    before(:each) do
      SuckerPunch::Queue.new(:crazy_queue).register(FakeWorker, 2)
    end

    it "turns the class into an actor" do
      Celluloid::Actor[:crazy_queue].should be_a(Celluloid)
      Celluloid::Actor[:crazy_queue].should be_a(FakeWorker)
      Celluloid::Actor[:crazy_queue].methods.should include(:async)
    end

    it "sets worker size" do
      Celluloid::Actor[:crazy_queue].size.should == 2
    end
  end

  describe "#workers" do
    it "returns number of workers" do
      SuckerPunch::Queue.new(:crazy_queue).register(FakeWorker, 2)
      SuckerPunch::Queue.new(:crazy_queue).workers.should == 2
    end
  end

  describe "delegation" do
    let(:queue) { SuckerPunch::Queue.new(:crazy_queue) }

    before(:each) do
      SuckerPunch::Queue.new(:crazy_queue).register(FakeWorker, 2)
    end

    it "sends messages to Actor" do
      queue.workers.should == 2
      queue.idle_size.should == 2
      queue.busy_size.should == 0
      queue.size.should == 0
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sucker_punch-0.5.1 spec/sucker_punch/queue_spec.rb
sucker_punch-0.5 spec/sucker_punch/queue_spec.rb