nexmos 0.2 → 0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.rubocop.yml +17 -0
- data/.travis.yml +11 -2
- data/Appraisals +15 -0
- data/Gemfile +15 -4
- data/Guardfile +20 -0
- data/Rakefile +2 -2
- data/defaults.reek +11 -0
- data/gemfiles/activesupport_3.2.gemfile +23 -0
- data/gemfiles/activesupport_4.0.gemfile +23 -0
- data/gemfiles/activesupport_4.1.gemfile +23 -0
- data/gemfiles/activesupport_4.2.gemfile +23 -0
- data/lib/faraday_middleware/response/mashrashify.rb +19 -0
- data/lib/hashie/mash/rash.rb +41 -0
- data/lib/nexmos.rb +1 -0
- data/lib/nexmos/account.rb +2 -2
- data/lib/nexmos/base.rb +25 -29
- data/lib/nexmos/message.rb +2 -2
- data/lib/nexmos/number.rb +2 -2
- data/lib/nexmos/railties.rb +1 -1
- data/lib/nexmos/search.rb +2 -2
- data/lib/nexmos/text_to_speech.rb +2 -2
- data/lib/nexmos/version.rb +1 -1
- data/nexmos.gemspec +3 -3
- data/spec/nexmos/account_spec.rb +46 -40
- data/spec/nexmos/base_spec.rb +71 -60
- data/spec/nexmos/number_spec.rb +66 -64
- data/spec/nexmos_spec.rb +26 -11
- data/spec/spec_helper.rb +11 -16
- metadata +43 -29
- data/.ruby-gemset +0 -1
- data/.ruby-version +0 -1
data/lib/nexmos/railties.rb
CHANGED
data/lib/nexmos/search.rb
CHANGED
data/lib/nexmos/version.rb
CHANGED
data/nexmos.gemspec
CHANGED
@@ -15,10 +15,10 @@ Gem::Specification.new do |gem|
|
|
15
15
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
16
16
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
17
17
|
gem.require_paths = ["lib"]
|
18
|
-
gem.add_dependency('
|
18
|
+
gem.add_dependency('hashie', '>= 2.1.0')
|
19
19
|
gem.add_dependency('faraday')
|
20
20
|
gem.add_dependency('faraday_middleware')
|
21
|
-
gem.add_dependency('activesupport', '>= 3.0.0')
|
22
|
-
gem.add_development_dependency('rspec')
|
21
|
+
gem.add_dependency('activesupport', '>= 3.0', '<= 5.0')
|
22
|
+
gem.add_development_dependency('rspec', '>= 3.0')
|
23
23
|
gem.add_development_dependency('webmock')
|
24
24
|
end
|
data/spec/nexmos/account_spec.rb
CHANGED
@@ -45,7 +45,7 @@ describe ::Nexmos::Account do
|
|
45
45
|
"ranges" => ["35846", "35850"],
|
46
46
|
"mtPrice" => "0.05000000"}],
|
47
47
|
"name" => "Finland"
|
48
|
-
}
|
48
|
+
}.to_json
|
49
49
|
end
|
50
50
|
|
51
51
|
let(:prefix_prices) do
|
@@ -80,7 +80,7 @@ describe ::Nexmos::Account do
|
|
80
80
|
"ranges" => nil,
|
81
81
|
"mtPrice" => "0.05000000"}],
|
82
82
|
"name" => "Finland"}],
|
83
|
-
}
|
83
|
+
}.to_json
|
84
84
|
end
|
85
85
|
|
86
86
|
before(:each) do
|
@@ -97,11 +97,11 @@ describe ::Nexmos::Account do
|
|
97
97
|
|
98
98
|
it 'should return value' do
|
99
99
|
request = stub_request(:get, "https://rest.nexmo.com/account/get-balance?api_key=default_key&api_secret=default_secret").
|
100
|
-
with(webmock_default_headers).to_return(:status => 200, :body => {"value" => 4.107}, :
|
100
|
+
with(webmock_default_headers).to_return(:status => 200, :body => {"value" => 4.107}.to_json, headers: {'Content-Type' => 'application/json'})
|
101
101
|
res = subject.get_balance
|
102
|
-
res.
|
103
|
-
res.value.
|
104
|
-
request.
|
102
|
+
expect(res).to be_kind_of(::Hash)
|
103
|
+
expect(res.value).to eq(4.107)
|
104
|
+
expect(request).to have_been_made.once
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
@@ -112,15 +112,15 @@ describe ::Nexmos::Account do
|
|
112
112
|
|
113
113
|
it 'should be success' do
|
114
114
|
request = stub_request(:get, "https://rest.nexmo.com/account/get-pricing/outbound?api_key=default_key&api_secret=default_secret&country=FI").
|
115
|
-
with(webmock_default_headers).to_return(:status => 200, :body => finland_prices, :headers => {})
|
115
|
+
with(webmock_default_headers).to_return(:status => 200, :body => finland_prices, :headers => {'Content-Type' => 'application/json'})
|
116
116
|
res = subject.get_pricing(:country => 'FI')
|
117
|
-
res.
|
118
|
-
res.success
|
119
|
-
res.country.
|
120
|
-
res.keys.sort.
|
121
|
-
res.networks.
|
122
|
-
res.networks[0].keys.sort.
|
123
|
-
request.
|
117
|
+
expect(res).to be_kind_of(::Hash)
|
118
|
+
expect(res.success?).to be_truthy
|
119
|
+
expect(res.country).to eq('FI')
|
120
|
+
expect(res.keys.sort).to eq(%w(country name prefix mt networks success?).sort)
|
121
|
+
expect(res.networks).to be_kind_of(::Array)
|
122
|
+
expect(res.networks[0].keys.sort).to eq(%w(code network mt_price ranges).sort)
|
123
|
+
expect(request).to have_been_made.once
|
124
124
|
end
|
125
125
|
end
|
126
126
|
|
@@ -131,41 +131,47 @@ describe ::Nexmos::Account do
|
|
131
131
|
|
132
132
|
it 'should be success' do
|
133
133
|
request = stub_request(:get, "https://rest.nexmo.com/account/get-prefix-pricing/outbound?api_key=default_key&api_secret=default_secret&prefix=358").
|
134
|
-
with(webmock_default_headers).to_return(:status => 200, :body => prefix_prices, :headers => {})
|
134
|
+
with(webmock_default_headers).to_return(:status => 200, :body => prefix_prices, :headers => {'Content-Type' => 'application/json'})
|
135
135
|
res = subject.get_prefix_pricing(:prefix => '358')
|
136
|
-
res.
|
137
|
-
res.success
|
138
|
-
res.keys.sort.
|
139
|
-
res.prices.
|
140
|
-
res.prices[0].keys.sort.
|
141
|
-
res.prices[0].networks.
|
142
|
-
res.prices[0].networks[0].keys.sort.
|
143
|
-
request.
|
136
|
+
expect(res).to be_kind_of(::Hash)
|
137
|
+
expect(res.success?).to be_truthy
|
138
|
+
expect(res.keys.sort).to eq(%w(count prices success?).sort)
|
139
|
+
expect(res.prices).to be_kind_of(::Array)
|
140
|
+
expect(res.prices[0].keys.sort).to eq(%w(country name prefix mt networks).sort)
|
141
|
+
expect(res.prices[0].networks).to be_kind_of(::Array)
|
142
|
+
expect(res.prices[0].networks[0].keys.sort).to eq(%w(code network mt_price ranges).sort)
|
143
|
+
expect(request).to have_been_made.once
|
144
144
|
end
|
145
145
|
end
|
146
146
|
|
147
147
|
context '#get_numbers' do
|
148
148
|
it 'should return only count on empty numbers' do
|
149
149
|
request = stub_request(:get, "https://rest.nexmo.com/account/numbers?api_key=default_key&api_secret=default_secret").
|
150
|
-
with(webmock_default_headers).to_return(:status => 200, :body => {:count => 0}, :headers => {})
|
150
|
+
with(webmock_default_headers).to_return(:status => 200, :body => {:count => 0}.to_json, :headers => {'Content-Type' => 'application/json'})
|
151
151
|
res = subject.get_numbers
|
152
|
-
res.
|
153
|
-
res.success
|
154
|
-
res['count'].
|
155
|
-
request.
|
152
|
+
expect(res).to be_kind_of(::Hash)
|
153
|
+
expect(res.success?).to be_truthy
|
154
|
+
expect(res['count']).to eq(0)
|
155
|
+
expect(request).to have_been_made.once
|
156
156
|
end
|
157
157
|
|
158
158
|
it 'should return numbers array' do
|
159
159
|
request = stub_request(:get, "https://rest.nexmo.com/account/numbers?api_key=default_key&api_secret=default_secret").
|
160
|
-
with(webmock_default_headers).to_return(:status => 200,
|
160
|
+
with(webmock_default_headers).to_return(:status => 200,
|
161
|
+
:body => {
|
162
|
+
"count" => 1,
|
163
|
+
"numbers" => [
|
164
|
+
{"country" => "ES","msisdn" => "34911067000","type" => "landline"}
|
165
|
+
]
|
166
|
+
}.to_json, :headers => {'Content-Type' => 'application/json'})
|
161
167
|
res = subject.get_numbers
|
162
|
-
res.
|
163
|
-
res.success
|
164
|
-
res['count'].
|
165
|
-
res['numbers'].
|
166
|
-
res['numbers'].first.
|
167
|
-
res['numbers'].first.
|
168
|
-
request.
|
168
|
+
expect(res).to be_kind_of(::Hash)
|
169
|
+
expect(res.success?).to be_truthy
|
170
|
+
expect(res['count']).to eq(1)
|
171
|
+
expect(res['numbers']).to be_kind_of(::Array)
|
172
|
+
expect(res['numbers'].first).to be_kind_of(::Hash)
|
173
|
+
expect(res['numbers'].first).to eq({"country" => "ES","msisdn" => "34911067000","type" => "landline"})
|
174
|
+
expect(request).to have_been_made.once
|
169
175
|
end
|
170
176
|
end
|
171
177
|
|
@@ -176,11 +182,11 @@ describe ::Nexmos::Account do
|
|
176
182
|
|
177
183
|
it 'should success top up' do
|
178
184
|
request = stub_request(:get, "https://rest.nexmo.com/account/top-up?api_key=default_key&api_secret=default_secret&trx=test_trx").
|
179
|
-
with(webmock_default_headers).to_return(:status => 200, :body => '', :headers => {})
|
185
|
+
with(webmock_default_headers).to_return(:status => 200, :body => '', :headers => {'Content-Type' => 'application/json'})
|
180
186
|
res = subject.top_up :trx => 'test_trx'
|
181
|
-
res.
|
182
|
-
res.success
|
183
|
-
request.
|
187
|
+
expect(res).to be_kind_of(::Hash)
|
188
|
+
expect(res.success?).to be_truthy
|
189
|
+
expect(request).to have_been_made.once
|
184
190
|
end
|
185
191
|
|
186
192
|
end
|
data/spec/nexmos/base_spec.rb
CHANGED
@@ -4,9 +4,9 @@ describe ::Nexmos::Base do
|
|
4
4
|
let(:webmock_default_headers) do
|
5
5
|
{
|
6
6
|
:headers => {
|
7
|
-
'Accept'=>'application/json',
|
8
|
-
'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
|
9
|
-
'User-Agent'=> ::Nexmos.user_agent
|
7
|
+
'Accept' => 'application/json',
|
8
|
+
'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
|
9
|
+
'User-Agent' => ::Nexmos.user_agent
|
10
10
|
}
|
11
11
|
}
|
12
12
|
end
|
@@ -14,20 +14,28 @@ describe ::Nexmos::Base do
|
|
14
14
|
before(:each) do
|
15
15
|
::Nexmos.reset!
|
16
16
|
end
|
17
|
+
|
17
18
|
context 'class' do
|
18
|
-
subject {
|
19
|
+
subject { described_class }
|
19
20
|
let(:default_faraday_options) do
|
20
21
|
{
|
21
|
-
:url
|
22
|
+
:url => 'https://rest.nexmo.com',
|
22
23
|
:headers => {
|
23
|
-
:accept
|
24
|
+
:accept => 'application/json',
|
24
25
|
:user_agent => ::Nexmos.user_agent
|
25
26
|
}
|
26
27
|
}
|
27
28
|
end
|
28
29
|
|
29
|
-
|
30
|
-
|
30
|
+
describe '#faraday_options' do
|
31
|
+
subject { super().faraday_options }
|
32
|
+
it { is_expected.to eq(default_faraday_options) }
|
33
|
+
end
|
34
|
+
|
35
|
+
describe '#connection' do
|
36
|
+
subject { super().connection }
|
37
|
+
it { is_expected.to be_kind_of(::Faraday::Connection) }
|
38
|
+
end
|
31
39
|
|
32
40
|
context 'faraday_options' do
|
33
41
|
it 'should have custom user agent' do
|
@@ -35,14 +43,14 @@ describe ::Nexmos::Base do
|
|
35
43
|
c.user_agent = 'test user agent'
|
36
44
|
end
|
37
45
|
default_faraday_options[:headers][:user_agent] = 'test user agent'
|
38
|
-
subject.faraday_options.
|
46
|
+
expect(subject.faraday_options).to eq(default_faraday_options)
|
39
47
|
end
|
40
48
|
end
|
41
49
|
|
42
50
|
context 'define_api_calls' do
|
43
51
|
it 'should call define_method' do
|
44
52
|
::Nexmos.apis[:account].keys.each do |k|
|
45
|
-
subject.
|
53
|
+
expect(subject).to receive(:define_method).with(k)
|
46
54
|
end
|
47
55
|
subject.define_api_calls(:account)
|
48
56
|
end
|
@@ -50,7 +58,7 @@ describe ::Nexmos::Base do
|
|
50
58
|
it 'should define dynamic method and call make_api_call inside' do
|
51
59
|
subject.define_api_calls(:account)
|
52
60
|
instance = subject.new('test_key', 'test_secret')
|
53
|
-
instance.
|
61
|
+
expect(instance).to receive(:make_api_call).with(::Nexmos.apis[:account][:get_balance], {})
|
54
62
|
instance.get_balance
|
55
63
|
end
|
56
64
|
end
|
@@ -61,140 +69,143 @@ describe ::Nexmos::Base do
|
|
61
69
|
subject { ::Nexmos::Base.new('test_api', 'test_secret') }
|
62
70
|
context 'new' do
|
63
71
|
it 'should raise on empty api_key' do
|
64
|
-
expect {::Nexmos::Base.new('', 'test_secret')}.to raise_error('api_key should be set')
|
72
|
+
expect { ::Nexmos::Base.new('', 'test_secret') }.to raise_error('api_key should be set')
|
65
73
|
end
|
66
74
|
it 'should raise on empty api_secret' do
|
67
|
-
expect {::Nexmos::Base.new('test_key', '')}.to raise_error('api_secret should be set')
|
75
|
+
expect { ::Nexmos::Base.new('test_key', '') }.to raise_error('api_secret should be set')
|
68
76
|
end
|
69
77
|
it 'should set default_params with values from ::Nexmos module' do
|
70
78
|
::Nexmos.setup do |c|
|
71
|
-
c.api_key
|
79
|
+
c.api_key = 'default_key'
|
72
80
|
c.api_secret = 'default_secret'
|
73
81
|
end
|
74
82
|
instance = ::Nexmos::Base.new
|
75
|
-
instance.instance_variable_get('@default_params').
|
83
|
+
expect(instance.instance_variable_get('@default_params')).to eq({ 'api_key' => 'default_key', 'api_secret' => 'default_secret' })
|
76
84
|
end
|
77
85
|
it 'should set default_params with custom api key and secret' do
|
78
86
|
instance = ::Nexmos::Base.new('test_key', 'test_secret')
|
79
|
-
instance.instance_variable_get('@default_params').
|
87
|
+
expect(instance.instance_variable_get('@default_params')).to eq({ 'api_key' => 'test_key', 'api_secret' => 'test_secret' })
|
80
88
|
end
|
81
89
|
end
|
82
90
|
|
83
|
-
|
91
|
+
describe '#connection' do
|
92
|
+
subject { super().connection }
|
93
|
+
it { is_expected.to be_kind_of(::Faraday::Connection) }
|
94
|
+
end
|
84
95
|
|
85
96
|
context 'make_api_call' do
|
86
97
|
|
87
98
|
before(:each) do
|
88
99
|
stub_request(:get, "https://rest.nexmo.com/test/url?api_key=test_api&api_secret=test_secret").
|
89
|
-
|
90
|
-
|
100
|
+
with(:headers => { 'Accept' => 'application/json', 'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'User-Agent' => ::Nexmos.user_agent }).
|
101
|
+
to_return(:status => 200, :body => { 'key' => 'value' }.to_json, :headers => { 'Content-Type' => 'application/json' })
|
91
102
|
end
|
92
103
|
|
93
104
|
let(:api_params_without_required) do
|
94
105
|
{
|
95
106
|
:method => :get,
|
96
|
-
:url
|
107
|
+
:url => '/test/url'
|
97
108
|
}
|
98
109
|
end
|
99
110
|
|
100
111
|
let(:api_params_with_required) do
|
101
112
|
{
|
102
|
-
:method
|
103
|
-
:url
|
113
|
+
:method => :get,
|
114
|
+
:url => '/test/url',
|
104
115
|
:required => %w(key1 key2)
|
105
116
|
}
|
106
117
|
end
|
107
118
|
|
108
119
|
it 'should call check_required_params' do
|
109
|
-
subject.
|
120
|
+
expect(subject).to receive(:check_required_params)
|
110
121
|
subject.make_api_call(api_params_with_required)
|
111
122
|
end
|
112
123
|
|
113
124
|
it 'should raise if all required params missing' do
|
114
|
-
expect{subject.make_api_call(api_params_with_required)}.to raise_error('key1,key2 params required')
|
125
|
+
expect { subject.make_api_call(api_params_with_required) }.to raise_error('key1,key2 params required')
|
115
126
|
end
|
116
127
|
|
117
128
|
it 'should raise if some required params missing' do
|
118
|
-
expect{subject.make_api_call(api_params_with_required,{:key1 => 'val'})}.to raise_error('key2 params required')
|
129
|
+
expect { subject.make_api_call(api_params_with_required, { :key1 => 'val' }) }.to raise_error('key2 params required')
|
119
130
|
end
|
120
131
|
|
121
132
|
it 'should call normalize_params' do
|
122
|
-
subject.
|
133
|
+
expect(subject).to receive(:normalize_params).and_call_original
|
123
134
|
subject.make_api_call(api_params_without_required)
|
124
135
|
end
|
125
136
|
|
126
137
|
it 'should not call camelize_params' do
|
127
138
|
stub_request(:get, "https://rest.nexmo.com/test/url?api_key=test_api&api_secret=test_secret&test_call=value").
|
128
|
-
|
129
|
-
|
130
|
-
subject.
|
131
|
-
subject.make_api_call(api_params_without_required, {'test_call' => 'value'})
|
139
|
+
with(webmock_default_headers).
|
140
|
+
to_return(:status => 200, :body => {}.to_json, :headers => { 'Content-Type' => 'application/json' })
|
141
|
+
expect(subject).not_to receive(:camelize_params)
|
142
|
+
subject.make_api_call(api_params_without_required, { 'test_call' => 'value' })
|
132
143
|
end
|
133
144
|
|
134
145
|
it 'should call camelize_params' do
|
135
146
|
stub_request(:get, "https://rest.nexmo.com/test/url?api_key=test_api&api_secret=test_secret&testCall=value").
|
136
|
-
|
137
|
-
|
138
|
-
subject.
|
139
|
-
subject.make_api_call(api_params_without_required.merge(:camelize => true), {'test_call' => 'value'})
|
147
|
+
with(webmock_default_headers).
|
148
|
+
to_return(:status => 200, :body => {}.to_json, :headers => { 'Content-Type' => 'application/json' })
|
149
|
+
expect(subject).to receive(:camelize_params).and_call_original
|
150
|
+
subject.make_api_call(api_params_without_required.merge(:camelize => true), { 'test_call' => 'value' })
|
140
151
|
end
|
141
152
|
|
142
153
|
it 'should call get_response' do
|
143
154
|
stub_request(:get, "https://rest.nexmo.com/test/url?api_key=test_api&api_secret=test_secret").
|
144
|
-
|
145
|
-
|
146
|
-
subject.
|
155
|
+
with(webmock_default_headers).
|
156
|
+
to_return(:status => 200, :body => {}.to_json, :headers => { 'Content-Type' => 'application/json' })
|
157
|
+
expect(subject).to receive(:get_response).and_call_original
|
147
158
|
subject.make_api_call(api_params_without_required)
|
148
159
|
end
|
149
160
|
|
150
161
|
it 'should return hash' do
|
151
|
-
subject.make_api_call(api_params_without_required).
|
162
|
+
expect(subject.make_api_call(api_params_without_required)).to be_a_kind_of(::Hash)
|
152
163
|
end
|
153
164
|
|
154
165
|
it 'should return Hashie::Mash' do
|
155
|
-
subject.make_api_call(api_params_without_required).
|
166
|
+
expect(subject.make_api_call(api_params_without_required)).to be_a_kind_of(::Hashie::Mash)
|
156
167
|
end
|
157
168
|
|
158
169
|
it 'should respond to success? method in result' do
|
159
|
-
subject.make_api_call(api_params_without_required).
|
170
|
+
expect(subject.make_api_call(api_params_without_required)).to respond_to(:success?)
|
160
171
|
end
|
161
172
|
|
162
173
|
it 'should have success? key in hash' do
|
163
|
-
subject.make_api_call(api_params_without_required)[:success?].
|
174
|
+
expect(subject.make_api_call(api_params_without_required)[:success?]).to be
|
164
175
|
end
|
165
176
|
|
166
177
|
it 'should have success? == true' do
|
167
|
-
subject.make_api_call(api_params_without_required)[:success?].
|
178
|
+
expect(subject.make_api_call(api_params_without_required)[:success?]).to be_truthy
|
168
179
|
end
|
169
180
|
|
170
181
|
it 'should have success? == false on response with status != 200' do
|
171
182
|
stub_request(:get, "https://rest.nexmo.com/test/url?api_key=test_api&api_secret=test_secret&testCall=value").
|
172
|
-
|
173
|
-
|
174
|
-
res = subject.make_api_call(api_params_without_required.merge(:camelize => true), {'test_call' => 'value'})
|
175
|
-
res[:success?].
|
176
|
-
res[:failed?].
|
177
|
-
res[:not_authorized?].
|
183
|
+
with(webmock_default_headers).
|
184
|
+
to_return(:status => 410, :body => {}.to_json, :headers => { 'Content-Type' => 'application/json' })
|
185
|
+
res = subject.make_api_call(api_params_without_required.merge(:camelize => true), { 'test_call' => 'value' })
|
186
|
+
expect(res[:success?]).to be_falsey
|
187
|
+
expect(res[:failed?]).to be_falsey
|
188
|
+
expect(res[:not_authorized?]).to be_falsey
|
178
189
|
end
|
179
190
|
|
180
191
|
it 'should have not_authorized? == true' do
|
181
192
|
stub_request(:get, "https://rest.nexmo.com/test/url?api_key=test_api&api_secret=test_secret&testCall=value").
|
182
|
-
|
183
|
-
|
184
|
-
res = subject.make_api_call(api_params_without_required.merge(:camelize => true), {'test_call' => 'value'})
|
185
|
-
res[:success?].
|
186
|
-
res[:not_authorized?].
|
187
|
-
res[:failed?].
|
193
|
+
with(webmock_default_headers).
|
194
|
+
to_return(:status => 401, :body => {}.to_json, :headers => { 'Content-Type' => 'application/json' })
|
195
|
+
res = subject.make_api_call(api_params_without_required.merge(:camelize => true), { 'test_call' => 'value' })
|
196
|
+
expect(res[:success?]).to be_falsey
|
197
|
+
expect(res[:not_authorized?]).to be_truthy
|
198
|
+
expect(res[:failed?]).to be_falsey
|
188
199
|
end
|
189
200
|
|
190
201
|
it 'should have failed? == true' do
|
191
202
|
stub_request(:get, "https://rest.nexmo.com/test/url?api_key=test_api&api_secret=test_secret&testCall=value").
|
192
|
-
|
193
|
-
|
194
|
-
res = subject.make_api_call(api_params_without_required.merge(:camelize => true), {'test_call' => 'value'})
|
195
|
-
res[:success?].
|
196
|
-
res[:not_authorized?].
|
197
|
-
res[:failed?].
|
203
|
+
with(webmock_default_headers).
|
204
|
+
to_return(:status => 420, :body => {}.to_json, :headers => { 'Content-Type' => 'application/json' })
|
205
|
+
res = subject.make_api_call(api_params_without_required.merge(:camelize => true), { 'test_call' => 'value' })
|
206
|
+
expect(res[:success?]).to be_falsey
|
207
|
+
expect(res[:not_authorized?]).to be_falsey
|
208
|
+
expect(res[:failed?]).to be_truthy
|
198
209
|
end
|
199
210
|
|
200
211
|
end
|