Sha256: 2b127e980a1a02517e51895853eb71a70bbd5ee87342087c2a32cb3dbbf9b1fc

Contents?: true

Size: 1.77 KB

Versions: 4

Compression:

Stored size: 1.77 KB

Contents

# frozen_string_literal: true

module TwilioBase
  module Fake
    module TaskRouter
      class Workspace
        Workspace = Struct.new(:attributes) do
          def sid
            @sid ||= GlobalConfig.first&.workspace_sid ||
                     FactoryBot.generate(:workspace_sid)
          end

          def event_callback_url
            attributes[:event_callback_url]
          end

          def friendly_name
            attributes[:friendly_name]
          end

          def task_queues
            Fake::TaskRouter::TaskQueue.new
          end

          def activities
            Fake::TaskRouter::Activity.new
          end

          def workflows
            Fake::TaskRouter::Workflow.new
          end

          def update(attributes)
            self.attributes = attributes
          end
        end

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

        def initialize(sid = nil)
          self.sid = sid
        end

        def create(params)
          workspace = Workspace.new(params)
          self.class.workspaces << workspace
          workspace
        end

        def update(attributes)
          workspaces.detect do |workspace|
            workspace.sid == sid
          end&.update(attributes)
        end

        def list
          workspaces
        end

        def activities
          Fake::TaskRouter::Activity.new
        end

        def statistics(sid = nil)
          Fake::TaskRouter::Statistic.new(sid, workspaces.first.attributes)
        end

        def tasks(sid = nil)
          Fake::TaskRouter::Task.new(sid)
        end

        def workers(sid = nil)
          Fake::TaskRouter::Worker.new(sid)
        end

        def workflows(sid = nil)
          Fake::TaskRouter::Workflow.new(sid)
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
twilio_base-1.11.1101 spec/support/twilio_base/fake/task_router/workspace.rb
twilio_base-1.11.11 spec/support/twilio_base/fake/task_router/workspace.rb
twilio_base-1.9.0 spec/support/twilio_base/fake/task_router/workspace.rb
twilio_base-1.8.0 spec/support/twilio_base/fake/task_router/workspace.rb