spark_api 1.4.28 → 1.5.0

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.
Files changed (71) hide show
  1. checksums.yaml +5 -13
  2. data/README.md +1 -1
  3. data/VERSION +1 -1
  4. data/lib/spark_api/authentication/api_auth.rb +1 -1
  5. data/lib/spark_api/authentication/oauth2.rb +1 -1
  6. data/lib/spark_api/authentication/oauth2_impl/grant_type_base.rb +1 -1
  7. data/lib/spark_api/client.rb +2 -2
  8. data/lib/spark_api/models.rb +1 -0
  9. data/lib/spark_api/models/account.rb +7 -1
  10. data/lib/spark_api/models/account_report.rb +0 -5
  11. data/lib/spark_api/models/floplan.rb +24 -0
  12. data/lib/spark_api/models/listing.rb +11 -1
  13. data/lib/spark_api/models/subresource.rb +2 -2
  14. data/lib/spark_api/request.rb +2 -2
  15. data/script/reso_middleware_example.rb +70 -0
  16. data/spec/fixtures/listings/floplans_index.json +15 -0
  17. data/spec/spec_helper.rb +9 -4
  18. data/spec/unit/spark_api/authentication/api_auth_spec.rb +21 -22
  19. data/spec/unit/spark_api/authentication/base_auth_spec.rb +3 -3
  20. data/spec/unit/spark_api/authentication/oauth2_impl/faraday_middleware_spec.rb +1 -1
  21. data/spec/unit/spark_api/authentication/oauth2_impl/grant_type_base_spec.rb +1 -1
  22. data/spec/unit/spark_api/authentication/oauth2_impl/single_session_provider_spec.rb +2 -2
  23. data/spec/unit/spark_api/authentication/oauth2_spec.rb +40 -40
  24. data/spec/unit/spark_api/authentication_spec.rb +2 -2
  25. data/spec/unit/spark_api/configuration/yaml_spec.rb +44 -44
  26. data/spec/unit/spark_api/configuration_spec.rb +56 -57
  27. data/spec/unit/spark_api/faraday_middleware_spec.rb +12 -12
  28. data/spec/unit/spark_api/models/account_report_spec.rb +2 -22
  29. data/spec/unit/spark_api/models/account_spec.rb +24 -21
  30. data/spec/unit/spark_api/models/activity_spec.rb +5 -5
  31. data/spec/unit/spark_api/models/base_spec.rb +32 -32
  32. data/spec/unit/spark_api/models/concerns/destroyable_spec.rb +2 -2
  33. data/spec/unit/spark_api/models/concerns/savable_spec.rb +19 -19
  34. data/spec/unit/spark_api/models/connect_prefs_spec.rb +1 -1
  35. data/spec/unit/spark_api/models/constraint_spec.rb +1 -1
  36. data/spec/unit/spark_api/models/contact_spec.rb +50 -50
  37. data/spec/unit/spark_api/models/dirty_spec.rb +12 -12
  38. data/spec/unit/spark_api/models/document_spec.rb +3 -3
  39. data/spec/unit/spark_api/models/fields_spec.rb +17 -17
  40. data/spec/unit/spark_api/models/finders_spec.rb +7 -7
  41. data/spec/unit/spark_api/models/floplan_spec.rb +24 -0
  42. data/spec/unit/spark_api/models/listing_cart_spec.rb +46 -46
  43. data/spec/unit/spark_api/models/listing_meta_translations_spec.rb +6 -6
  44. data/spec/unit/spark_api/models/listing_spec.rb +91 -91
  45. data/spec/unit/spark_api/models/message_spec.rb +10 -10
  46. data/spec/unit/spark_api/models/note_spec.rb +10 -10
  47. data/spec/unit/spark_api/models/notification_spec.rb +6 -6
  48. data/spec/unit/spark_api/models/open_house_spec.rb +4 -4
  49. data/spec/unit/spark_api/models/photo_spec.rb +8 -8
  50. data/spec/unit/spark_api/models/portal_spec.rb +4 -4
  51. data/spec/unit/spark_api/models/property_types_spec.rb +5 -5
  52. data/spec/unit/spark_api/models/rental_calendar_spec.rb +13 -11
  53. data/spec/unit/spark_api/models/rule_spec.rb +2 -2
  54. data/spec/unit/spark_api/models/saved_search_spec.rb +33 -33
  55. data/spec/unit/spark_api/models/search_template/quick_search_spec.rb +5 -5
  56. data/spec/unit/spark_api/models/shared_listing_spec.rb +12 -12
  57. data/spec/unit/spark_api/models/sort_spec.rb +3 -3
  58. data/spec/unit/spark_api/models/standard_fields_spec.rb +12 -12
  59. data/spec/unit/spark_api/models/subresource_spec.rb +33 -15
  60. data/spec/unit/spark_api/models/system_info_spec.rb +7 -7
  61. data/spec/unit/spark_api/models/tour_of_home_spec.rb +3 -3
  62. data/spec/unit/spark_api/models/video_spec.rb +9 -9
  63. data/spec/unit/spark_api/models/virtual_tour_spec.rb +7 -7
  64. data/spec/unit/spark_api/models/vow_account_spec.rb +8 -8
  65. data/spec/unit/spark_api/multi_client_spec.rb +14 -14
  66. data/spec/unit/spark_api/options_hash_spec.rb +4 -4
  67. data/spec/unit/spark_api/paginate_spec.rb +71 -71
  68. data/spec/unit/spark_api/primary_array_spec.rb +5 -5
  69. data/spec/unit/spark_api/request_spec.rb +65 -59
  70. data/spec/unit/spark_api_spec.rb +6 -6
  71. metadata +215 -280
@@ -3,8 +3,8 @@ require './spec/spec_helper'
3
3
  describe SparkApi::Authentication::BaseAuth do
4
4
  subject {SparkApi::Authentication::BaseAuth.new(nil) }
5
5
  it "should raise an error" do
6
- expect {subject.authenticate()}.to raise_error(){ |e| e.message.should == "Implement me!"}
7
- expect {subject.logout()}.to raise_error(){ |e| e.message.should == "Implement me!"}
8
- expect {subject.request(nil, nil, nil, nil)}.to raise_error(){ |e| e.message.should == "Implement me!"}
6
+ expect {subject.authenticate()}.to raise_error(){ |e| expect(e.message).to eq("Implement me!")}
7
+ expect {subject.logout()}.to raise_error(){ |e| expect(e.message).to eq("Implement me!")}
8
+ expect {subject.request(nil, nil, nil, nil)}.to raise_error(){ |e| expect(e.message).to eq("Implement me!")}
9
9
  end
10
10
  end
@@ -10,7 +10,7 @@ describe SparkApi::Authentication::OAuth2Impl::SparkbarFaradayMiddleware do
10
10
  :status => 201
11
11
  }
12
12
  subject.on_complete env
13
- env[:body]["token"].should eq("sp4rkb4rt0k3n")
13
+ expect(env[:body]["token"]).to eq("sp4rkb4rt0k3n")
14
14
  end
15
15
 
16
16
  it "should raise error on unsuccessful response" do
@@ -4,6 +4,6 @@ describe SparkApi::Authentication::OAuth2Impl::GrantTypeBase do
4
4
  subject { SparkApi::Authentication::OAuth2Impl::GrantTypeBase }
5
5
  # Make sure the client boostraps the right plugin based on configuration.
6
6
  it "create should " do
7
- expect {subject.create(nil, InvalidAuth2Provider.new())}.to raise_error(SparkApi::ClientError){ |e| e.message.should == "Unsupported grant type [not_a_real_type]" }
7
+ expect {subject.create(nil, InvalidAuth2Provider.new())}.to raise_error(SparkApi::ClientError){ |e| expect(e.message).to eq("Unsupported grant type [not_a_real_type]") }
8
8
  end
9
9
  end
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe SparkApi::Authentication::SingleSessionProvider do
4
4
  subject { SparkApi::Authentication::SingleSessionProvider.new({ :access_token => "the_token" }) }
5
5
  it "should initialize a new session with access_token" do
6
- subject.load_session.should respond_to(:access_token)
7
- subject.load_session.access_token.should eq("the_token")
6
+ expect(subject.load_session).to respond_to(:access_token)
7
+ expect(subject.load_session.access_token).to eq("the_token")
8
8
  end
9
9
  end
@@ -11,7 +11,7 @@ describe SparkApi::Authentication::OAuth2 do
11
11
  # Make sure the client boostraps the right plugin based on configuration.
12
12
  describe "plugin" do
13
13
  it "should load the oauth2 authenticator" do
14
- client.authenticator.class.should eq(SparkApi::Authentication::OAuth2)
14
+ expect(client.authenticator.class).to eq(SparkApi::Authentication::OAuth2)
15
15
  end
16
16
  end
17
17
  describe "authenticate" do
@@ -21,8 +21,8 @@ describe SparkApi::Authentication::OAuth2 do
21
21
  '{"client_id":"example-id","client_secret":"example-password","code":"my_code","grant_type":"authorization_code","redirect_uri":"https://exampleapp.fbsdata.com/oauth-callback"}'
22
22
  ).
23
23
  to_return(:body => fixture("oauth2/access.json"), :status=>200)
24
- subject.authenticate.access_token.should eq("04u7h-4cc355-70k3n")
25
- subject.authenticate.expires_in.should eq(57600)
24
+ expect(subject.authenticate.access_token).to eq("04u7h-4cc355-70k3n")
25
+ expect(subject.authenticate.expires_in).to eq(57600)
26
26
  end
27
27
 
28
28
  it "should raise an error when api credentials are invalid" do
@@ -31,7 +31,7 @@ describe SparkApi::Authentication::OAuth2 do
31
31
  '{"client_id":"example-id","client_secret":"example-password","code":"my_code","grant_type":"authorization_code","redirect_uri":"https://exampleapp.fbsdata.com/oauth-callback"}'
32
32
  ).
33
33
  to_return(:body => fixture("oauth2/error.json"), :status=>400)
34
- expect {subject.authenticate()}.to raise_error(SparkApi::ClientError){ |e| e.status.should == 400 }
34
+ expect {subject.authenticate()}.to raise_error(SparkApi::ClientError){ |e| expect(e.status).to eq(400) }
35
35
  end
36
36
 
37
37
  end
@@ -40,16 +40,16 @@ describe SparkApi::Authentication::OAuth2 do
40
40
  let(:session) { Object.new }
41
41
  it "should return true when session is active" do
42
42
  subject.session = session
43
- session.stub(:expired?) { false }
44
- subject.authenticated?.should eq(true)
43
+ allow(session).to receive(:expired?) { false }
44
+ expect(subject.authenticated?).to eq(true)
45
45
  end
46
46
  it "should return false when session is expired" do
47
47
  subject.session = session
48
- session.stub(:expired?) { true }
49
- subject.authenticated?.should eq(false)
48
+ allow(session).to receive(:expired?) { true }
49
+ expect(subject.authenticated?).to eq(false)
50
50
  end
51
51
  it "should return false when session is uninitialized" do
52
- subject.authenticated?.should eq(false)
52
+ expect(subject.authenticated?).to eq(false)
53
53
  end
54
54
  end
55
55
 
@@ -58,11 +58,11 @@ describe SparkApi::Authentication::OAuth2 do
58
58
  it "should logout when there is an active session" do
59
59
  subject.session = session
60
60
  subject.logout
61
- subject.session.should eq(nil)
61
+ expect(subject.session).to eq(nil)
62
62
  end
63
63
  it "should skip logging out when there is no active session information" do
64
- client.stub(:delete) { raise "Should not be called" }
65
- subject.logout.should eq(nil)
64
+ allow(client).to receive(:delete) { raise "Should not be called" }
65
+ expect(subject.logout).to eq(nil)
66
66
  end
67
67
  end
68
68
 
@@ -79,7 +79,7 @@ describe SparkApi::Authentication::OAuth2 do
79
79
  with(:query => args).
80
80
  to_return(:body => fixture("listings/no_subresources.json"))
81
81
  subject.session = session
82
- subject.request(:get, "/#{SparkApi.version}/listings", nil, args).status.should eq(200)
82
+ expect(subject.request(:get, "/#{SparkApi.version}/listings", nil, args).status).to eq(200)
83
83
  end
84
84
  it "should handle a post request" do
85
85
  subject.session = session
@@ -95,7 +95,7 @@ describe SparkApi::Authentication::OAuth2 do
95
95
  }]}
96
96
  }',
97
97
  :status=>201)
98
- subject.request(:post, "/#{SparkApi.version}/contacts", contact, args).status.should eq(201)
98
+ expect(subject.request(:post, "/#{SparkApi.version}/contacts", contact, args).status).to eq(201)
99
99
  end
100
100
  end
101
101
 
@@ -106,7 +106,7 @@ describe SparkApi::Authentication::OAuth2 do
106
106
  with(:body => "access_token=#{session.access_token}").
107
107
  to_return(:body => '{"token":"sp4rkb4rt0k3n"}')
108
108
  subject.session = session
109
- subject.sparkbar_token.should eq("sp4rkb4rt0k3n")
109
+ expect(subject.sparkbar_token).to eq("sp4rkb4rt0k3n")
110
110
  end
111
111
  it "should raise an error on missing sparkbar token" do
112
112
  c = stub_request(:post, "https://test.sparkplatform.com/appbar/authorize").
@@ -142,9 +142,9 @@ describe SparkApi::Authentication::OAuth2 do
142
142
  to_return(:body => fixture('errors/expired.json'), :status => 401).times(1).then.
143
143
  to_return(:body => fixture('listings/with_documents.json'))
144
144
  client.get("/listings/1234")
145
- count.should eq(1)
146
- refresh_count.should eq(1)
147
- client.session.expired?.should eq(false)
145
+ expect(count).to eq(1)
146
+ expect(refresh_count).to eq(1)
147
+ expect(client.session.expired?).to eq(false)
148
148
  end
149
149
  end
150
150
  context "and an invalid refresh token" do
@@ -164,8 +164,8 @@ describe SparkApi::Authentication::OAuth2 do
164
164
  to_return(:body => fixture('listings/with_documents.json'))
165
165
 
166
166
  client.get("/listings/1234")
167
- count.should eq(2)
168
- client.session.expired?.should eq(false)
167
+ expect(count).to eq(2)
168
+ expect(client.session.expired?).to eq(false)
169
169
  end
170
170
  end
171
171
  end
@@ -186,16 +186,16 @@ describe SparkApi::Authentication::OpenIdOAuth2Hybrid do
186
186
  end
187
187
  describe "plugin" do
188
188
  it "should load the hybrid authenticator" do
189
- client.authenticator.class.should eq(SparkApi::Authentication::OpenIdOAuth2Hybrid)
189
+ expect(client.authenticator.class).to eq(SparkApi::Authentication::OpenIdOAuth2Hybrid)
190
190
  end
191
191
  end
192
192
 
193
193
  describe "#authorization_url" do
194
194
  it "should include combined flow parameter" do
195
- client.authenticator.authorization_url.should match("openid.spark.combined_flow=true")
195
+ expect(client.authenticator.authorization_url).to match("openid.spark.combined_flow=true")
196
196
  end
197
197
  it "should allow custom parameters" do
198
- client.authenticator.authorization_url({"joshua" => "iscool"}).should match("joshua=iscool")
198
+ expect(client.authenticator.authorization_url({"joshua" => "iscool"})).to match("joshua=iscool")
199
199
  end
200
200
  end
201
201
  end
@@ -215,24 +215,24 @@ describe SparkApi::Authentication::OpenId do
215
215
 
216
216
  describe "plugin" do
217
217
  it "should not include combined flow parameter" do
218
- client.authenticator.authorization_url.should_not match("openid.spark.combined_flow=true")
218
+ expect(client.authenticator.authorization_url).not_to match("openid.spark.combined_flow=true")
219
219
  end
220
220
  it "should load the oauth2 authenticator" do
221
- client.authenticator.class.should eq(SparkApi::Authentication::OpenId)
221
+ expect(client.authenticator.class).to eq(SparkApi::Authentication::OpenId)
222
222
  end
223
223
  end
224
224
 
225
225
  describe "#authorization_url" do
226
226
  it "should allow custom parameters" do
227
- client.authenticator.authorization_url({"joshua" => "iscool"}).should match("joshua=iscool")
227
+ expect(client.authenticator.authorization_url({"joshua" => "iscool"})).to match("joshua=iscool")
228
228
  end
229
229
  end
230
230
 
231
231
  describe "forbidden methods" do
232
232
  it "should not allow authentication" do
233
- lambda {
233
+ expect {
234
234
  client.authenticate
235
- }.should raise_error(RuntimeError)
235
+ }.to raise_error(RuntimeError)
236
236
  end
237
237
  end
238
238
  end
@@ -240,12 +240,12 @@ end
240
240
  describe SparkApi::Authentication::BaseOAuth2Provider do
241
241
  context "session_timeout" do
242
242
  it "should provide a default" do
243
- subject.session_timeout.should eq(86400)
243
+ expect(subject.session_timeout).to eq(86400)
244
244
  end
245
245
  describe TestOAuth2Provider do
246
246
  subject { TestOAuth2Provider.new }
247
247
  it "should be able to override the session timeout" do
248
- subject.session_timeout.should eq(57600)
248
+ expect(subject.session_timeout).to eq(57600)
249
249
  end
250
250
  end
251
251
  end
@@ -260,18 +260,18 @@ describe "password authentication" do
260
260
  with(:body =>
261
261
  '{"client_id":"example-id","client_secret":"example-secret","grant_type":"password","password":"example-password","username":"example-user"}'
262
262
  ).to_return(:body => fixture("oauth2/access.json"), :status=>200)
263
- subject.authenticate.access_token.should eq("04u7h-4cc355-70k3n")
264
- subject.authenticate.expires_in.should eq(60)
263
+ expect(subject.authenticate.access_token).to eq("04u7h-4cc355-70k3n")
264
+ expect(subject.authenticate.expires_in).to eq(60)
265
265
  end
266
266
  end
267
267
  describe SparkApi::Authentication::OAuth2Impl do
268
268
  it "should load a provider" do
269
269
  example = "SparkApi::Authentication::OAuth2Impl::CLIProvider"
270
- SparkApi::Authentication::OAuth2Impl.load_provider(example,{}).class.to_s.should eq(example)
270
+ expect(SparkApi::Authentication::OAuth2Impl.load_provider(example,{}).class.to_s).to eq(example)
271
271
  prefix = "::#{example}"
272
- SparkApi::Authentication::OAuth2Impl.load_provider(prefix,{}).class.to_s.should eq(example)
272
+ expect(SparkApi::Authentication::OAuth2Impl.load_provider(prefix,{}).class.to_s).to eq(example)
273
273
  bad_example = "Derp::Derp::Derp::DerpProvider"
274
- expect{SparkApi::Authentication::OAuth2Impl.load_provider(bad_example,{}).class.to_s.should eq(bad_example)}.to raise_error(ArgumentError)
274
+ expect{expect(SparkApi::Authentication::OAuth2Impl.load_provider(bad_example,{}).class.to_s).to eq(bad_example)}.to raise_error(ArgumentError)
275
275
  end
276
276
 
277
277
  end
@@ -286,8 +286,8 @@ describe SparkApi::Authentication::OAuthSession do
286
286
  "start_time" => "2012-01-01T00:00:00+00:00"
287
287
  }
288
288
  session = SparkApi::Authentication::OAuthSession.new(args)
289
- session.start_time.should eq(DateTime.parse(args["start_time"]))
290
- JSON.parse(session.to_json).should eq(args)
289
+ expect(session.start_time).to eq(DateTime.parse(args["start_time"]))
290
+ expect(JSON.parse(session.to_json)).to eq(args)
291
291
  end
292
292
 
293
293
  it "should accept symbolized parameters" do
@@ -299,12 +299,12 @@ describe SparkApi::Authentication::OAuthSession do
299
299
  :start_time => "2012-01-01T00:00:00+00:00"
300
300
  }
301
301
  session = SparkApi::Authentication::OAuthSession.new(args)
302
- session.start_time.should eq(DateTime.parse(args[:start_time]))
303
- JSON.parse(session.to_json).should eq(JSON.parse(args.to_json))
302
+ expect(session.start_time).to eq(DateTime.parse(args[:start_time]))
303
+ expect(JSON.parse(session.to_json)).to eq(JSON.parse(args.to_json))
304
304
  end
305
305
 
306
306
  it "should not expire if expires_in is nil" do
307
307
  session = SparkApi::Authentication::OAuthSession.new
308
- session.expired?.should eq(false)
308
+ expect(session.expired?).to eq(false)
309
309
  end
310
310
  end
@@ -13,7 +13,7 @@ describe SparkApi::Authentication do
13
13
  client = SparkApi.client
14
14
  stub_auth_request
15
15
  session = client.get "/session/c401736bf3d3f754f07c04e460e09573"
16
- session[0]["AuthToken"].should eq("c401736bf3d3f754f07c04e460e09573")
16
+ expect(session[0]["AuthToken"]).to eq("c401736bf3d3f754f07c04e460e09573")
17
17
  end
18
18
  it "should delete a session" do
19
19
  stub_auth_request
@@ -26,7 +26,7 @@ describe SparkApi::Authentication do
26
26
  to_return(:body => fixture("success.json"))
27
27
  client = SparkApi.client
28
28
  client.logout
29
- client.session.should eq(nil)
29
+ expect(client.session).to eq(nil)
30
30
  end
31
31
 
32
32
  end
@@ -4,70 +4,70 @@ describe SparkApi::Configuration::YamlConfig, "Yaml Config" do
4
4
  describe "api auth" do
5
5
  let(:api_file){ "spec/config/spark_api/test_key.yml" }
6
6
  it "should load a configured api key for development" do
7
- subject.stub(:env){ {} }
8
- subject.api_env.should eq("development")
7
+ allow(subject).to receive(:env){ {} }
8
+ expect(subject.api_env).to eq("development")
9
9
  subject.load_file(api_file)
10
- subject.oauth2?.should eq(false)
11
- subject.ssl_verify?.should eq(false)
12
- subject.api_key.should eq("demo_key")
13
- subject.api_secret.should eq("t3sts3cr3t")
14
- subject.endpoint.should eq("https://developers.sparkapi.com")
15
- subject.name.should eq("test_key")
16
- subject.client_keys.keys.should =~ [:api_key, :api_secret, :endpoint, :ssl_verify]
17
- subject.oauth2_keys.keys.should eq([])
10
+ expect(subject.oauth2?).to eq(false)
11
+ expect(subject.ssl_verify?).to eq(false)
12
+ expect(subject.api_key).to eq("demo_key")
13
+ expect(subject.api_secret).to eq("t3sts3cr3t")
14
+ expect(subject.endpoint).to eq("https://developers.sparkapi.com")
15
+ expect(subject.name).to eq("test_key")
16
+ expect(subject.client_keys.keys).to match_array([:api_key, :api_secret, :endpoint, :ssl_verify])
17
+ expect(subject.oauth2_keys.keys).to eq([])
18
18
  end
19
19
  it "should load a configured api key for production" do
20
- subject.stub(:env){ {"SPARK_API_ENV" => "production"} }
21
- subject.api_env.should eq("production")
20
+ allow(subject).to receive(:env){ {"SPARK_API_ENV" => "production"} }
21
+ expect(subject.api_env).to eq("production")
22
22
  subject.load_file(api_file)
23
- subject.oauth2?.should eq(false)
24
- subject.api_key.should eq("prod_demo_key")
25
- subject.api_secret.should eq("prod_t3sts3cr3t")
26
- subject.endpoint.should eq("https://api.sparkapi.com")
23
+ expect(subject.oauth2?).to eq(false)
24
+ expect(subject.api_key).to eq("prod_demo_key")
25
+ expect(subject.api_secret).to eq("prod_t3sts3cr3t")
26
+ expect(subject.endpoint).to eq("https://api.sparkapi.com")
27
27
  end
28
28
  it "should raise an error for a bad configuration" do
29
- subject.stub(:env){ {} }
29
+ allow(subject).to receive(:env){ {} }
30
30
  expect { subject.load_file("spec/config/spark_api/some_random_key.yml")}.to raise_error
31
- subject.stub(:env){ {"RAILS_ENV" => "fake_env"} }
31
+ allow(subject).to receive(:env){ {"RAILS_ENV" => "fake_env"} }
32
32
  expect { subject.load_file(api_file)}.to raise_error
33
33
  end
34
34
  end
35
35
  describe "oauth2" do
36
36
  let(:oauth2_file){ "spec/config/spark_api/test_oauth.yml" }
37
37
  it "should load a configured api key for development" do
38
- subject.stub(:env){ {} }
39
- subject.api_env.should eq("development")
38
+ allow(subject).to receive(:env){ {} }
39
+ expect(subject.api_env).to eq("development")
40
40
  subject.load_file(oauth2_file)
41
- subject.oauth2?.should eq(true)
42
- subject.authorization_uri.should eq("https://developers.sparkplatform.com/oauth2")
43
- subject.access_uri.should eq("https://developers.sparkapi.com/v1/oauth2/grant")
44
- subject.redirect_uri.should eq("http://localhost/oauth2/callback")
45
- subject.client_id.should eq("developmentid124nj4qu3pua")
46
- subject.client_secret.should eq("developmentsecret4orkp29f")
47
- subject.endpoint.should eq("https://developers.sparkapi.com")
48
- subject.oauth2_provider.should eq("SparkApi::TestOAuth2Provider")
49
- subject.name.should eq("test_oauth")
50
- subject.client_keys.keys.should =~ [:endpoint, :oauth2_provider]
51
- subject.oauth2_keys.keys.should =~ [:authorization_uri, :client_id, :access_uri, :client_secret, :redirect_uri, :sparkbar_uri]
41
+ expect(subject.oauth2?).to eq(true)
42
+ expect(subject.authorization_uri).to eq("https://developers.sparkplatform.com/oauth2")
43
+ expect(subject.access_uri).to eq("https://developers.sparkapi.com/v1/oauth2/grant")
44
+ expect(subject.redirect_uri).to eq("http://localhost/oauth2/callback")
45
+ expect(subject.client_id).to eq("developmentid124nj4qu3pua")
46
+ expect(subject.client_secret).to eq("developmentsecret4orkp29f")
47
+ expect(subject.endpoint).to eq("https://developers.sparkapi.com")
48
+ expect(subject.oauth2_provider).to eq("SparkApi::TestOAuth2Provider")
49
+ expect(subject.name).to eq("test_oauth")
50
+ expect(subject.client_keys.keys).to match_array([:endpoint, :oauth2_provider])
51
+ expect(subject.oauth2_keys.keys).to match_array([:authorization_uri, :client_id, :access_uri, :client_secret, :redirect_uri, :sparkbar_uri])
52
52
  end
53
53
  it "should load a configured api key for production" do
54
- subject.stub(:env){ {"SPARK_API_ENV" => "production"} }
55
- subject.api_env.should eq("production")
54
+ allow(subject).to receive(:env){ {"SPARK_API_ENV" => "production"} }
55
+ expect(subject.api_env).to eq("production")
56
56
  subject.load_file(oauth2_file)
57
- subject.oauth2?.should eq(true)
58
- subject.authorization_uri.should eq("https://sparkplatform.com/oauth2")
59
- subject.access_uri.should eq("https://api.sparkapi.com/v1/oauth2/grant")
60
- subject.redirect_uri.should eq("http://localhost/oauth2/callback")
61
- subject.client_id.should eq("production1id124nj4qu3pua")
62
- subject.client_secret.should eq("productionsecret4orkp29fv")
63
- subject.endpoint.should eq("https://api.sparkapi.com")
64
- subject.oauth2_provider.should eq(subject.class::DEFAULT_OAUTH2_PROVIDER)
65
- subject.name.should eq("test_oauth")
57
+ expect(subject.oauth2?).to eq(true)
58
+ expect(subject.authorization_uri).to eq("https://sparkplatform.com/oauth2")
59
+ expect(subject.access_uri).to eq("https://api.sparkapi.com/v1/oauth2/grant")
60
+ expect(subject.redirect_uri).to eq("http://localhost/oauth2/callback")
61
+ expect(subject.client_id).to eq("production1id124nj4qu3pua")
62
+ expect(subject.client_secret).to eq("productionsecret4orkp29fv")
63
+ expect(subject.endpoint).to eq("https://api.sparkapi.com")
64
+ expect(subject.oauth2_provider).to eq(subject.class::DEFAULT_OAUTH2_PROVIDER)
65
+ expect(subject.name).to eq("test_oauth")
66
66
  end
67
67
 
68
68
  it "should list available keys" do
69
- SparkApi::Configuration::YamlConfig.stub(:config_path) { "spec/config/spark_api" }
70
- subject.class.config_keys.should =~ ["test_key", "test_oauth", "test_single_session_oauth"]
69
+ allow(SparkApi::Configuration::YamlConfig).to receive(:config_path) { "spec/config/spark_api" }
70
+ expect(subject.class.config_keys).to match_array(["test_key", "test_oauth", "test_single_session_oauth"])
71
71
  end
72
72
  end
73
73
  end
@@ -3,18 +3,18 @@ require './spec/spec_helper'
3
3
  describe SparkApi::Client, "Client config" do
4
4
  describe "default settings" do
5
5
  it "should return the proper defaults when called with no arguments" do
6
- SparkApi.api_key.should be_nil
7
- SparkApi.api_secret.should be_nil
8
- SparkApi.version.should match("v1")
9
- SparkApi.ssl_verify.should be_true
10
- SparkApi.auth_endpoint.should match("sparkplatform.com/openid")
11
- SparkApi.endpoint.should match("api.sparkapi.com")
12
- SparkApi.user_agent.should match(/Spark API Ruby Gem .*/)
6
+ expect(SparkApi.api_key).to be_nil
7
+ expect(SparkApi.api_secret).to be_nil
8
+ expect(SparkApi.version).to match("v1")
9
+ expect(SparkApi.ssl_verify).to be true
10
+ expect(SparkApi.auth_endpoint).to match("sparkplatform.com/openid")
11
+ expect(SparkApi.endpoint).to match("api.sparkapi.com")
12
+ expect(SparkApi.user_agent).to match(/Spark API Ruby Gem .*/)
13
13
  SparkApi.api_key = "my_api_key"
14
- SparkApi.api_key.should match("my_api_key")
15
- SparkApi.timeout.should eq(5)
16
- SparkApi.request_id_chain.should be_nil
17
- SparkApi.middleware.should eq('spark_api')
14
+ expect(SparkApi.api_key).to match("my_api_key")
15
+ expect(SparkApi.timeout).to eq(5)
16
+ expect(SparkApi.request_id_chain).to be_nil
17
+ expect(SparkApi.middleware).to eq('spark_api')
18
18
  end
19
19
  end
20
20
 
@@ -28,30 +28,30 @@ describe SparkApi::Client, "Client config" do
28
28
  :timeout => 15,
29
29
  :request_id_chain => 'foobar')
30
30
 
31
- client.api_key.should match("key_of_wade")
32
- client.api_secret.should match("TopSecret")
33
- client.api_user.should match("1234")
34
- client.auth_endpoint.should match("https://login.wade.dev.fbsdata.com")
35
- client.endpoint.should match("http://api.wade.dev.fbsdata.com")
36
- client.version.should match("v1")
37
- client.timeout.should eq(15)
38
- client.request_id_chain.should eq('foobar')
31
+ expect(client.api_key).to match("key_of_wade")
32
+ expect(client.api_secret).to match("TopSecret")
33
+ expect(client.api_user).to match("1234")
34
+ expect(client.auth_endpoint).to match("https://login.wade.dev.fbsdata.com")
35
+ expect(client.endpoint).to match("http://api.wade.dev.fbsdata.com")
36
+ expect(client.version).to match("v1")
37
+ expect(client.timeout).to eq(15)
38
+ expect(client.request_id_chain).to eq('foobar')
39
39
  end
40
40
 
41
41
  it "should allow unverified ssl certificates when verification is off" do
42
42
  client = SparkApi::Client.new(:auth_endpoint => "https://login.wade.dev.fbsdata.com",
43
43
  :endpoint => "https://api.wade.dev.fbsdata.com",
44
44
  :ssl_verify => false)
45
- client.ssl_verify.should be_false
46
- client.connection.ssl.verify.should be_false
45
+ expect(client.ssl_verify).to be false
46
+ expect(client.connection.ssl.verify).to be false
47
47
  end
48
48
 
49
49
  it "should allow restrict ssl certificates when verification is on" do
50
50
  client = SparkApi::Client.new(:auth_endpoint => "https://login.wade.dev.fbsdata.com",
51
51
  :endpoint => "https://api.wade.dev.fbsdata.com",
52
52
  :ssl_verify => true)
53
- client.ssl_verify.should be_true
54
- client.connection.ssl.should be_empty
53
+ expect(client.ssl_verify).to be true
54
+ expect(client.connection.ssl).to be_empty
55
55
  end
56
56
  end
57
57
 
@@ -67,11 +67,11 @@ describe SparkApi::Client, "Client config" do
67
67
 
68
68
  it "should convert the configuration to oauth2 when specified" do
69
69
  oauth2_client.oauthify!
70
- oauth2_client.oauth2_provider.should be_a(SparkApi::Authentication::SimpleProvider)
70
+ expect(oauth2_client.oauth2_provider).to be_a(SparkApi::Authentication::SimpleProvider)
71
71
  end
72
72
 
73
73
  it "should say oauth2_enabled? when it is" do
74
- oauth2_client.oauth2_enabled?().should be_true
74
+ expect(oauth2_client.oauth2_enabled?()).to be true
75
75
  end
76
76
 
77
77
  it "should say oauth2_enabled? is false" do
@@ -80,11 +80,11 @@ describe SparkApi::Client, "Client config" do
80
80
  :callback => "http://wade.dev.fbsdata.com/callback",
81
81
  :auth_endpoint => "https://login.wade.dev.fbsdata.com",
82
82
  :endpoint => "http://api.wade.dev.fbsdata.com")
83
- client.oauth2_enabled?().should be_false
83
+ expect(client.oauth2_enabled?()).to be false
84
84
  end
85
85
 
86
86
  it "should properly build a grant_uri from the endpoint" do
87
- oauth2_client.grant_uri.should eq("http://api.wade.dev.fbsdata.com/v1/oauth2/grant")
87
+ expect(oauth2_client.grant_uri).to eq("http://api.wade.dev.fbsdata.com/v1/oauth2/grant")
88
88
  end
89
89
  end
90
90
 
@@ -100,14 +100,14 @@ describe SparkApi::Client, "Client config" do
100
100
  config.timeout = 15
101
101
  end
102
102
 
103
- SparkApi.api_key.should match("my_key")
104
- SparkApi.api_secret.should match("my_secret")
105
- SparkApi.api_user.should match("1234")
106
- SparkApi.version.should match("veleventy")
107
- SparkApi.endpoint.should match("test.api.sparkapi.com")
108
- SparkApi.user_agent.should match("my useragent")
109
- SparkApi.oauth2_enabled?().should be_false
110
- SparkApi.timeout.should eq(15)
103
+ expect(SparkApi.api_key).to match("my_key")
104
+ expect(SparkApi.api_secret).to match("my_secret")
105
+ expect(SparkApi.api_user).to match("1234")
106
+ expect(SparkApi.version).to match("veleventy")
107
+ expect(SparkApi.endpoint).to match("test.api.sparkapi.com")
108
+ expect(SparkApi.user_agent).to match("my useragent")
109
+ expect(SparkApi.oauth2_enabled?()).to be false
110
+ expect(SparkApi.timeout).to eq(15)
111
111
  end
112
112
 
113
113
  it "should correctly set up the client for oauth2" do
@@ -120,7 +120,7 @@ describe SparkApi::Client, "Client config" do
120
120
  config.user_agent = "my useragent"
121
121
  config.authentication_mode = SparkApi::Authentication::OAuth2
122
122
  end
123
- SparkApi.oauth2_enabled?().should be_true
123
+ expect(SparkApi.oauth2_enabled?()).to be true
124
124
  end
125
125
 
126
126
  it "should reset" do
@@ -133,12 +133,11 @@ describe SparkApi::Client, "Client config" do
133
133
  config.request_id_chain = 'foobar'
134
134
  end
135
135
 
136
- SparkApi.api_key.should match("my_key")
137
- SparkApi.request_id_chain.should eq("foobar")
136
+ expect(SparkApi.api_key).to match("my_key")
137
+ expect(SparkApi.request_id_chain).to eq("foobar")
138
138
  SparkApi.reset
139
- SparkApi.api_key.should == SparkApi::Configuration::DEFAULT_API_KEY
140
- SparkApi.request_id_chain.should SparkApi::Configuration::DEFAULT_REQUEST_ID_CHAIN
141
-
139
+ expect(SparkApi.api_key).to eq(SparkApi::Configuration::DEFAULT_API_KEY)
140
+ expect(SparkApi.request_id_chain).to eq(SparkApi::Configuration::DEFAULT_REQUEST_ID_CHAIN)
142
141
  end
143
142
  end
144
143
 
@@ -152,7 +151,7 @@ describe SparkApi::Client, "Client config" do
152
151
  }).
153
152
  to_return(:body => '{"D":{"Success": true,"Results": [{"SSL":false}]}}')
154
153
 
155
- SparkApi.client.get('/connections')[0]["SSL"].should eq(false)
154
+ expect(SparkApi.client.get('/connections')[0]["SSL"]).to eq(false)
156
155
  end
157
156
 
158
157
  it "should use https when ssl is enabled" do
@@ -165,7 +164,7 @@ describe SparkApi::Client, "Client config" do
165
164
  to_return(:body => '{"D":{"Success": true,"Results": [{"SSL":true}]}}')
166
165
 
167
166
  c = SparkApi::Client.new(:endpoint => "https://api.sparkapi.com", :ssl => true)
168
- c.get('/connections')[0]["SSL"].should eq(true)
167
+ expect(c.get('/connections')[0]["SSL"]).to eq(true)
169
168
  end
170
169
 
171
170
  it "should have correct headers based on configuration" do
@@ -182,7 +181,7 @@ describe SparkApi::Client, "Client config" do
182
181
  config.user_agent = "my useragent"
183
182
  end
184
183
  SparkApi.client.get '/headers'
185
- WebMock.should have_requested(:get, "#{SparkApi.endpoint}/#{SparkApi.version}/headers?ApiUser=foobar&ApiSig=717a066c4f4302c5ca9507e484db4812&AuthToken=c401736bf3d3f754f07c04e460e09573").
184
+ expect(WebMock).to have_requested(:get, "#{SparkApi.endpoint}/#{SparkApi.version}/headers?ApiUser=foobar&ApiSig=717a066c4f4302c5ca9507e484db4812&AuthToken=c401736bf3d3f754f07c04e460e09573").
186
185
  with(:headers => {
187
186
  'User-Agent' => SparkApi::Configuration::DEFAULT_USER_AGENT,
188
187
  SparkApi::Configuration::X_SPARK_API_USER_AGENT => "my useragent",
@@ -206,7 +205,7 @@ describe SparkApi::Client, "Client config" do
206
205
  config.request_id_chain = 'foobar'
207
206
  end
208
207
  SparkApi.client.get '/headers'
209
- WebMock.should have_requested(:get, "#{SparkApi.endpoint}/#{SparkApi.version}/headers?ApiUser=foobar&ApiSig=717a066c4f4302c5ca9507e484db4812&AuthToken=c401736bf3d3f754f07c04e460e09573").
208
+ expect(WebMock).to have_requested(:get, "#{SparkApi.endpoint}/#{SparkApi.version}/headers?ApiUser=foobar&ApiSig=717a066c4f4302c5ca9507e484db4812&AuthToken=c401736bf3d3f754f07c04e460e09573").
210
209
  with(:headers => {
211
210
  'User-Agent' => SparkApi::Configuration::DEFAULT_USER_AGENT,
212
211
  SparkApi::Configuration::X_SPARK_API_USER_AGENT => "my useragent",
@@ -218,24 +217,24 @@ describe SparkApi::Client, "Client config" do
218
217
 
219
218
  it "should not set gzip header by default" do
220
219
  c = SparkApi::Client.new(:endpoint => "https://sparkapi.com")
221
- c.connection.headers["Accept-Encoding"].should be_nil
220
+ expect(c.connection.headers["Accept-Encoding"]).to be_nil
222
221
  end
223
222
 
224
223
  it "should set gzip header if compress option is set" do
225
224
  c = SparkApi::Client.new(:endpoint => "https://api.sparkapi.com",
226
225
  :compress => true)
227
- c.connection.headers["Accept-Encoding"].should eq("gzip, deflate")
226
+ expect(c.connection.headers["Accept-Encoding"]).to eq("gzip, deflate")
228
227
  end
229
228
 
230
229
  it "should set default timeout of 5 seconds" do
231
230
  c = SparkApi::Client.new(:endpoint => "https://sparkapi.com")
232
- c.connection.options[:timeout].should eq(5)
231
+ expect(c.connection.options[:timeout]).to eq(5)
233
232
  end
234
233
 
235
234
  it "should set alternate timeout if specified" do
236
235
  c = SparkApi::Client.new(:endpoint => "https://sparkapi.com",
237
236
  :timeout => 15)
238
- c.connection.options[:timeout].should eq(15)
237
+ expect(c.connection.options[:timeout]).to eq(15)
239
238
  end
240
239
  end
241
240
 
@@ -250,14 +249,14 @@ describe SparkApi::Client, "Client config" do
250
249
  :middleware => 'reso_api',
251
250
  :dictionary_version => '1.6')
252
251
 
253
- client.api_key.should match("key_of_cody")
254
- client.api_secret.should match("TopSecret")
255
- client.api_user.should match("1234")
256
- client.endpoint.should match("http://api.coolio.dev.fbsdata.com")
257
- client.timeout.should eq(15)
258
- client.request_id_chain.should eq('foobar')
259
- client.middleware.should eq('reso_api')
260
- client.dictionary_version.should eq('1.6')
252
+ expect(client.api_key).to match("key_of_cody")
253
+ expect(client.api_secret).to match("TopSecret")
254
+ expect(client.api_user).to match("1234")
255
+ expect(client.endpoint).to match("http://api.coolio.dev.fbsdata.com")
256
+ expect(client.timeout).to eq(15)
257
+ expect(client.request_id_chain).to eq('foobar')
258
+ expect(client.middleware).to eq('reso_api')
259
+ expect(client.dictionary_version).to eq('1.6')
261
260
  end
262
261
  end
263
262
  end