class TwilioMock::Mocker
Constants
- API_VERSION
- HOST
Public Class Methods
new(username: Twilio.account_sid, token: Twilio.auth_token)
click to toggle source
# File lib/twilio_mock/mocker.rb, line 12 def initialize(username: Twilio.account_sid, token: Twilio.auth_token) @username = username @token = token end
Public Instance Methods
available_number(number = nil, params = nil)
click to toggle source
# File lib/twilio_mock/mocker.rb, line 22 def available_number(number = nil, params = nil) query_string = params && params.any? ? Twilify.process(params).to_h.to_query : '' stub_request(:get, "#{base_twilio_url}/AvailablePhoneNumbers/US/Local.json?#{query_string}") .with(basic_auth: basic_auth) .to_return(status: 200, body: available_number_response(number), headers: {}) end
buy_number(attrs)
click to toggle source
# File lib/twilio_mock/mocker.rb, line 29 def buy_number(attrs) prepare_stub(attrs, 'IncomingPhoneNumbers.json') end
clean()
click to toggle source
# File lib/twilio_mock/mocker.rb, line 37 def clean number_generator.clean messages_queue.clean end
create_message(attrs)
click to toggle source
# File lib/twilio_mock/mocker.rb, line 17 def create_message(attrs) messages_queue.add OpenStruct.new(attrs) prepare_stub(attrs, 'Messages.json') end
messages()
click to toggle source
# File lib/twilio_mock/mocker.rb, line 33 def messages messages_queue.messages end
Private Instance Methods
available_number_response(number)
click to toggle source
# File lib/twilio_mock/mocker.rb, line 69 def available_number_response(number) number ||= number_generator.generate { sid: @username, available_phone_numbers: [{ 'phone_number' => number }], meta: { key: 'available_phone_numbers' } }.to_json end
base_twilio_url()
click to toggle source
# File lib/twilio_mock/mocker.rb, line 58 def base_twilio_url "https://#{HOST}/#{API_VERSION}/Accounts/#{@username}" end
basic_auth()
click to toggle source
# File lib/twilio_mock/mocker.rb, line 50 def basic_auth [@username, @token] end
messages_queue()
click to toggle source
# File lib/twilio_mock/mocker.rb, line 84 def messages_queue MessagesQueue.instance end
number_generator()
click to toggle source
# File lib/twilio_mock/mocker.rb, line 80 def number_generator NumberGenerator.instance end
prepare_stub(attrs, path)
click to toggle source
# File lib/twilio_mock/mocker.rb, line 62 def prepare_stub(attrs, path) body = Twilify.process(attrs).map { |k, val| [k, val.to_s] }.to_h stub_request(:post, "#{base_twilio_url}/#{path}") .with(body: body, basic_auth: basic_auth) .to_return(status: 200, body: response, headers: {}) end
response()
click to toggle source
# File lib/twilio_mock/mocker.rb, line 44 def response { sid: @username }.to_json end
stub_request(method, url)
click to toggle source
# File lib/twilio_mock/mocker.rb, line 54 def stub_request(method, url) WebMock.stub_request(method, url) end