Sha256: 240d5f954631cf396cc84bec4767974f3996ba15479ec0b1980c1277ed0d27d0

Contents?: true

Size: 1.07 KB

Versions: 2

Compression:

Stored size: 1.07 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, 7)
    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 == 7
    end
  end

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

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

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

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sucker_punch-0.3.1 spec/queue_spec.rb
sucker_punch-0.3 spec/queue_spec.rb