Sha256: 351b6e105e54c5bd05f7ed28ba468b1cc7880bebf3b715d0574b3660c2a7ad09

Contents?: true

Size: 1.4 KB

Versions: 2

Compression:

Stored size: 1.4 KB

Contents

# frozen_string_literal: true

module TwilioBase
  module Fake
    module TaskRouter
      class Worker
        Worker = Struct.new(
          :sid,
          :friendly_name,
          :activity_sid,
          :attributes,
          :activity_name,
          :available,
          :date_status_changed
        ) do
          def delete
            self
          end

          def update(_attributes = {})
            self
          end
        end

        cattr_accessor :sid, :workers
        self.workers = []

        def initialize(sid = nil)
          self.sid = sid || FactoryBot.generate(:worker_sid)
        end

        def create(attributes)
          worker = Worker.new(
            sid,
            attributes[:friendly_name],
            attributes[:activity_sid],
            attributes[:attributes],
            attributes[:activity_name],
            attributes[:available],
            attributes[:date_status_changed]
          )
          self.class.workers << worker
          worker
        end

        def fetch
          workers.detect { |worker| worker.sid == sid }
        end

        def list(_attributes = {})
          workers
        end

        def update(_attributes = {})
          self
        end

        def statistics
          Fake::TaskRouter::WorkerStatistic.new(list)
        end

        def worker_channels(name = nil)
          Channel.new(name)
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
twilio_base-1.11.1101 spec/support/twilio_base/fake/task_router/worker.rb
twilio_base-1.11.11 spec/support/twilio_base/fake/task_router/worker.rb