Sha256: 69bffe28e2f36dbc9bf52007b44e636253ee6c7e2779ddac05252ea83dc6c0ea

Contents?: true

Size: 1.16 KB

Versions: 4

Compression:

Stored size: 1.16 KB

Contents

# frozen_string_literal: true

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

        def friendly_name
          attributes[:friendly_name]
        end

        def sms_url
          attributes[:sms_url]
        end

        def sms_method
          attributes[:sms_method]
        end

        def voice_url
          attributes[:voice_url]
        end

        def voice_method
          attributes[:voice_method]
        end

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

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

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

      def create(attributes)
        application = Application.new(attributes)
        self.class.applications << application
        application
      end

      def list
        applications
      end

      def fetch
        applications.detect { |application| application.sid == sid }
      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/application.rb
twilio_base-1.11.11 spec/support/twilio_base/fake/application.rb
twilio_base-1.9.0 spec/support/twilio_base/fake/application.rb
twilio_base-1.8.0 spec/support/twilio_base/fake/application.rb