spark_api 1.4.29 → 1.5.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.
Files changed (71) hide show
  1. checksums.yaml +5 -5
  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 +2 -0
  9. data/lib/spark_api/models/floplan.rb +24 -0
  10. data/lib/spark_api/models/listing.rb +11 -1
  11. data/lib/spark_api/models/media.rb +30 -0
  12. data/lib/spark_api/models/subresource.rb +2 -2
  13. data/lib/spark_api/models/video.rb +108 -0
  14. data/lib/spark_api/models/virtual_tour.rb +16 -0
  15. data/lib/spark_api/request.rb +2 -2
  16. data/script/reso_middleware_example.rb +70 -0
  17. data/spec/fixtures/listings/floplans_index.json +15 -0
  18. data/spec/spec_helper.rb +9 -4
  19. data/spec/unit/spark_api/authentication/api_auth_spec.rb +21 -22
  20. data/spec/unit/spark_api/authentication/base_auth_spec.rb +3 -3
  21. data/spec/unit/spark_api/authentication/oauth2_impl/faraday_middleware_spec.rb +1 -1
  22. data/spec/unit/spark_api/authentication/oauth2_impl/grant_type_base_spec.rb +1 -1
  23. data/spec/unit/spark_api/authentication/oauth2_impl/single_session_provider_spec.rb +2 -2
  24. data/spec/unit/spark_api/authentication/oauth2_spec.rb +40 -40
  25. data/spec/unit/spark_api/authentication_spec.rb +2 -2
  26. data/spec/unit/spark_api/configuration/yaml_spec.rb +44 -44
  27. data/spec/unit/spark_api/configuration_spec.rb +56 -57
  28. data/spec/unit/spark_api/faraday_middleware_spec.rb +12 -12
  29. data/spec/unit/spark_api/models/account_spec.rb +20 -20
  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 +184 -248
@@ -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
@@ -64,13 +64,13 @@ describe SparkApi do
64
64
  end
65
65
 
66
66
  it "should raised exception when token is expired" do
67
- expect { @connection.get('/expired')}.to raise_error(SparkApi::PermissionDenied){ |e| e.code.should == SparkApi::ResponseCodes::SESSION_TOKEN_EXPIRED }
67
+ expect { @connection.get('/expired')}.to raise_error(SparkApi::PermissionDenied){ |e| expect(e.code).to eq(SparkApi::ResponseCodes::SESSION_TOKEN_EXPIRED) }
68
68
  end
69
69
 
70
70
  it "should raised exception on error" do
71
- expect { @connection.get('/methodnotallowed')}.to raise_error(SparkApi::NotAllowed){ |e| e.message.should == "Method Not Allowed" }
72
- expect { @connection.get('/epicfail')}.to raise_error(SparkApi::ClientError){ |e| e.status.should be(500) }
73
- expect { @connection.get('/unknownerror')}.to raise_error(SparkApi::ClientError){ |e| e.status.should be(499) }
71
+ expect { @connection.get('/methodnotallowed')}.to raise_error(SparkApi::NotAllowed){ |e| expect(e.message).to eq("Method Not Allowed") }
72
+ expect { @connection.get('/epicfail')}.to raise_error(SparkApi::ClientError){ |e| expect(e.status).to be(500) }
73
+ expect { @connection.get('/unknownerror')}.to raise_error(SparkApi::ClientError){ |e| expect(e.status).to be(499) }
74
74
  end
75
75
 
76
76
  it "should raised exception on invalid responses" do
@@ -81,20 +81,20 @@ describe SparkApi do
81
81
 
82
82
  it "should give me a session response" do
83
83
  response = @connection.post('/session').body
84
- response.success.should eq(true)
84
+ expect(response.success).to eq(true)
85
85
  session = SparkApi::Authentication::Session.new(response.results[0])
86
- session.auth_token.should eq("xxxxx")
86
+ expect(session.auth_token).to eq("xxxxx")
87
87
  end
88
88
 
89
89
  it "should give me an api response" do
90
90
  response = @connection.get('/system').body
91
- response.success.should eq(true)
92
- response.results.length.should be > 0
91
+ expect(response.success).to eq(true)
92
+ expect(response.results.length).to be > 0
93
93
  end
94
94
 
95
95
  it "should include the errors in the response" do
96
96
  expect { @connection.get('/badresourcerequest')}.to raise_error(SparkApi::BadResourceRequest){ |e|
97
- e.errors.should == "Some errors and stuff."
97
+ expect(e.errors).to eq("Some errors and stuff.")
98
98
  }
99
99
  end
100
100
 
@@ -111,7 +111,7 @@ describe SparkApi do
111
111
  :response_headers => {}
112
112
  }
113
113
 
114
- middleware.decompress_body(env).should eq("UNCOMPRESSED")
114
+ expect(middleware.decompress_body(env)).to eq("UNCOMPRESSED")
115
115
  end
116
116
 
117
117
  it "should unzip gzipped data" do
@@ -129,7 +129,7 @@ describe SparkApi do
129
129
  }
130
130
  }
131
131
 
132
- middleware.decompress_body(env).should eq(bod)
132
+ expect(middleware.decompress_body(env)).to eq(bod)
133
133
  end
134
134
 
135
135
  it "should inflate deflated data" do
@@ -143,7 +143,7 @@ describe SparkApi do
143
143
  }
144
144
  }
145
145
 
146
- middleware.decompress_body(env).should eq(bod)
146
+ expect(middleware.decompress_body(env)).to eq(bod)
147
147
  end
148
148
  end
149
149
 
@@ -101,20 +101,20 @@ describe Account do
101
101
 
102
102
  it "should respond to attributes" do
103
103
  ['Name','Id','Mls','MlsId','Office'].each do |k|
104
- (@account.send k.to_sym).should be_a(String)
104
+ expect(@account.send k.to_sym).to be_a(String)
105
105
  end
106
106
  end
107
107
 
108
108
  it "should have primary subresources" do
109
- @account.emails.primary.Address.should eq("work@test.com")
110
- @account.phones.primary.Number.should eq("701-555-1212")
111
- @account.addresses.primary.Address.should eq("101 Main Ave, Phoenix, AZ 12345")
112
- @account.websites.primary.Uri.should eq("http://iamthebestagent.com")
109
+ expect(@account.emails.primary.Address).to eq("work@test.com")
110
+ expect(@account.phones.primary.Number).to eq("701-555-1212")
111
+ expect(@account.addresses.primary.Address).to eq("101 Main Ave, Phoenix, AZ 12345")
112
+ expect(@account.websites.primary.Uri).to eq("http://iamthebestagent.com")
113
113
  end
114
114
 
115
115
  it "should be able to provide a primary image" do
116
- @account.primary_img("Photo").Name.should == 'My Photo 1'
117
- @account.primary_img("Logo").Name.should == '1 My Logo'
116
+ expect(@account.primary_img("Photo").Name).to eq('My Photo 1')
117
+ expect(@account.primary_img("Logo").Name).to eq('1 My Logo')
118
118
  end
119
119
 
120
120
  after(:each) do
@@ -131,19 +131,19 @@ describe Account do
131
131
  on_get_it "should get my account" do
132
132
  stub_api_get("/my/account", 'accounts/my.json')
133
133
  account = Account.my
134
- account.Id.should eq("20000426173054342350000000")
135
- account.websites.first.Name.should == 'My Work Website'
134
+ expect(account.Id).to eq("20000426173054342350000000")
135
+ expect(account.websites.first.Name).to eq('My Work Website')
136
136
  end
137
137
 
138
138
  on_put_it "should save my portal account" do
139
139
  stub_api_get("/my/account", 'accounts/my_portal.json')
140
140
  stub_api_put("/my/account", 'accounts/my_save.json', 'accounts/my_put.json')
141
141
  account = Account.my
142
- account.Id.should eq("20110426173054342350000000")
143
- account.GetEmailUpdates.should eq(false)
142
+ expect(account.Id).to eq("20110426173054342350000000")
143
+ expect(account.GetEmailUpdates).to eq(false)
144
144
  account.GetEmailUpdates = true
145
145
  account.save!
146
- account.GetEmailUpdates.should eq(true)
146
+ expect(account.GetEmailUpdates).to eq(true)
147
147
  end
148
148
  end
149
149
 
@@ -151,10 +151,10 @@ describe Account do
151
151
  on_get_it "should get all accounts" do
152
152
  stub_api_get("/accounts", 'accounts/all.json')
153
153
  accounts = Account.get
154
- accounts.should be_an(Array)
155
- accounts.length.should eq(3)
156
- accounts.first.Id.should eq("20000426173054342350000000")
157
- accounts.last.Id.should eq("20110126173054382350000000")
154
+ expect(accounts).to be_an(Array)
155
+ expect(accounts.length).to eq(3)
156
+ expect(accounts.first.Id).to eq("20000426173054342350000000")
157
+ expect(accounts.last.Id).to eq("20110126173054382350000000")
158
158
  end
159
159
  on_put_it "should save password" do
160
160
  stub_api_get("/my/account", 'accounts/my.json')
@@ -162,7 +162,7 @@ describe Account do
162
162
  stub_api_put("/accounts/#{account.Id}", 'accounts/password_save.json', 'accounts/my.json')
163
163
  account.Password = "1"
164
164
  account.PasswordValidation = "1"
165
- account.save.should be(true)
165
+ expect(account.save).to be(true)
166
166
  end
167
167
  end
168
168
 
@@ -170,10 +170,10 @@ describe Account do
170
170
  on_get_it "should all office accounts" do
171
171
  stub_api_get("/accounts/by/office/20030426173014239760000000", 'accounts/office.json')
172
172
  accounts = Account.by_office("20030426173014239760000000")
173
- accounts.should be_an(Array)
174
- accounts.length.should eq(2)
173
+ expect(accounts).to be_an(Array)
174
+ expect(accounts.length).to eq(2)
175
175
  accounts.each do |account|
176
- accounts.first.OfficeId.should eq("20030426173014239760000000")
176
+ expect(accounts.first.OfficeId).to eq("20030426173014239760000000")
177
177
  end
178
178
  end
179
179
  end
@@ -10,9 +10,9 @@ describe Activity do
10
10
  it "gets a current user's activities" do
11
11
  s = stub_api_get("/activities", "activities/get.json")
12
12
  activities = Activity.get
13
- activities.should be_an(Array)
14
- activities.size.should eq(2)
15
- s.should have_been_requested
13
+ expect(activities).to be_an(Array)
14
+ expect(activities.size).to eq(2)
15
+ expect(s).to have_been_requested
16
16
  end
17
17
  end
18
18
 
@@ -21,8 +21,8 @@ describe Activity do
21
21
  it "gets an individual activity" do
22
22
  s = stub_api_get("/activities/#{id}", "activities/get.json")
23
23
  activity = Activity.find(id)
24
- activity.should be_an(Activity)
25
- s.should have_been_requested
24
+ expect(activity).to be_an(Activity)
25
+ expect(s).to have_been_requested
26
26
  end
27
27
  end
28
28
 
@@ -22,31 +22,31 @@ describe MyExampleModel, "Example model" do
22
22
  end
23
23
 
24
24
  it "should be persisted" do
25
- @model.persisted?.should eq(true)
25
+ expect(@model.persisted?).to eq(true)
26
26
  end
27
27
 
28
28
  it "should not be persisted" do
29
29
  @new_model = MyExampleModel.new()
30
- @new_model.persisted?.should eq(false)
30
+ expect(@new_model.persisted?).to eq(false)
31
31
  end
32
32
 
33
33
  it "should parse and return ResourceUri without v1" do
34
- @model.resource_uri.should eq("/some/place/20101230223226074201000000")
34
+ expect(@model.resource_uri).to eq("/some/place/20101230223226074201000000")
35
35
  end
36
36
 
37
37
  it "should parse and return the correct path for a persisted resource" do
38
- @model.path.should eq("/some/place")
38
+ expect(@model.path).to eq("/some/place")
39
39
  end
40
40
 
41
41
  it "should parse and return the correct path" do
42
42
  @model = MyExampleModel.new
43
- @model.path.should eq("/test/example")
43
+ expect(@model.path).to eq("/test/example")
44
44
  end
45
45
 
46
46
  it "should parse and return the correct path for resource with a parent" do
47
47
  @model = MyExampleModel.new
48
48
  @model.parent = Contact.new({ :Id => "20101230223226074201000000" })
49
- @model.path.should eq("/contacts/20101230223226074201000000/test/example")
49
+ expect(@model.path).to eq("/contacts/20101230223226074201000000/test/example")
50
50
  end
51
51
 
52
52
  end
@@ -55,16 +55,16 @@ describe Base, "Base model" do
55
55
 
56
56
  describe "class methods" do
57
57
  it "should set the element name" do
58
- MyExampleModel.element_name.should eq("example")
59
- MyDefaultModel.element_name.should eq("resource")
58
+ expect(MyExampleModel.element_name).to eq("example")
59
+ expect(MyDefaultModel.element_name).to eq("resource")
60
60
  end
61
61
  it "should set the prefix" do
62
- MyExampleModel.prefix.should eq("/test/")
63
- MyDefaultModel.prefix.should eq("/")
62
+ expect(MyExampleModel.prefix).to eq("/test/")
63
+ expect(MyDefaultModel.prefix).to eq("/")
64
64
  end
65
65
  it "should set the path" do
66
- MyExampleModel.path.should eq("/test/example")
67
- MyDefaultModel.path.should eq("/resource")
66
+ expect(MyExampleModel.path).to eq("/test/example")
67
+ expect(MyDefaultModel.path).to eq("/resource")
68
68
  end
69
69
  describe "finders" do
70
70
  before(:each) do
@@ -72,11 +72,11 @@ describe Base, "Base model" do
72
72
  stub_api_get("/test/example", 'base.json')
73
73
  end
74
74
  it "should get all results" do
75
- MyExampleModel.get.length.should == 2
75
+ expect(MyExampleModel.get.length).to eq(2)
76
76
  end
77
77
  it "should get first result" do
78
- MyExampleModel.first.Id.should == 1
79
- MyExampleModel.first.Id.should eq(MyExampleModel.first.id)
78
+ expect(MyExampleModel.first.Id).to eq(1)
79
+ expect(MyExampleModel.first.Id).to eq(MyExampleModel.first.id)
80
80
  end
81
81
  end
82
82
  end
@@ -89,71 +89,71 @@ describe Base, "Base model" do
89
89
  end
90
90
 
91
91
  it "should access existing attributes" do
92
- @model.Name.should == 'My Example'
92
+ expect(@model.Name).to eq('My Example')
93
93
  end
94
94
 
95
95
  it "should raise errors on access to non-existant attributes" do
96
- lambda { @model.Nonsense }.should raise_error(NoMethodError)
96
+ expect { @model.Nonsense }.to raise_error(NoMethodError)
97
97
  end
98
98
 
99
99
  it "should set existing attributes" do
100
100
  new_name = 'John Jacob Jingleheimerschmidt'
101
101
  @model.Name = new_name
102
- @model.Name.should == new_name
102
+ expect(@model.Name).to eq(new_name)
103
103
  end
104
104
 
105
105
  it "should set non-existant attributes" do
106
106
  nonsense = 'nonsense'
107
107
  @model.Nonsense = nonsense
108
- @model.Nonsense.should == nonsense
108
+ expect(@model.Nonsense).to eq(nonsense)
109
109
  end
110
110
 
111
111
  it "should return a boolean for a predicate for an existing attribute" do
112
- @model.Name?.should satisfy { |p| [true, false].include?(p) }
112
+ expect(@model.Name?).to satisfy { |p| [true, false].include?(p) }
113
113
  end
114
114
 
115
115
  it "should return a boolean for whether or not a model is persisted through the api" do
116
- @model.persisted?.should satisfy { |p| [true, false].include?(p) }
116
+ expect(@model.persisted?).to satisfy { |p| [true, false].include?(p) }
117
117
  end
118
118
 
119
119
  it "should raise an Error for a predicate for a non-existant attribute" do
120
- lambda { @model.Nonsense? }.should raise_error(NoMethodError)
120
+ expect { @model.Nonsense? }.to raise_error(NoMethodError)
121
121
  end
122
122
 
123
123
  it "should repond_to existing attributes" do
124
- @model.should respond_to(:Name)
124
+ expect(@model).to respond_to(:Name)
125
125
  end
126
126
 
127
127
  it "should not respond_to non-existant attributes" do
128
- @model.should_not respond_to(:Nonsense)
128
+ expect(@model).not_to respond_to(:Nonsense)
129
129
  end
130
130
 
131
131
  it "should respond_to a setter for an existing attribute" do
132
- @model.should respond_to(:Name=)
132
+ expect(@model).to respond_to(:Name=)
133
133
  end
134
134
 
135
135
  it "should respond_to a setter for a non-existant attribute" do
136
- @model.should respond_to(:Nonsense=)
136
+ expect(@model).to respond_to(:Nonsense=)
137
137
  end
138
138
 
139
139
  it "should respond_to a predicate for an existing attribute" do
140
- @model.should respond_to(:Name?)
140
+ expect(@model).to respond_to(:Name?)
141
141
  end
142
142
 
143
143
  it "should not respond_to a predicate for a non-existant attribute" do
144
- @model.should_not respond_to(:Nonsense?)
144
+ expect(@model).not_to respond_to(:Nonsense?)
145
145
  end
146
146
 
147
147
  it "should respond_to methods inherited from parent classes" do
148
- @model.should respond_to(:freeze)
148
+ expect(@model).to respond_to(:freeze)
149
149
  end
150
150
 
151
151
  it "should respond_to a will_change! method for an existing attribute" do
152
- @model.should respond_to(:Name_will_change!)
152
+ expect(@model).to respond_to(:Name_will_change!)
153
153
  end
154
154
 
155
155
  it "should not respond_to a will_change! method for a non-existant attribute" do
156
- @model.should_not respond_to(:Nonsense_will_change!)
156
+ expect(@model).not_to respond_to(:Nonsense_will_change!)
157
157
  end
158
158
 
159
159
  end
@@ -161,7 +161,7 @@ describe Base, "Base model" do
161
161
  describe "to_partial_path" do
162
162
  it "should return the partial path" do
163
163
  model = MyExampleModel.new()
164
- model.to_partial_path.should eq("my_example_models/my_example_model")
164
+ expect(model.to_partial_path).to eq("my_example_models/my_example_model")
165
165
  end
166
166
  end
167
167