Sha256: 0f79260dcef1e74dd18a60b2537eec8f9313177613d742c83d3ab58019a30a3d

Contents?: true

Size: 1.21 KB

Versions: 23

Compression:

Stored size: 1.21 KB

Contents

module Taskinator
  module Queues

    def self.create_test_queue_adapter(config={})
      TestQueueAdapter.new
    end

    def self.create_test_queue_worker_adapter(config={})
      QueueWorkerAdapter.new
    end

    class TestQueueAdapter

      attr_reader :creates
      attr_reader :tasks

      def initialize
        clear
      end

      def clear
        @creates = []
        @tasks = []
        @jobs = []
      end

      def enqueue_create_process(definition, uuid, args)
        @creates << [definition, uuid, args]
      end

      def enqueue_task(task)
        @tasks << task
      end

      def empty?
        @creates.empty? && @tasks.empty? && @jobs.empty?
      end

    end

    #
    # this is a "synchronous" implementation for use in testing
    #
    class QueueWorkerAdapter < TestQueueAdapter

      def enqueue_create_process(definition, uuid, args)
        super
        invoke do
          Taskinator::CreateProcessWorker.new(definition.name, uuid, args).perform
        end
      end

      def enqueue_task(task)
        super
        invoke do
          Taskinator::TaskWorker.new(task.uuid).perform
        end
      end

      def invoke(&block)
        block.call
      end

    end

  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
taskinator-0.4.7 spec/support/test_queue.rb
taskinator-0.4.6 spec/support/test_queue.rb
taskinator-0.4.5 spec/support/test_queue.rb
taskinator-0.4.4 spec/support/test_queue.rb
taskinator-0.4.3 spec/support/test_queue.rb
taskinator-0.4.2 spec/support/test_queue.rb
taskinator-0.4.1 spec/support/test_queue.rb
taskinator-0.4.0 spec/support/test_queue.rb
taskinator-0.3.16 spec/support/test_queue.rb
taskinator-0.3.15 spec/support/test_queue.rb
taskinator-0.3.14 spec/support/test_queue.rb
taskinator-0.3.13 spec/support/test_queue.rb
taskinator-0.3.12 spec/support/test_queue.rb
taskinator-0.3.11 spec/support/test_queue.rb
taskinator-0.3.10 spec/support/test_queue.rb
taskinator-0.3.9 spec/support/test_queue.rb
taskinator-0.3.7 spec/support/test_queue.rb
taskinator-0.3.6 spec/support/test_queue.rb
taskinator-0.3.5 spec/support/test_queue.rb
taskinator-0.3.3 spec/support/test_queue.rb