spark_api 1.4.34 → 1.5.3

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 (67) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/VERSION +1 -1
  4. data/lib/spark_api/authentication/api_auth.rb +5 -3
  5. data/lib/spark_api/authentication/oauth2.rb +2 -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/media.rb +30 -0
  9. data/lib/spark_api/models/video.rb +108 -0
  10. data/lib/spark_api/models/virtual_tour.rb +16 -0
  11. data/lib/spark_api/models.rb +1 -0
  12. data/lib/spark_api/request.rb +17 -1
  13. data/lib/spark_api.rb +1 -0
  14. data/spec/spec_helper.rb +9 -4
  15. data/spec/unit/spark_api/authentication/api_auth_spec.rb +40 -22
  16. data/spec/unit/spark_api/authentication/base_auth_spec.rb +3 -3
  17. data/spec/unit/spark_api/authentication/oauth2_impl/faraday_middleware_spec.rb +1 -1
  18. data/spec/unit/spark_api/authentication/oauth2_impl/grant_type_base_spec.rb +1 -1
  19. data/spec/unit/spark_api/authentication/oauth2_impl/single_session_provider_spec.rb +2 -2
  20. data/spec/unit/spark_api/authentication/oauth2_spec.rb +58 -40
  21. data/spec/unit/spark_api/authentication_spec.rb +2 -2
  22. data/spec/unit/spark_api/configuration/yaml_spec.rb +44 -44
  23. data/spec/unit/spark_api/configuration_spec.rb +56 -57
  24. data/spec/unit/spark_api/faraday_middleware_spec.rb +12 -12
  25. data/spec/unit/spark_api/models/account_spec.rb +20 -20
  26. data/spec/unit/spark_api/models/activity_spec.rb +5 -5
  27. data/spec/unit/spark_api/models/base_spec.rb +32 -32
  28. data/spec/unit/spark_api/models/concerns/destroyable_spec.rb +2 -2
  29. data/spec/unit/spark_api/models/concerns/savable_spec.rb +19 -19
  30. data/spec/unit/spark_api/models/connect_prefs_spec.rb +1 -1
  31. data/spec/unit/spark_api/models/constraint_spec.rb +1 -1
  32. data/spec/unit/spark_api/models/contact_spec.rb +50 -50
  33. data/spec/unit/spark_api/models/dirty_spec.rb +12 -12
  34. data/spec/unit/spark_api/models/document_spec.rb +3 -3
  35. data/spec/unit/spark_api/models/fields_spec.rb +17 -17
  36. data/spec/unit/spark_api/models/finders_spec.rb +7 -7
  37. data/spec/unit/spark_api/models/floplan_spec.rb +4 -4
  38. data/spec/unit/spark_api/models/listing_cart_spec.rb +46 -46
  39. data/spec/unit/spark_api/models/listing_meta_translations_spec.rb +6 -6
  40. data/spec/unit/spark_api/models/listing_spec.rb +91 -91
  41. data/spec/unit/spark_api/models/message_spec.rb +10 -10
  42. data/spec/unit/spark_api/models/note_spec.rb +10 -10
  43. data/spec/unit/spark_api/models/notification_spec.rb +6 -6
  44. data/spec/unit/spark_api/models/open_house_spec.rb +4 -4
  45. data/spec/unit/spark_api/models/photo_spec.rb +8 -8
  46. data/spec/unit/spark_api/models/portal_spec.rb +4 -4
  47. data/spec/unit/spark_api/models/property_types_spec.rb +5 -5
  48. data/spec/unit/spark_api/models/rental_calendar_spec.rb +13 -11
  49. data/spec/unit/spark_api/models/rule_spec.rb +2 -2
  50. data/spec/unit/spark_api/models/saved_search_spec.rb +33 -33
  51. data/spec/unit/spark_api/models/search_template/quick_search_spec.rb +5 -5
  52. data/spec/unit/spark_api/models/shared_listing_spec.rb +12 -12
  53. data/spec/unit/spark_api/models/sort_spec.rb +3 -3
  54. data/spec/unit/spark_api/models/standard_fields_spec.rb +12 -12
  55. data/spec/unit/spark_api/models/subresource_spec.rb +18 -18
  56. data/spec/unit/spark_api/models/system_info_spec.rb +7 -7
  57. data/spec/unit/spark_api/models/tour_of_home_spec.rb +3 -3
  58. data/spec/unit/spark_api/models/video_spec.rb +9 -9
  59. data/spec/unit/spark_api/models/virtual_tour_spec.rb +7 -7
  60. data/spec/unit/spark_api/models/vow_account_spec.rb +8 -8
  61. data/spec/unit/spark_api/multi_client_spec.rb +14 -14
  62. data/spec/unit/spark_api/options_hash_spec.rb +4 -4
  63. data/spec/unit/spark_api/paginate_spec.rb +71 -71
  64. data/spec/unit/spark_api/primary_array_spec.rb +5 -5
  65. data/spec/unit/spark_api/request_spec.rb +79 -63
  66. data/spec/unit/spark_api_spec.rb +6 -6
  67. metadata +178 -248
@@ -6,9 +6,9 @@ describe SparkApi::OptionsHash do
6
6
  "parameter_two" => 2,
7
7
  3 => 3}
8
8
  o_h = SparkApi::OptionsHash.new(h)
9
- o_h.keys.size.should eq(3)
10
- o_h["parameter_one"].should eq(1)
11
- o_h["parameter_two"].should eq(2)
12
- o_h[3].should eq(3)
9
+ expect(o_h.keys.size).to eq(3)
10
+ expect(o_h["parameter_one"]).to eq(1)
11
+ expect(o_h["parameter_two"]).to eq(2)
12
+ expect(o_h[3]).to eq(3)
13
13
  end
14
14
  end
@@ -37,54 +37,54 @@ describe SparkApi::PaginateResponse do
37
37
  json = "{#{paginate_json}}"
38
38
  hash = JSON.parse(json)
39
39
  results = subject.paginate_response([1,2,3,4,5,6,7,8,9,10], hash["Pagination"])
40
- results.offset.should eq(0)
41
- results.next_page.should eq(2)
42
- results.previous_page.should eq(nil)
43
- results.current_page.should eq(1)
44
- results.per_page.should eq(10)
45
- results.total_pages.should eq(4)
46
- results.total_entries.should eq(38)
47
- results[0].should eq(1)
40
+ expect(results.offset).to eq(0)
41
+ expect(results.next_page).to eq(2)
42
+ expect(results.previous_page).to eq(nil)
43
+ expect(results.current_page).to eq(1)
44
+ expect(results.per_page).to eq(10)
45
+ expect(results.total_pages).to eq(4)
46
+ expect(results.total_entries).to eq(38)
47
+ expect(results[0]).to eq(1)
48
48
  end
49
49
  it "should give me the second page" do
50
50
  json = "{#{paginate_json(2)}}"
51
51
  hash = JSON.parse(json)
52
52
  results = subject.paginate_response([11,12,13,14,15,16,17,18,19,20], hash["Pagination"])
53
- results.offset.should eq(10)
54
- results.next_page.should eq(3)
55
- results.previous_page.should eq(1)
56
- results.current_page.should eq(2)
57
- results.per_page.should eq(10)
58
- results.total_pages.should eq(4)
59
- results.total_entries.should eq(38)
60
- results[0].should eq(11)
53
+ expect(results.offset).to eq(10)
54
+ expect(results.next_page).to eq(3)
55
+ expect(results.previous_page).to eq(1)
56
+ expect(results.current_page).to eq(2)
57
+ expect(results.per_page).to eq(10)
58
+ expect(results.total_pages).to eq(4)
59
+ expect(results.total_entries).to eq(38)
60
+ expect(results[0]).to eq(11)
61
61
  end
62
62
  it "should give me the third page" do
63
63
  json = "{#{paginate_json(3)}}"
64
64
  hash = JSON.parse(json)
65
65
  results = subject.paginate_response([21,22,23,24,25,26,27,28,29,30], hash["Pagination"])
66
- results.offset.should eq(20)
67
- results.next_page.should eq(4)
68
- results.previous_page.should eq(2)
69
- results.current_page.should eq(3)
70
- results.per_page.should eq(10)
71
- results.total_pages.should eq(4)
72
- results.total_entries.should eq(38)
73
- results[0].should eq(21)
66
+ expect(results.offset).to eq(20)
67
+ expect(results.next_page).to eq(4)
68
+ expect(results.previous_page).to eq(2)
69
+ expect(results.current_page).to eq(3)
70
+ expect(results.per_page).to eq(10)
71
+ expect(results.total_pages).to eq(4)
72
+ expect(results.total_entries).to eq(38)
73
+ expect(results[0]).to eq(21)
74
74
  end
75
75
  it "should give me the last page" do
76
76
  json = "{#{paginate_json(4)}}"
77
77
  hash = JSON.parse(json)
78
78
  results = subject.paginate_response([31,32,33,34,35,36,37,38], hash["Pagination"])
79
- results.offset.should eq(30)
80
- results.next_page.should eq(nil)
81
- results.previous_page.should eq(3)
82
- results.current_page.should eq(4)
83
- results.per_page.should eq(10)
84
- results.total_pages.should eq(4)
85
- results.total_entries.should eq(38)
86
- results[0].should eq(31)
87
- results[-1].should eq(38)
79
+ expect(results.offset).to eq(30)
80
+ expect(results.next_page).to eq(nil)
81
+ expect(results.previous_page).to eq(3)
82
+ expect(results.current_page).to eq(4)
83
+ expect(results.per_page).to eq(10)
84
+ expect(results.total_pages).to eq(4)
85
+ expect(results.total_entries).to eq(38)
86
+ expect(results[0]).to eq(31)
87
+ expect(results[-1]).to eq(38)
88
88
  end
89
89
  end
90
90
  end
@@ -93,27 +93,27 @@ describe SparkApi::Paginate do
93
93
  describe "paginate" do
94
94
  it "should give me a will paginate collection" do
95
95
  results = PaginateModelTester.paginate(:page => 1)
96
- results.should be_a(WillPaginate::Collection)
97
- results.offset.should eq(0)
98
- results.next_page.should eq(2)
99
- results.previous_page.should eq(nil)
100
- results.current_page.should eq(1)
101
- results.per_page.should eq(10)
102
- results.total_pages.should eq(4)
103
- results.total_entries.should eq(38)
96
+ expect(results).to be_a(WillPaginate::Collection)
97
+ expect(results.offset).to eq(0)
98
+ expect(results.next_page).to eq(2)
99
+ expect(results.previous_page).to eq(nil)
100
+ expect(results.current_page).to eq(1)
101
+ expect(results.per_page).to eq(10)
102
+ expect(results.total_pages).to eq(4)
103
+ expect(results.total_entries).to eq(38)
104
104
 
105
- results[0].should be_a(PaginateModelTester)
106
- results[0].val.should eq(1)
105
+ expect(results[0]).to be_a(PaginateModelTester)
106
+ expect(results[0].val).to eq(1)
107
107
 
108
108
  end
109
109
 
110
110
  it "should give me pagination options" do
111
111
  PaginateModelTester.paginate(:page => 1)
112
112
  opts = PaginateModelTester.options
113
- opts["_pagination"].should eq(1)
114
- opts["_limit"].should eq(25)
115
- opts["_page"].should eq(1)
116
- opts.has_key?(:page).should eq(false)
113
+ expect(opts["_pagination"]).to eq(1)
114
+ expect(opts["_limit"]).to eq(25)
115
+ expect(opts["_page"]).to eq(1)
116
+ expect(opts.has_key?(:page)).to eq(false)
117
117
  end
118
118
  end
119
119
 
@@ -121,7 +121,7 @@ describe SparkApi::Paginate do
121
121
  it "should set the default model max results per page" do
122
122
  results = PaginateModelTester50.paginate(:page => 1)
123
123
  opts = PaginateModelTester50.options
124
- opts["_limit"].should eq(50)
124
+ expect(opts["_limit"]).to eq(50)
125
125
  end
126
126
  end
127
127
 
@@ -151,18 +151,18 @@ describe SparkApi::Paginate do
151
151
  }).
152
152
  to_return(:body => json)
153
153
  results = subject.paginate(:page=>1, :per_page=>10)
154
- results.should be_a(WillPaginate::Collection)
155
- results.offset.should eq(0)
156
- results.next_page.should eq(2)
157
- results.previous_page.should eq(nil)
158
- results.current_page.should eq(1)
159
- results.per_page.should eq(10)
160
- results.total_pages.should eq(4)
161
- results.total_entries.should eq(38)
162
- results.length.should eq(10)
154
+ expect(results).to be_a(WillPaginate::Collection)
155
+ expect(results.offset).to eq(0)
156
+ expect(results.next_page).to eq(2)
157
+ expect(results.previous_page).to eq(nil)
158
+ expect(results.current_page).to eq(1)
159
+ expect(results.per_page).to eq(10)
160
+ expect(results.total_pages).to eq(4)
161
+ expect(results.total_entries).to eq(38)
162
+ expect(results.length).to eq(10)
163
163
 
164
- results[0].should be_a(subject)
165
- results[0].ListPrice.should eq(50000.0)
164
+ expect(results[0]).to be_a(subject)
165
+ expect(results[0].ListPrice).to eq(50000.0)
166
166
 
167
167
  end
168
168
  it "gives me page two of listings" do
@@ -184,9 +184,9 @@ describe SparkApi::Paginate do
184
184
  }).
185
185
  to_return(:body => json)
186
186
  results = subject.paginate(:page=>2, :per_page=>10)
187
- results.next_page.should eq(3)
188
- results.previous_page.should eq(1)
189
- results.current_page.should eq(2)
187
+ expect(results.next_page).to eq(3)
188
+ expect(results.previous_page).to eq(1)
189
+ expect(results.current_page).to eq(2)
190
190
  end
191
191
  it "gives me page four of listings" do
192
192
  json = <<-JSON
@@ -207,16 +207,16 @@ describe SparkApi::Paginate do
207
207
  }).
208
208
  to_return(:body => json)
209
209
  results = subject.paginate(:page=>4, :per_page=>10)
210
- results.next_page.should eq(nil)
211
- results.previous_page.should eq(3)
212
- results.current_page.should eq(4)
213
- results.per_page.should eq(10)
214
- results.total_pages.should eq(4)
215
- results.total_entries.should eq(38)
210
+ expect(results.next_page).to eq(nil)
211
+ expect(results.previous_page).to eq(3)
212
+ expect(results.current_page).to eq(4)
213
+ expect(results.per_page).to eq(10)
214
+ expect(results.total_pages).to eq(4)
215
+ expect(results.total_entries).to eq(38)
216
216
 
217
- results.length.should eq(8)
218
- results[0].should be_a(subject)
219
- results[0].ListPrice.should eq(50000.0)
217
+ expect(results.length).to eq(8)
218
+ expect(results[0]).to be_a(subject)
219
+ expect(results[0].ListPrice).to eq(50000.0)
220
220
  end
221
221
 
222
222
  end
@@ -18,12 +18,12 @@ describe SparkApi::PrimaryArray do
18
18
  d = PrimaryModel.new(4, true)
19
19
  e = PrimaryModel.new(5)
20
20
  tester = subject.class.new([d,e])
21
- tester.primary.should eq(d)
21
+ expect(tester.primary).to eq(d)
22
22
  tester = subject.class.new([a,b,c,d,e])
23
- tester.primary.should eq(d)
23
+ expect(tester.primary).to eq(d)
24
24
  # Note, it doesn't care if there is more than one primary, just returns first in the list.
25
25
  b.Primary = true
26
- tester.primary.should eq(b)
26
+ expect(tester.primary).to eq(b)
27
27
  end
28
28
  it "should return nil when there is no primary element" do
29
29
  a = PrimaryModel.new(1)
@@ -32,9 +32,9 @@ describe SparkApi::PrimaryArray do
32
32
  d = PrimaryModel.new(4)
33
33
  e = PrimaryModel.new(5)
34
34
  tester = subject.class.new([])
35
- tester.primary.should be(nil)
35
+ expect(tester.primary).to be(nil)
36
36
  tester = subject.class.new([a,b,c,d,e])
37
- tester.primary.should be(nil)
37
+ expect(tester.primary).to be(nil)
38
38
  end
39
39
  end
40
40
 
@@ -4,45 +4,45 @@ describe SparkApi do
4
4
  describe SparkApi::ClientError do
5
5
  subject { SparkApi::ClientError.new({:message=>"OMG FAIL", :code=>1234, :status=>500, :request_path => '/v1/foo', :request_id => 'deadbeef'}) }
6
6
  it "should print a helpful to_s" do
7
- subject.to_s.should == "OMG FAIL"
8
- subject.message.should == "OMG FAIL"
7
+ expect(subject.to_s).to eq("OMG FAIL")
8
+ expect(subject.message).to eq("OMG FAIL")
9
9
  end
10
10
  it "should have an api code" do
11
- subject.code.should == 1234
11
+ expect(subject.code).to eq(1234)
12
12
  end
13
13
  it "should have an http status" do
14
- subject.status.should == 500
14
+ expect(subject.status).to eq(500)
15
15
  end
16
16
 
17
17
  it "should have a request_path" do
18
- subject.request_path.should == '/v1/foo'
18
+ expect(subject.request_path).to eq('/v1/foo')
19
19
  end
20
20
 
21
21
  it "should have a request_id" do
22
- subject.request_id.should == 'deadbeef'
22
+ expect(subject.request_id).to eq('deadbeef')
23
23
  end
24
24
 
25
25
  it "should raise and exception with attached message" do
26
26
  expect { raise subject.class, {:message=>"My Message", :code=>1000, :status=>404}}.to raise_error(SparkApi::ClientError) do |e|
27
- e.message.should == "My Message"
28
- e.code.should == 1000
29
- e.status.should == 404
27
+ expect(e.message).to eq("My Message")
28
+ expect(e.code).to eq(1000)
29
+ expect(e.status).to eq(404)
30
30
  end
31
31
  expect { raise subject.class.new({:message=>"My Message", :code=>1000, :status=>404}) }.to raise_error(SparkApi::ClientError) do |e|
32
- e.message.should == "My Message"
33
- e.code.should == 1000
34
- e.status.should == 404
32
+ expect(e.message).to eq("My Message")
33
+ expect(e.code).to eq(1000)
34
+ expect(e.status).to eq(404)
35
35
  end
36
36
  expect { raise subject.class.new({:code=>1000, :status=>404}), "My Message"}.to raise_error(SparkApi::ClientError) do |e|
37
- e.message.should == "My Message"
38
- e.code.should == 1000
39
- e.status.should == 404
37
+ expect(e.message).to eq("My Message")
38
+ expect(e.code).to eq(1000)
39
+ expect(e.status).to eq(404)
40
40
  end
41
41
  expect { raise subject.class, "My Message"}.to raise_error(SparkApi::ClientError) do |e|
42
- e.message.should == "My Message"
43
- e.code.should be == nil
44
- e.status.should be == nil
45
- e.request_id.should be == nil
42
+ expect(e.message).to eq("My Message")
43
+ expect(e.code).to eq(nil)
44
+ expect(e.status).to eq(nil)
45
+ expect(e.request_id).to eq(nil)
46
46
  end
47
47
  end
48
48
  end
@@ -54,34 +54,34 @@ describe SparkApi do
54
54
  end
55
55
  it "should have results when successful" do
56
56
  r = SparkApi::ApiResponse.new({"D"=>{"Success" => true, "Results" => []}})
57
- r.success?.should be(true)
58
- r.results.empty?.should be(true)
59
- r.request_id.should eq nil
57
+ expect(r.success?).to be(true)
58
+ expect(r.results.empty?).to be(true)
59
+ expect(r.request_id).to eq nil
60
60
  end
61
61
 
62
62
  it "should return the request_id" do
63
63
  r = SparkApi::ApiResponse.new({"D"=>{"Success" => true, "Results" => []}}, 'foobar')
64
- r.success?.should be(true)
65
- r.request_id.should eq('foobar')
64
+ expect(r.success?).to be(true)
65
+ expect(r.request_id).to eq('foobar')
66
66
  end
67
67
  it "should have a message on error" do
68
68
  r = SparkApi::ApiResponse.new({"D"=>{"Success" => false, "Message" => "I am a failure."}})
69
- r.success?.should be(false)
70
- r.message.should be == "I am a failure."
69
+ expect(r.success?).to be(false)
70
+ expect(r.message).to eq("I am a failure.")
71
71
  end
72
72
  it "should have SparkQLErrors when present" do
73
73
  err = {"Token" => "ExpirationDate", "Status" => "Dropped"}
74
74
  r = SparkApi::ApiResponse.new({"D"=>{"Success" => false, "Message" => "I am a failure from .",
75
75
  "SparkQLErrors" => [err]
76
76
  }})
77
- r.sparkql_errors.first.should eq(err)
77
+ expect(r.sparkql_errors.first).to eq(err)
78
78
  end
79
79
  it "should have Errors when present" do
80
80
  err = {"Type" => "InvalidAttribute", "Attribute" => "DisplayName", "Message" => "DisplayName is wrong."}
81
81
  r = SparkApi::ApiResponse.new({"D"=>{"Success" => false, "Message" => "I am a failure from .",
82
82
  "Errors" => [err]
83
83
  }})
84
- r.errors.first.should eq(err)
84
+ expect(r.errors.first).to eq(err)
85
85
  end
86
86
  end
87
87
 
@@ -160,7 +160,13 @@ describe SparkApi do
160
160
  }
161
161
  }']
162
162
  }
163
-
163
+ # For testing http_method_override. See associated test for more details.
164
+ stub.post('/v1/routetoproveweareposting?ApiSig=SignedToken&AuthToken=1234', 'some_param=some_value') { [200, {}, '{"D": {
165
+ "Success": true,
166
+ "Results": []
167
+ }
168
+ }']
169
+ }
164
170
  end
165
171
  @connection = test_connection(stubs)
166
172
  end
@@ -193,62 +199,72 @@ describe SparkApi do
193
199
  r
194
200
  end
195
201
  it "should get a service" do
196
- subject.get('/system')[0]["Name"].should == "My User"
202
+ expect(subject.get('/system')[0]["Name"]).to eq("My User")
197
203
  end
198
204
  it "should get a service with parameters" do
199
- subject.get('/marketstatistics/price', "Options" => "ActiveAverageListPrice")[0]["ActiveAverageListPrice"].should == [100000,100000,100000,100000,100000,100000,100000,100000,100000,100000,100000,100000]
205
+ expect(subject.get('/marketstatistics/price', "Options" => "ActiveAverageListPrice")[0]["ActiveAverageListPrice"]).to eq([100000,100000,100000,100000,100000,100000,100000,100000,100000,100000,100000,100000])
200
206
  end
201
207
  it "should post to a service" do
202
208
  data = {"Contacts" => [{"DisplayName"=>"Wades Contact","PrimaryEmail"=>"wade11@fbsdata.com"}]}
203
- subject.post('/contacts', data)[0]["ResourceUri"].should == "1000"
209
+ expect(subject.post('/contacts', data)[0]["ResourceUri"]).to eq("1000")
204
210
  end
205
211
  it "should put to a service" do
206
212
  # This is a hypothetical unsupported service action at this time
207
213
  data = {"Contacts" => [{"DisplayName"=>"WLMCEWENS Contact","PrimaryEmail"=>"wlmcewen789@fbsdata.com"}]}
208
- subject.put('/contacts/1000', data).size.should be(0)
214
+ expect(subject.put('/contacts/1000', data).size).to be(0)
209
215
  # No validation here, if no error is raised, everything is hunky dory
210
216
  end
211
217
  it "should delete from a service" do
212
218
  # This is a hypothetical unsupported service action at this time
213
- subject.delete('/contacts/1000').size.should be(0)
219
+ expect(subject.delete('/contacts/1000').size).to be(0)
214
220
  # No validation here, if no error is raised, everything is hunky dory
215
221
  end
216
222
 
217
223
  it "should escape a path correctly" do
218
- subject.get('/test path with spaces').length.should == 0
224
+ expect(subject.get('/test path with spaces').length).to eq(0)
219
225
  # now try this with an already escaped path. Kaboom!
220
226
  expect { subject.get('/test%20path%20with%20spaces') }.to raise_error()
221
227
  end
222
228
 
223
229
  it "post data should support non json data" do
224
230
  # Other MISC requests
225
- subject.post('/stringdata', 'I am a lonely String!').success?.should == true
231
+ expect(subject.post('/stringdata', 'I am a lonely String!').success?).to eq(true)
226
232
  end
227
233
 
228
234
  it "should support arrays in the body" do
229
- subject.put('/arraydata', ["A","B","C"]).success?.should == true
235
+ expect(subject.put('/arraydata', ["A","B","C"]).success?).to be true
230
236
  end
231
237
 
232
238
  it "should allow response object to be returned instead of body" do
233
- r = subject.get('/system', { full_response: true })
239
+ r = subject.get('/system', { some_param: 'something', full_response: true })
234
240
 
235
- r.is_a?(Faraday::Response).should be(true)
236
- r.status.should eq(200)
241
+ expect(r.is_a?(Faraday::Response)).to be(true)
242
+ expect(r.status).to eq(200)
237
243
  end
238
244
 
239
245
  it "should give me BigDecimal results for large floating point numbers" do
240
- MultiJson.default_adapter.should eq(:yajl) unless jruby?
246
+ expect(MultiJson.default_adapter).to eq(:yajl) unless jruby?
241
247
  result = subject.get('/listings/1000')[0]
242
- result["StandardFields"]["BuildingAreaTotal"].should be_a(Float)
243
- pending("our JSON parser does not support large decimal types. Anyone feel like writing some c code?") do
244
- result["StandardFields"]["BuildingAreaTotal"].should be_a(BigDecimal)
248
+ expect(result["StandardFields"]["BuildingAreaTotal"]).to be_a(Float)
249
+ skip("our JSON parser does not support large decimal types. Anyone feel like writing some c code?") do
250
+ expect(result["StandardFields"]["BuildingAreaTotal"]).to be_a(BigDecimal)
245
251
  number = BigDecimal.new(result["StandardFields"]["BuildingAreaTotal"].to_s)
246
- number.to_s.should eq(BigDecimal.new("0.000000000000000000000000001").to_s)
252
+ expect(number.to_s).to eq(BigDecimal.new("0.000000000000000000000000001").to_s)
247
253
  number = BigDecimal.new(result["StandardFields"]["ListPrice"].to_s)
248
- number.to_s.should eq(BigDecimal.new("9999999999999999999999999.99").to_s)
254
+ expect(number.to_s).to eq(BigDecimal.new("9999999999999999999999999.99").to_s)
249
255
  end
250
256
  end
251
-
257
+
258
+ # This is a weird feature and it also gets a weird test that probably
259
+ # merits explanation:
260
+ #
261
+ # We have only stubbed POST for this route, so the below succeeding
262
+ # proves that we have converted our GET into a POST. It is additionally
263
+ # stubbed to prove that we turn the params into a body which excludes the
264
+ # http_method_override options as well as the override_headers options.
265
+ it "should convert GET to POST if http_method_override: true is supplied" do
266
+ expect(subject.get('/routetoproveweareposting', { http_method_override: true, some_param: "some_value" }).success?).to be true
267
+ end
252
268
  end
253
269
 
254
270
  context "when unauthenticated" do
@@ -279,11 +295,11 @@ describe SparkApi do
279
295
  r
280
296
  end
281
297
  it "should authenticate and then get a service" do
282
- subject.get('/system')[0]["Name"].should == "My User"
298
+ expect(subject.get('/system')[0]["Name"]).to eq("My User")
283
299
  end
284
300
  it "should authenticate and then post to a service" do
285
301
  data = {"Contacts" => [{"DisplayName"=>"Wades Contact","PrimaryEmail"=>"wade11@fbsdata.com"}]}
286
- subject.post('/contacts', data)[0]["ResourceUri"].should == "1000"
302
+ expect(subject.post('/contacts', data)[0]["ResourceUri"]).to eq("1000")
287
303
  end
288
304
  end
289
305
 
@@ -322,13 +338,13 @@ describe SparkApi do
322
338
  r
323
339
  end
324
340
  it "should reauthenticate and then get a service" do
325
- subject.get('/system')[0]["Name"].should == "My User"
326
- subject.reauthenticated?.should == true
341
+ expect(subject.get('/system')[0]["Name"]).to eq("My User")
342
+ expect(subject.reauthenticated?).to eq(true)
327
343
  end
328
344
  it "should reauthenticate and then post to a service" do
329
345
  data = {"Contacts" => [{"DisplayName"=>"Wades Contact","PrimaryEmail"=>"wade11@fbsdata.com"}]}
330
- subject.post('/contacts', data)[0]["ResourceUri"].should == "1000"
331
- subject.reauthenticated?.should == true
346
+ expect(subject.post('/contacts', data)[0]["ResourceUri"]).to eq("1000")
347
+ expect(subject.reauthenticated?).to eq(true)
332
348
  end
333
349
  end
334
350
 
@@ -340,13 +356,13 @@ describe SparkApi do
340
356
  r
341
357
  end
342
358
  it "should reauthenticate and then get a service" do
343
- subject.get('/system')[0]["Name"].should == "My User"
344
- subject.reauthenticated?.should == true
359
+ expect(subject.get('/system')[0]["Name"]).to eq("My User")
360
+ expect(subject.reauthenticated?).to eq(true)
345
361
  end
346
362
  it "should reauthenticate and then post to a service" do
347
363
  data = {"Contacts" => [{"DisplayName"=>"Wades Contact","PrimaryEmail"=>"wade11@fbsdata.com"}]}
348
- subject.post('/contacts', data)[0]["ResourceUri"].should == "1000"
349
- subject.reauthenticated?.should == true
364
+ expect(subject.post('/contacts', data)[0]["ResourceUri"]).to eq("1000")
365
+ expect(subject.reauthenticated?).to eq(true)
350
366
  end
351
367
  end
352
368
 
@@ -384,19 +400,19 @@ describe SparkApi do
384
400
  end
385
401
  it "should fail horribly on a get" do
386
402
  expect { subject.get('/system')}.to raise_error(SparkApi::PermissionDenied) do |e|
387
- e.code.should == SparkApi::ResponseCodes::SESSION_TOKEN_EXPIRED
388
- e.request_path.should == '/system'
403
+ expect(e.code).to eq(SparkApi::ResponseCodes::SESSION_TOKEN_EXPIRED)
404
+ expect(e.request_path.to_s).to match(/\/system/)
389
405
  end
390
- subject.reauthenticated.should == 2
406
+ expect(subject.reauthenticated).to eq(2)
391
407
 
392
408
  end
393
409
  it "should fail horribly on a post" do
394
410
  data = {"Contacts" => [{"DisplayName"=>"Wades Contact","PrimaryEmail"=>"wade11@fbsdata.com"}]}
395
411
  expect { subject.post('/contacts', data)}.to raise_error(SparkApi::PermissionDenied) do |e|
396
- e.code.should == SparkApi::ResponseCodes::SESSION_TOKEN_EXPIRED
397
- e.request_path.should == '/contacts'
412
+ expect(e.code).to eq(SparkApi::ResponseCodes::SESSION_TOKEN_EXPIRED)
413
+ expect(e.request_path.to_s).to match(/\/contacts/)
398
414
  end
399
- subject.reauthenticated.should == 2
415
+ expect(subject.reauthenticated).to eq(2)
400
416
  end
401
417
  end
402
418