edh 0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,143 @@
1
+ require 'spec_helper'
2
+
3
+ describe "EDH::Passport::API" do
4
+ before(:each) do
5
+ @service = EDH::Passport::API.new
6
+ end
7
+
8
+ it "doesn't include an access token if none was given" do
9
+ EDH.should_receive(:make_request).with(
10
+ anything,
11
+ hash_not_including('access_token' => 1),
12
+ anything,
13
+ anything
14
+ ).and_return(EDH::HTTPService::Response.new(200, "", ""))
15
+
16
+ @service.api('anything')
17
+ end
18
+
19
+ it "includes an access token if given" do
20
+ token = 'adfadf'
21
+ service = EDH::Passport::API.new token
22
+
23
+ EDH.should_receive(:make_request).with(
24
+ anything,
25
+ hash_including('access_token' => token),
26
+ anything,
27
+ anything
28
+ ).and_return(EDH::HTTPService::Response.new(200, "", ""))
29
+
30
+ service.api('anything')
31
+ end
32
+
33
+ it "has an attr_reader for access token" do
34
+ token = 'adfadf'
35
+ service = EDH::Passport::API.new token
36
+ service.access_token.should == token
37
+ end
38
+
39
+ it "gets the attribute of a EDH::HTTPService::Response given by the http_component parameter" do
40
+ http_component = :method_name
41
+
42
+ response = mock('Mock EDHResponse', :body => '', :status => 200)
43
+ result = stub("result")
44
+ response.stub(http_component).and_return(result)
45
+ EDH.stub(:make_request).and_return(response)
46
+
47
+ @service.api('anything', {}, 'get', :http_component => http_component).should == result
48
+ end
49
+
50
+ it "returns the entire response if http_component => :response" do
51
+ http_component = :response
52
+ response = mock('Mock EDHResponse', :body => '', :status => 200)
53
+ EDH.stub(:make_request).and_return(response)
54
+ @service.api('anything', {}, 'get', :http_component => http_component).should == response
55
+ end
56
+
57
+ it "turns arrays of non-enumerables into comma-separated arguments" do
58
+ args = [12345, {:foo => [1, 2, "3", :four]}]
59
+ expected = ["/12345", {:foo => "1,2,3,four"}, "get", {}]
60
+ response = mock('Mock EDHResponse', :body => '', :status => 200)
61
+ EDH.should_receive(:make_request).with(*expected).and_return(response)
62
+ @service.api(*args)
63
+ end
64
+
65
+ it "doesn't turn arrays containing enumerables into comma-separated strings" do
66
+ params = {:foo => [1, 2, ["3"], :four]}
67
+ args = [12345, params]
68
+ # we leave this as is -- the HTTP layer can either handle it appropriately
69
+ # (if appropriate behavior is defined)
70
+ # or raise an exception
71
+ expected = ["/12345", params, "get", {}]
72
+ response = mock('Mock EDHResponse', :body => '', :status => 200)
73
+ EDH.should_receive(:make_request).with(*expected).and_return(response)
74
+ @service.api(*args)
75
+ end
76
+
77
+ it "returns the body of the request as JSON if no http_component is given" do
78
+ response = stub('response', :body => 'body', :status => 200)
79
+ EDH.stub(:make_request).and_return(response)
80
+
81
+ json_body = mock('JSON body')
82
+ MultiJson.stub(:load).and_return([json_body])
83
+
84
+ @service.api('anything').should == json_body
85
+ end
86
+
87
+ it "executes an error checking block if provided" do
88
+ response = EDH::HTTPService::Response.new(200, '{}', {})
89
+ EDH.stub(:make_request).and_return(response)
90
+
91
+ yield_test = mock('Yield Tester')
92
+ yield_test.should_receive(:pass)
93
+
94
+ @service.api('anything', {}, "get") do |arg|
95
+ yield_test.pass
96
+ arg.should == response
97
+ end
98
+ end
99
+
100
+ it "raises an API error if the HTTP response code is greater than or equal to 500" do
101
+ EDH.stub(:make_request).and_return(EDH::HTTPService::Response.new(500, 'response body', {}))
102
+
103
+ lambda { @service.api('anything') }.should raise_exception(EDH::Passport::APIError)
104
+ end
105
+
106
+ it "handles rogue true/false as responses" do
107
+ EDH.should_receive(:make_request).and_return(EDH::HTTPService::Response.new(200, 'true', {}))
108
+ @service.api('anything').should be_true
109
+
110
+ EDH.should_receive(:make_request).and_return(EDH::HTTPService::Response.new(200, 'false', {}))
111
+ @service.api('anything').should be_false
112
+ end
113
+
114
+ describe "with regard to leading slashes" do
115
+ it "adds a leading / to the path if not present" do
116
+ path = "anything"
117
+ EDH.should_receive(:make_request).with("/#{path}", anything, anything, anything).and_return(EDH::HTTPService::Response.new(200, 'true', {}))
118
+ @service.api(path)
119
+ end
120
+
121
+ it "doesn't change the path if a leading / is present" do
122
+ path = "/anything"
123
+ EDH.should_receive(:make_request).with(path, anything, anything, anything).and_return(EDH::HTTPService::Response.new(200, 'true', {}))
124
+ @service.api(path)
125
+ end
126
+ end
127
+
128
+ describe "with an access token" do
129
+ before(:each) do
130
+ @api = EDH::Passport::API.new(@token)
131
+ end
132
+
133
+ it_should_behave_like "EDH RestAPI"
134
+ end
135
+
136
+ describe "without an access token" do
137
+ before(:each) do
138
+ @api = EDH::Passport::API.new
139
+ end
140
+
141
+ it_should_behave_like "EDH RestAPI"
142
+ end
143
+ end
@@ -0,0 +1,64 @@
1
+ require 'spec_helper'
2
+
3
+ describe EDH do
4
+
5
+
6
+ it "has an http_service accessor" do
7
+ EDH.should respond_to(:http_service)
8
+ EDH.should respond_to(:http_service=)
9
+ end
10
+
11
+ describe "constants" do
12
+ it "has a version" do
13
+ EDH.const_defined?("VERSION").should be_true
14
+ end
15
+
16
+ describe EDH::Passport do
17
+ it "defines REST_SERVER" do
18
+ EDH::Passport::REST_SERVER.should == "passport.everydayhero.com/api/v1"
19
+ end
20
+ end
21
+ end
22
+
23
+ context "for deprecated services" do
24
+ before :each do
25
+ @service = EDH.http_service
26
+ end
27
+
28
+ after :each do
29
+ EDH.http_service = @service
30
+ end
31
+
32
+ it "invokes deprecated_interface if present" do
33
+ mock_service = stub("http service")
34
+ mock_service.should_receive(:deprecated_interface)
35
+ EDH.http_service = mock_service
36
+ end
37
+
38
+ it "does not set the service if it's deprecated" do
39
+ mock_service = stub("http service")
40
+ mock_service.stub(:deprecated_interface)
41
+ EDH.http_service = mock_service
42
+ EDH.http_service.should == @service
43
+ end
44
+
45
+ it "sets the service if it's not deprecated" do
46
+ mock_service = stub("http service")
47
+ EDH.http_service = mock_service
48
+ EDH.http_service.should == mock_service
49
+ end
50
+ end
51
+
52
+ describe "make_request" do
53
+ it "passes all its arguments to the http_service" do
54
+ path = "foo"
55
+ args = {:a => 2}
56
+ verb = "get"
57
+ options = {:c => :d}
58
+
59
+ EDH.http_service.should_receive(:make_request).with(path, args, verb, options)
60
+ EDH.make_request(path, args, verb, options)
61
+ end
62
+ end
63
+
64
+ end
@@ -0,0 +1,5 @@
1
+ require 'spec_helper'
2
+
3
+ describe EDHTest do
4
+ pending "should have tests, because the test suite depends on it"
5
+ end
@@ -0,0 +1,104 @@
1
+ require 'spec_helper'
2
+
3
+ describe EDH::Passport::APIError do
4
+ it "is a EDH::EDHError" do
5
+ EDH::Passport::APIError.new(nil, nil).should be_a(EDH::EDHError)
6
+ end
7
+
8
+ [:pp_error_type, :pp_error_code, :pp_error_subcode, :pp_error_message, :http_status, :response_body].each do |accessor|
9
+ it "has an accessor for #{accessor}" do
10
+ EDH::Passport::APIError.instance_methods.map(&:to_sym).should include(accessor)
11
+ EDH::Passport::APIError.instance_methods.map(&:to_sym).should include(:"#{accessor}=")
12
+ end
13
+ end
14
+
15
+ it "sets http_status to the provided status" do
16
+ error_response = '{ "error": {"type": "foo", "other_details": "bar"} }'
17
+ EDH::Passport::APIError.new(400, error_response).response_body.should == error_response
18
+ end
19
+
20
+ it "sets response_body to the provided response body" do
21
+ EDH::Passport::APIError.new(400, '').http_status.should == 400
22
+ end
23
+
24
+ context "with an error_info hash" do
25
+ let(:error) {
26
+ error_info = {
27
+ 'type' => 'type',
28
+ 'message' => 'message',
29
+ 'code' => 1,
30
+ 'error_subcode' => 'subcode'
31
+ }
32
+ EDH::Passport::APIError.new(400, '', error_info)
33
+ }
34
+
35
+ {
36
+ :pp_error_type => 'type',
37
+ :pp_error_message => 'message',
38
+ :pp_error_code => 1,
39
+ :pp_error_subcode => 'subcode'
40
+ }.each_pair do |accessor, value|
41
+ it "sets #{accessor} to #{value}" do
42
+ error.send(accessor).should == value
43
+ end
44
+ end
45
+
46
+ it "sets the error message \"type: error_info['type'], code: error_info['code'], error_subcode: error_info['error_subcode'], message: error_info['message'] [HTTP http_status]\"" do
47
+ error.message.should == "type: type, code: 1, error_subcode: subcode, message: message [HTTP 400]"
48
+ end
49
+ end
50
+
51
+ context "with an error_info string" do
52
+ it "sets the error message \"error_info [HTTP http_status]\"" do
53
+ error_info = "Passport is down."
54
+ error = EDH::Passport::APIError.new(400, '', error_info)
55
+ error.message.should == "Passport is down. [HTTP 400]"
56
+ end
57
+ end
58
+
59
+ context "with no error_info and a response_body containing error JSON" do
60
+ it "should extract the error info from the response body" do
61
+ response_body = '{ "error": { "type": "type", "message": "message", "code": 1, "error_subcode": "subcode" } }'
62
+ error = EDH::Passport::APIError.new(400, response_body)
63
+ {
64
+ :pp_error_type => 'type',
65
+ :pp_error_message => 'message',
66
+ :pp_error_code => 1,
67
+ :pp_error_subcode => 'subcode'
68
+ }.each_pair do |accessor, value|
69
+ error.send(accessor).should == value
70
+ end
71
+ end
72
+ end
73
+
74
+ end
75
+
76
+ describe EDH::EDHError do
77
+ it "is a StandardError" do
78
+ EDH::EDHError.new.should be_a(StandardError)
79
+ end
80
+ end
81
+
82
+ describe EDH::Passport::BadPassportResponse do
83
+ it "is a EDH::Passport::APIError" do
84
+ EDH::Passport::BadPassportResponse.new(nil, nil).should be_a(EDH::Passport::APIError)
85
+ end
86
+ end
87
+
88
+ describe EDH::Passport::ServerError do
89
+ it "is a EDH::Passport::APIError" do
90
+ EDH::Passport::ServerError.new(nil, nil).should be_a(EDH::Passport::APIError)
91
+ end
92
+ end
93
+
94
+ describe EDH::Passport::ClientError do
95
+ it "is a EDH::Passport::APIError" do
96
+ EDH::Passport::ClientError.new(nil, nil).should be_a(EDH::Passport::APIError)
97
+ end
98
+ end
99
+
100
+ describe EDH::Passport::AuthenticationError do
101
+ it "is a EDH::Passport::ClientError" do
102
+ EDH::Passport::AuthenticationError.new(nil, nil).should be_a(EDH::Passport::ClientError)
103
+ end
104
+ end
@@ -0,0 +1,324 @@
1
+ require 'spec_helper'
2
+
3
+ describe "EDH::HTTPService" do
4
+ it "has a faraday_middleware accessor" do
5
+ EDH::HTTPService.methods.map(&:to_sym).should include(:faraday_middleware)
6
+ EDH::HTTPService.methods.map(&:to_sym).should include(:faraday_middleware=)
7
+ end
8
+
9
+ it "has an http_options accessor" do
10
+ EDH::HTTPService.should respond_to(:http_options)
11
+ EDH::HTTPService.should respond_to(:http_options=)
12
+ end
13
+
14
+ it "sets http_options to {} by default" do
15
+ EDH::HTTPService.http_options.should == {}
16
+ end
17
+
18
+ describe "DEFAULT_MIDDLEWARE" do
19
+ before :each do
20
+ @builder = stub("Faraday connection builder")
21
+ @builder.stub(:request)
22
+ @builder.stub(:adapter)
23
+ @builder.stub(:use)
24
+ end
25
+
26
+ it "is defined" do
27
+ EDH::HTTPService.const_defined?("DEFAULT_MIDDLEWARE").should be_true
28
+ end
29
+
30
+ it "adds multipart" do
31
+ @builder.should_receive(:use).with(EDH::HTTPService::MultipartRequest)
32
+ EDH::HTTPService::DEFAULT_MIDDLEWARE.call(@builder)
33
+ end
34
+
35
+ it "adds url_encoded" do
36
+ @builder.should_receive(:request).with(:url_encoded)
37
+ EDH::HTTPService::DEFAULT_MIDDLEWARE.call(@builder)
38
+ end
39
+
40
+ it "uses the default adapter" do
41
+ adapter = :testing_now
42
+ Faraday.stub(:default_adapter).and_return(adapter)
43
+ @builder.should_receive(:adapter).with(adapter)
44
+ EDH::HTTPService::DEFAULT_MIDDLEWARE.call(@builder)
45
+ end
46
+ end
47
+
48
+ describe ".encode_params" do
49
+ it "returns an empty string if param_hash evaluates to false" do
50
+ EDH::HTTPService.encode_params(nil).should == ''
51
+ end
52
+
53
+ it "converts values to JSON if the value is not a String" do
54
+ val = 'json_value'
55
+ not_a_string = 'not_a_string'
56
+ not_a_string.stub(:is_a?).and_return(false)
57
+ MultiJson.should_receive(:dump).with(not_a_string).and_return(val)
58
+
59
+ string = "hi"
60
+
61
+ args = {
62
+ not_a_string => not_a_string,
63
+ string => string
64
+ }
65
+
66
+ result = EDH::HTTPService.encode_params(args)
67
+ result.split('&').find do |key_and_val|
68
+ key_and_val.match("#{not_a_string}=#{val}")
69
+ end.should be_true
70
+ end
71
+
72
+ it "escapes all values" do
73
+ args = Hash[*(1..4).map {|i| [i.to_s, "Value #{i}($"]}.flatten]
74
+
75
+ result = EDH::HTTPService.encode_params(args)
76
+ result.split('&').each do |key_val|
77
+ key, val = key_val.split('=')
78
+ val.should == CGI.escape(args[key])
79
+ end
80
+ end
81
+
82
+ it "encodes parameters in alphabetical order" do
83
+ args = {:b => '2', 'a' => '1'}
84
+
85
+ result = EDH::HTTPService.encode_params(args)
86
+ result.split('&').map{|key_val| key_val.split('=')[0]}.should == ['a', 'b']
87
+ end
88
+
89
+ it "converts all keys to Strings" do
90
+ args = Hash[*(1..4).map {|i| [i, "val#{i}"]}.flatten]
91
+
92
+ result = EDH::HTTPService.encode_params(args)
93
+ result.split('&').each do |key_val|
94
+ key, val = key_val.split('=')
95
+ key.should == args.find{|key_val_arr| key_val_arr.last == val}.first.to_s
96
+ end
97
+ end
98
+ end
99
+
100
+ describe ".make_request" do
101
+ before :each do
102
+ # Setup stubs for make_request to execute without exceptions
103
+ @mock_body = stub('Typhoeus response body')
104
+ @mock_headers_hash = stub({:value => "headers hash"})
105
+ @mock_http_response = stub("Faraday Response", :status => 200, :headers => @mock_headers_hash, :body => @mock_body)
106
+
107
+ @mock_connection = stub("Faraday connection")
108
+ @mock_connection.stub(:get).and_return(@mock_http_response)
109
+ @mock_connection.stub(:post).and_return(@mock_http_response)
110
+ Faraday.stub(:new).and_return(@mock_connection)
111
+ end
112
+
113
+ describe "creating the Faraday connection" do
114
+ it "creates a Faraday connection using the server" do
115
+ server = "foo"
116
+ EDH::HTTPService.stub(:server).and_return(server)
117
+ Faraday.should_receive(:new).with(server, anything).and_return(@mock_connection)
118
+ EDH::HTTPService.make_request("anything", {}, "anything")
119
+ end
120
+
121
+ it "merges EDH::HTTPService.http_options into the request params" do
122
+ http_options = {:a => 2, :c => "3"}
123
+ EDH::HTTPService.http_options = http_options
124
+ Faraday.should_receive(:new).with(anything, hash_including(http_options)).and_return(@mock_connection)
125
+ EDH::HTTPService.make_request("anything", {}, "get")
126
+ end
127
+
128
+ it "merges any provided options into the request params" do
129
+ options = {:a => 2, :c => "3"}
130
+ Faraday.should_receive(:new).with(anything, hash_including(options)).and_return(@mock_connection)
131
+ EDH::HTTPService.make_request("anything", {}, "get", options)
132
+ end
133
+
134
+ it "overrides EDH::HTTPService.http_options with any provided options for the request params" do
135
+ options = {:a => 2, :c => "3"}
136
+ http_options = {:a => :a}
137
+ EDH::HTTPService.stub(:http_options).and_return(http_options)
138
+
139
+ Faraday.should_receive(:new).with(anything, hash_including(http_options.merge(options))).and_return(@mock_connection)
140
+ EDH::HTTPService.make_request("anything", {}, "get", options)
141
+ end
142
+
143
+ it "allows you to set other verify modes if you really want" do
144
+ options = {:ssl => {:verify => :foo}}
145
+ Faraday.should_receive(:new).with(anything, hash_including(options)).and_return(@mock_connection)
146
+ EDH::HTTPService.make_request("anything", {"access_token" => "foo"}, "get", options)
147
+ end
148
+
149
+ it "calls server with the composite options" do
150
+ options = {:a => 2, :c => "3"}
151
+ http_options = {:a => :a}
152
+ EDH::HTTPService.stub(:http_options).and_return(http_options)
153
+ EDH::HTTPService.should_receive(:server).with(hash_including(http_options.merge(options))).and_return("foo")
154
+ EDH::HTTPService.make_request("anything", {}, "get", options)
155
+ end
156
+
157
+ it "uses the default builder block if HTTPService.faraday_middleware block is not defined" do
158
+ block = Proc.new {}
159
+ stub_const("EDH::HTTPService::DEFAULT_MIDDLEWARE", block)
160
+ EDH::HTTPService.stub(:faraday_middleware).and_return(nil)
161
+ Faraday.should_receive(:new).with(anything, anything, &block).and_return(@mock_connection)
162
+ EDH::HTTPService.make_request("anything", {}, "get")
163
+ end
164
+
165
+ it "uses the defined HTTPService.faraday_middleware block if defined" do
166
+ block = Proc.new { }
167
+ EDH::HTTPService.should_receive(:faraday_middleware).and_return(block)
168
+ Faraday.should_receive(:new).with(anything, anything, &block).and_return(@mock_connection)
169
+ EDH::HTTPService.make_request("anything", {}, "get")
170
+ end
171
+ end
172
+
173
+ it "makes a POST request if the verb isn't get" do
174
+ @mock_connection.should_receive(:post).and_return(@mock_http_response)
175
+ EDH::HTTPService.make_request("anything", {}, "anything")
176
+ end
177
+
178
+ it "includes the verb in the body if the verb isn't get" do
179
+ verb = "eat"
180
+ @mock_connection.should_receive(:post).with(anything, hash_including("method" => verb)).and_return(@mock_http_response)
181
+ EDH::HTTPService.make_request("anything", {}, verb)
182
+ end
183
+
184
+ it "makes a GET request if the verb is get" do
185
+ @mock_connection.should_receive(:get).and_return(@mock_http_response)
186
+ EDH::HTTPService.make_request("anything", {}, "get")
187
+ end
188
+
189
+ describe "for GETs" do
190
+ it "submits the arguments in the body" do
191
+ # technically this is done for all requests, but you don't send GET requests with files
192
+ args = {"a" => :b, "c" => 3}
193
+ Faraday.should_receive(:new).with(anything, hash_including(:params => args)).and_return(@mock_connection)
194
+ EDH::HTTPService.make_request("anything", args, "get")
195
+ end
196
+
197
+ it "submits nothing to the body" do
198
+ # technically this is done for all requests, but you don't send GET requests with files
199
+ args = {"a" => :b, "c" => 3}
200
+ @mock_connection.should_receive(:get).with(anything, {}).and_return(@mock_http_response)
201
+ EDH::HTTPService.make_request("anything", args, "get")
202
+ end
203
+
204
+ it "logs verb, url and params to debug" do
205
+ args = {"a" => :b, "c" => 3}
206
+ log_message_stem = "GET: anything params: "
207
+ EDH::Utils.logger.should_receive(:debug) do |log_message|
208
+ # unordered hashes are a bane
209
+ # Ruby in 1.8 modes tends to return different hash orderings,
210
+ # which makes checking the content of the stringified hash hard
211
+ # it's enough just to ensure that there's hash content in the string, I think
212
+ log_message.should include(log_message_stem)
213
+ log_message.match(/\{.*\}/).should_not be_nil
214
+ end
215
+
216
+ EDH::HTTPService.make_request("anything", args, "get")
217
+ end
218
+ end
219
+
220
+ describe "for POSTs" do
221
+ it "submits the arguments in the body" do
222
+ # technically this is done for all requests, but you don't send GET requests with files
223
+ args = {"a" => :b, "c" => 3}
224
+ @mock_connection.should_receive(:post).with(anything, hash_including(args)).and_return(@mock_http_response)
225
+ EDH::HTTPService.make_request("anything", args, "post")
226
+ end
227
+
228
+ it "logs verb, url and params to debug" do
229
+ args = {"a" => :b, "c" => 3}
230
+ log_message_stem = "POST: anything params: "
231
+ EDH::Utils.logger.should_receive(:debug) do |log_message|
232
+ # unordered hashes are a bane
233
+ # Ruby in 1.8 modes tends to return different hash orderings,
234
+ # which makes checking the content of the stringified hash hard
235
+ # it's enough just to ensure that there's hash content in the string, I think
236
+ log_message.should include(log_message_stem)
237
+ log_message.match(/\{.*\}/).should_not be_nil
238
+ end
239
+ EDH::HTTPService.make_request("anything", args, "post")
240
+ end
241
+ end
242
+ end
243
+
244
+ describe "deprecated options" do
245
+ before :each do
246
+ EDH::HTTPService.stub(:http_options).and_return({})
247
+ @service = EDH.http_service
248
+ end
249
+
250
+ after :each do
251
+ EDH.http_service = @service
252
+ end
253
+
254
+ describe "per-request options" do
255
+ before :each do
256
+ # Setup stubs for make_request to execute without exceptions
257
+ @mock_body = stub('Typhoeus response body')
258
+ @mock_headers_hash = stub({:value => "headers hash"})
259
+ @mock_http_response = stub("Faraday Response", :status => 200, :headers => @mock_headers_hash, :body => @mock_body)
260
+
261
+ @mock_connection = stub("Faraday connection")
262
+ @mock_connection.stub(:get).and_return(@mock_http_response)
263
+ @mock_connection.stub(:post).and_return(@mock_http_response)
264
+ Faraday.stub(:new).and_return(@mock_connection)
265
+ end
266
+
267
+ describe ":typhoeus_options" do
268
+ it "merges any typhoeus_options into options" do
269
+ typhoeus_options = {:a => 2}
270
+ Faraday.should_receive(:new).with(anything, hash_including(typhoeus_options)).and_return(@mock_connection)
271
+ EDH::HTTPService.make_request("anything", {}, "get", :typhoeus_options => typhoeus_options)
272
+ end
273
+
274
+ it "deletes the typhoeus_options key" do
275
+ typhoeus_options = {:a => 2}
276
+ Faraday.should_receive(:new).with(anything, hash_not_including(:typhoeus_options => typhoeus_options)).and_return(@mock_connection)
277
+ EDH::HTTPService.make_request("anything", {}, "get", :typhoeus_options => typhoeus_options)
278
+ end
279
+ end
280
+
281
+ describe ":ca_path" do
282
+ it "sets any ca_path into options[:ssl]" do
283
+ ca_path = :foo
284
+ Faraday.should_receive(:new).with(anything, hash_including(:ssl => hash_including(:ca_path => ca_path))).and_return(@mock_connection)
285
+ EDH::HTTPService.make_request("anything", {}, "get", :ca_path => ca_path)
286
+ end
287
+
288
+ it "deletes the ca_path key" do
289
+ ca_path = :foo
290
+ Faraday.should_receive(:new).with(anything, hash_not_including(:ca_path => ca_path)).and_return(@mock_connection)
291
+ EDH::HTTPService.make_request("anything", {}, "get", :ca_path => ca_path)
292
+ end
293
+ end
294
+
295
+ describe ":ca_file" do
296
+ it "sets any ca_file into options[:ssl]" do
297
+ ca_file = :foo
298
+ Faraday.should_receive(:new).with(anything, hash_including(:ssl => hash_including(:ca_file => ca_file))).and_return(@mock_connection)
299
+ EDH::HTTPService.make_request("anything", {}, "get", :ca_file => ca_file)
300
+ end
301
+
302
+ it "deletes the ca_file key" do
303
+ ca_file = :foo
304
+ Faraday.should_receive(:new).with(anything, hash_not_including(:ca_file => ca_file)).and_return(@mock_connection)
305
+ EDH::HTTPService.make_request("anything", {}, "get", :ca_file => ca_file)
306
+ end
307
+ end
308
+
309
+ describe ":verify_mode" do
310
+ it "sets any verify_mode into options[:ssl]" do
311
+ verify_mode = :foo
312
+ Faraday.should_receive(:new).with(anything, hash_including(:ssl => hash_including(:verify_mode => verify_mode))).and_return(@mock_connection)
313
+ EDH::HTTPService.make_request("anything", {}, "get", :verify_mode => verify_mode)
314
+ end
315
+
316
+ it "deletes the verify_mode key" do
317
+ verify_mode = :foo
318
+ Faraday.should_receive(:new).with(anything, hash_not_including(:verify_mode => verify_mode)).and_return(@mock_connection)
319
+ EDH::HTTPService.make_request("anything", {}, "get", :verify_mode => verify_mode)
320
+ end
321
+ end
322
+ end
323
+ end
324
+ end