Sha256: 2f18c357d3095dbe5cfcebd5178c4521c0e975f9fbe652f5c4f42543f04c0afe

Contents?: true

Size: 1.61 KB

Versions: 3

Compression:

Stored size: 1.61 KB

Contents

require 'spec_helper'

describe Backend do
  it "has register backends" do
    expect(Quebert.backends.keys).to match_array([:in_process, :beanstalk, :sync])
  end

  it "registers backends" do
    Quebert.backends.register :twenty, 20
    expect(Quebert.backends[:twenty]).to eql(20)
  end

  it "unregisters backends" do
    Quebert.backends.unregister :twenty
    expect(Quebert.backends[:twenty]).to be_nil
  end
end

describe Backend::InProcess do
  before(:all) do
    @q = Backend::InProcess.new
  end

  it "puts on queue" do
    3.times do |num|
      @q.put Adder.new(num)
    end
  end

  it "consumes from queue" do
    3.times do |num|
      expect(@q.reserve.perform).to eql(num)
    end
  end
end

describe Backend::Beanstalk  do
  before(:all) do
    @q = Backend::Beanstalk.new('localhost:11300','quebert-test')
    @q.drain!
  end

  it "puts on queue" do
    3.times do |num|
      @q.put Adder.new(num)
    end
  end

  it "consumes from queue" do
    3.times do |num|
      expect(@q.reserve.perform).to eql(num)
    end
  end

  it "consumes from multiple queues" do
    @q.queues = ["a", "b"]
    job1 = Adder.new(1)
    job1.queue = "a"
    @q.put(job1)
    job2 = Adder.new(2)
    job2.queue = "b"
    @q.put(job2)
    expect(@q.reserve.perform).to eql(1)
    expect(@q.reserve.perform).to eql(2)
  end
end

describe Backend::Sync do
  before(:all) do
    @q = Backend::Sync.new
  end

  it "puts on queue" do
    3.times do |num|
      expect(@q.put(Adder.new(num))).to eql(num)
    end
  end

  it "does nothing when consuming from queue" do
    3.times do |num|
      expect(@q.reserve.perform).to be_nil
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
quebert-3.3.0 spec/backend_spec.rb
quebert-3.2.1 spec/backend_spec.rb
quebert-3.2.0 spec/backend_spec.rb