Sha256: 514670d7c4fdb35eb668d4e259db98d1e2485abc33d528f8c5da78837427b1ac

Contents?: true

Size: 1.62 KB

Versions: 4

Compression:

Stored size: 1.62 KB

Contents

require 'spec_helper'

describe Taskinator::Queues::DelayedJobAdapter, :delayed_job do

  it_should_behave_like "a queue adapter", :delayed_job, Taskinator::Queues::DelayedJobAdapter

  let(:adapter) { Taskinator::Queues::DelayedJobAdapter }
  let(:uuid) {  SecureRandom.uuid }

  subject { adapter.new }

  describe "CreateProcessWorker" do
    let(:args) { Taskinator::Persistence.serialize(:foo => :bar) }

    it "enqueues" do
      expect {
        subject.enqueue_create_process(MockDefinition.create, uuid, :foo => :bar)
      }.to change(Delayed::Job.queue, :size).by(1)
    end

    it "enqueues to specified queue" do
      definition = MockDefinition.create(:other)
      subject.enqueue_create_process(definition, uuid, :foo => :bar)
      expect(Delayed::Job.contains?(adapter::CreateProcessWorker, [definition.name, uuid, args], :other)).to be
    end

    it "calls worker" do
      expect_any_instance_of(Taskinator::CreateProcessWorker).to receive(:perform)
      adapter::CreateProcessWorker.new(MockDefinition.create.name, uuid, args).perform
    end
  end

  describe "TaskWorker" do
    it "enqueues tasks" do
      expect {
        subject.enqueue_task(double('task', :uuid => uuid, :queue => nil))
      }.to change(Delayed::Job.queue, :size).by(1)
    end

    it "enqueues task to specified queue" do
      subject.enqueue_task(double('task', :uuid => uuid, :queue => :other))
      expect(Delayed::Job.contains?(adapter::TaskWorker, uuid, :other)).to be
    end

    it "calls task worker" do
      expect_any_instance_of(Taskinator::TaskWorker).to receive(:perform)
      adapter::TaskWorker.new(uuid).perform
    end
  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
taskinator-0.3.3 spec/taskinator/queues/delayed_job_spec.rb
taskinator-0.3.2 spec/taskinator/queues/delayed_job_spec.rb
taskinator-0.3.1 spec/taskinator/queues/delayed_job_spec.rb
taskinator-0.3.0 spec/taskinator/queues/delayed_job_spec.rb