twilio_mock 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 106b61164128c689575f9d24eada429ef37c522c
4
- data.tar.gz: b2a7622e6a4f53a222b00fb48436433251386cc5
3
+ metadata.gz: 6a05cb105815e32d33c2d0009cb25386237db3fd
4
+ data.tar.gz: db93df91d08525b98908d535e98ba326843bf53f
5
5
  SHA512:
6
- metadata.gz: cb147bdb3da18c23798eaf81e4b0e64eb51e08456d266ca27c5c23b6ec996510459f9a9d9a10a68b8d96c8567724c4cde2fbe31447debee482f8715ded48d039
7
- data.tar.gz: eec240aad79a42f5787640843b0995d05133db3c44fe5db8d168c2af03c717e958eeeaa472f5907822833193802f066f527114fdd91a59aae56ca7d7e520e09f
6
+ metadata.gz: 87d6406e5bf963ae0fe39bc17961c10aa8df25e18ff8d967cde2e39a22d7de742d3a4841f4c6637b2aa10da56b2ec00eb3f9d499ee80362e1934dae7c95c763e
7
+ data.tar.gz: 68ec49c5c7d230b79566cc72de70eeb0f059ecf83614a3eb2905b1957b4899a16ec0a025a7f1f0157a74fa10c0af9d85c3294eb50618d3a41c267df13ae623d0
data/lib/rest.rb CHANGED
@@ -1,40 +1,28 @@
1
1
  require 'twilio-ruby'
2
+ require 'twilio_extensions'
2
3
 
3
4
  module Twilio
4
5
  module REST
5
- class Messages < ListResource
6
- def create(attrs)
7
- TwilioMock::Mocker.new.create_message(attrs) if TwilioMock::Testing.enabled?
8
- super(attrs)
9
- end
10
- end
11
-
12
- class IncomingPhoneNumbers < ListResource
13
- def create(attrs)
14
- TwilioMock::Mocker.new.buy_number(attrs) if TwilioMock::Testing.enabled?
15
- super(attrs)
16
- end
17
- end
6
+ class Api < Domain
7
+ class V2010 < Version
8
+ class AccountContext < InstanceContext
9
+ prepend TwilioExtensions::AccountContext
18
10
 
19
- class AvailablePhoneNumbers < ListResource
20
- def get(sid)
21
- TwilioMock::Mocker.new.available_number if TwilioMock::Testing.enabled?
22
- super(sid)
23
- end
24
- end
11
+ class MessageList < ListResource
12
+ prepend TwilioExtensions::Messages
13
+ end
25
14
 
26
- class Local < ListResource
27
- def list(params = {}, full_path = false)
28
- TwilioMock::Mocker.new.available_number(nil, params) if TwilioMock::Testing.enabled?
29
- super(params, full_path)
15
+ class IncomingPhoneNumberList < ListResource
16
+ prepend TwilioExtensions::IncomingPhoneNumbers
17
+ end
18
+ end
30
19
  end
31
20
  end
32
21
 
33
- module Lookups
34
- class PhoneNumbers < NextGenListResource
35
- def get(number)
36
- TwilioMock::LookupMocker.new.lookup(number) if TwilioMock::Testing.enabled?
37
- super(number)
22
+ class Lookups
23
+ class V1 < Version
24
+ class PhoneNumberContext < InstanceContext
25
+ prepend TwilioExtensions::Lookups
38
26
  end
39
27
  end
40
28
  end
@@ -0,0 +1,29 @@
1
+ module TwilioExtensions
2
+ module AccountContext
3
+ def available_phone_numbers(country_code=:unset)
4
+ TwilioMock::Mocker.new.available_number if TwilioMock::Testing.enabled?
5
+ super(country_code)
6
+ end
7
+ end
8
+
9
+ module Messages
10
+ def create(attrs)
11
+ TwilioMock::Mocker.new.create_message(attrs) if TwilioMock::Testing.enabled?
12
+ super(attrs)
13
+ end
14
+ end
15
+
16
+ module IncomingPhoneNumbers
17
+ def create(attrs)
18
+ TwilioMock::Mocker.new.buy_number(attrs) if TwilioMock::Testing.enabled?
19
+ super(attrs)
20
+ end
21
+ end
22
+
23
+ module Lookups
24
+ def fetch(*)
25
+ TwilioMock::LookupMocker.new.lookup(@solution[:phone_number]) if TwilioMock::Testing.enabled?
26
+ super
27
+ end
28
+ end
29
+ end
@@ -5,7 +5,6 @@ module TwilioMock
5
5
 
6
6
  def lookup(number, country_code = nil)
7
7
  stub_request(:get, "#{base_twilio_url}/PhoneNumbers/#{number}")
8
- .with(headers: headers)
9
8
  .to_return(status: 200, body: response(number, country_code), headers: {})
10
9
  end
11
10
 
@@ -2,11 +2,10 @@ require 'twilio-ruby'
2
2
  require 'webmock'
3
3
  require_relative 'number_generator'
4
4
  require 'ostruct'
5
+ require_relative 'twilify'
5
6
 
6
7
  module TwilioMock
7
8
  class Mocker
8
- include Twilio::REST::Utils
9
-
10
9
  API_VERSION = '2010-04-01'.freeze
11
10
  HOST = 'api.twilio.com'.freeze
12
11
 
@@ -21,9 +20,9 @@ module TwilioMock
21
20
  end
22
21
 
23
22
  def available_number(number = nil, params = nil)
24
- query_string = params && params.any? ? twilify(params).to_h.to_query : ''
23
+ query_string = params && params.any? ? Twilify.process(params).to_h.to_query : ''
25
24
  stub_request(:get, "#{base_twilio_url}/AvailablePhoneNumbers/US/Local.json?#{query_string}")
26
- .with(headers: headers, basic_auth: basic_auth)
25
+ .with(basic_auth: basic_auth)
27
26
  .to_return(status: 200, body: available_number_response(number), headers: {})
28
27
  end
29
28
 
@@ -48,10 +47,6 @@ module TwilioMock
48
47
  }.to_json
49
48
  end
50
49
 
51
- def headers
52
- Twilio::REST::Client::HTTP_HEADERS
53
- end
54
-
55
50
  def basic_auth
56
51
  [@username, @token]
57
52
  end
@@ -65,9 +60,9 @@ module TwilioMock
65
60
  end
66
61
 
67
62
  def prepare_stub(attrs, path)
68
- body = twilify(attrs).map { |k, val| [k, val.to_s] }.to_h
63
+ body = Twilify.process(attrs).map { |k, val| [k, val.to_s] }.to_h
69
64
  stub_request(:post, "#{base_twilio_url}/#{path}")
70
- .with(body: body, headers: headers, basic_auth: basic_auth)
65
+ .with(body: body, basic_auth: basic_auth)
71
66
  .to_return(status: 200, body: response, headers: {})
72
67
  end
73
68
 
@@ -75,7 +70,10 @@ module TwilioMock
75
70
  number ||= number_generator.generate
76
71
  {
77
72
  sid: @username,
78
- available_phone_numbers: [{ 'PhoneNumber' => number }]
73
+ available_phone_numbers: [{ 'phone_number' => number }],
74
+ meta: {
75
+ key: 'available_phone_numbers'
76
+ }
79
77
  }.to_json
80
78
  end
81
79
 
@@ -0,0 +1,17 @@
1
+ module Twilify
2
+ module_function
3
+
4
+ # extracted from the deprecated Twilio::REST::Utils
5
+ def process(something)
6
+ if something.is_a? Hash
7
+ something = something.to_a
8
+ something = something.map { |pair| [process(pair[0]).to_sym, pair[1]] }
9
+ something = something.flatten(1)
10
+ Hash[*something]
11
+ else
12
+ something.to_s.split('_').map! do |s|
13
+ [s[0,1].capitalize, s[1..-1]].join
14
+ end.join
15
+ end
16
+ end
17
+ end
data/lib/twilio_mock.rb CHANGED
@@ -3,4 +3,5 @@ require 'twilio_mock/number_generator'
3
3
  require 'twilio_mock/messages_queue'
4
4
  require 'twilio_mock/mocker'
5
5
  require 'twilio_mock/lookup_mocker'
6
+ require 'twilio_extensions'
6
7
  require 'rest'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twilio_mock
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maicol Bentancor
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-07 00:00:00.000000000 Z
11
+ date: 2017-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: twilio-ruby
@@ -16,20 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 4.13.0
19
+ version: 5.2.3
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: '3'
22
+ version: '5'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: 4.13.0
29
+ version: 5.2.3
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: '3'
32
+ version: '5'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: webmock
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -57,12 +57,14 @@ extensions: []
57
57
  extra_rdoc_files: []
58
58
  files:
59
59
  - lib/rest.rb
60
+ - lib/twilio_extensions.rb
60
61
  - lib/twilio_mock.rb
61
62
  - lib/twilio_mock/lookup_mocker.rb
62
63
  - lib/twilio_mock/messages_queue.rb
63
64
  - lib/twilio_mock/mocker.rb
64
65
  - lib/twilio_mock/number_generator.rb
65
66
  - lib/twilio_mock/testing.rb
67
+ - lib/twilio_mock/twilify.rb
66
68
  homepage:
67
69
  licenses:
68
70
  - MIT