koala 1.8.0 → 1.9.0rc1

Sign up to get free protection for your applications and to get access to all the features.
@@ -24,26 +24,26 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
24
24
 
25
25
  describe ".new" do
26
26
  it "makes http_options accessible" do
27
- Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).http_options.should == @args[:http_options]
27
+ expect(Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).http_options).to eq(@args[:http_options])
28
28
  end
29
29
 
30
30
  it "makes post_processing accessible" do
31
- Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).post_processing.should == @args[:post_processing]
31
+ expect(Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).post_processing).to eq(@args[:post_processing])
32
32
  end
33
33
 
34
34
  it "makes access_token accessible" do
35
- Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).access_token.should == @args[:access_token]
35
+ expect(Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).access_token).to eq(@args[:access_token])
36
36
  end
37
37
 
38
38
  it "doesn't change the original http_options" do
39
39
  @args[:http_options][:name] = "baz2"
40
40
  expected = @args[:http_options].dup
41
41
  Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).to_batch_params(nil)
42
- @args[:http_options].should == expected
42
+ expect(@args[:http_options]).to eq(expected)
43
43
  end
44
44
 
45
45
  it "leaves the file array nil by default" do
46
- Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).files.should be_nil
46
+ expect(Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).files).to be_nil
47
47
  end
48
48
 
49
49
  it "raises a KoalaError if no access token supplied" do
@@ -56,13 +56,13 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
56
56
  @uploadable_io = double("UploadableIO 1")
57
57
 
58
58
  @batch_queue = []
59
- Koala::Facebook::GraphAPI.stub(:batch_calls).and_return(@batch_queue)
59
+ allow(Koala::Facebook::GraphAPI).to receive(:batch_calls).and_return(@batch_queue)
60
60
 
61
- Koala::UploadableIO.stub(:new).with(@binary).and_return(@uploadable_io)
62
- Koala::UploadableIO.stub(:binary_content?).and_return(false)
63
- Koala::UploadableIO.stub(:binary_content?).with(@binary).and_return(true)
64
- Koala::UploadableIO.stub(:binary_content?).with(@uploadable_io).and_return(true)
65
- @uploadable_io.stub(:is_a?).with(Koala::UploadableIO).and_return(true)
61
+ allow(Koala::UploadableIO).to receive(:new).with(@binary).and_return(@uploadable_io)
62
+ allow(Koala::UploadableIO).to receive(:binary_content?).and_return(false)
63
+ allow(Koala::UploadableIO).to receive(:binary_content?).with(@binary).and_return(true)
64
+ allow(Koala::UploadableIO).to receive(:binary_content?).with(@uploadable_io).and_return(true)
65
+ allow(@uploadable_io).to receive(:is_a?).with(Koala::UploadableIO).and_return(true)
66
66
 
67
67
  @args[:method] = "post" # files are always post
68
68
  end
@@ -70,23 +70,23 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
70
70
  it "adds binary files to the files attribute as UploadableIOs" do
71
71
  @args[:args].merge!("source" => @binary)
72
72
  batch_op = Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args)
73
- batch_op.files.should_not be_nil
74
- batch_op.files.find {|k, v| v == @uploadable_io}.should_not be_nil
73
+ expect(batch_op.files).not_to be_nil
74
+ expect(batch_op.files.find {|k, v| v == @uploadable_io}).not_to be_nil
75
75
  end
76
76
 
77
77
  it "works if supplied an UploadableIO as an argument" do
78
78
  # as happens with put_picture at the moment
79
79
  @args[:args].merge!("source" => @uploadable_io)
80
80
  batch_op = Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args)
81
- batch_op.files.should_not be_nil
82
- batch_op.files.find {|k, v| v == @uploadable_io}.should_not be_nil
81
+ expect(batch_op.files).not_to be_nil
82
+ expect(batch_op.files.find {|k, v| v == @uploadable_io}).not_to be_nil
83
83
  end
84
84
 
85
85
  it "assigns each binary parameter unique name" do
86
86
  @args[:args].merge!("source" => @binary, "source2" => @binary)
87
87
  batch_op = Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args)
88
88
  # if the name wasn't unique, there'd just be one item
89
- batch_op.files.should have(2).items
89
+ expect(batch_op.files.size).to eq(2)
90
90
  end
91
91
 
92
92
  it "assigns each binary parameter unique name across batch requests" do
@@ -97,12 +97,12 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
97
97
  batch_op2 = Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args)
98
98
  @batch_queue << batch_op2
99
99
  # if the name wasn't unique, we should have < 4 items since keys would be the same
100
- batch_op.files.merge(batch_op2.files).should have(4).items
100
+ expect(batch_op.files.merge(batch_op2.files).size).to eq(4)
101
101
  end
102
102
 
103
103
  it "removes the value from the arguments" do
104
104
  @args[:args].merge!("source" => @binary)
105
- Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).to_batch_params(nil)[:body].should_not =~ /source=/
105
+ expect(Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).to_batch_params(nil)[:body]).not_to match(/source=/)
106
106
  end
107
107
  end
108
108
 
@@ -114,49 +114,49 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
114
114
  it "adds the args to the URL string, with ? if no args previously present" do
115
115
  test_args = "foo"
116
116
  @args[:url] = url = "/"
117
- Koala.http_service.stub(:encode_params).and_return(test_args)
117
+ allow(Koala.http_service).to receive(:encode_params).and_return(test_args)
118
118
 
119
- Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).to_batch_params(nil)[:relative_url].should == "#{url}?#{test_args}"
119
+ expect(Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).to_batch_params(nil)[:relative_url]).to eq("#{url}?#{test_args}")
120
120
  end
121
121
 
122
122
  it "adds the args to the URL string, with & if args previously present" do
123
123
  test_args = "foo"
124
124
  @args[:url] = url = "/?a=2"
125
- Koala.http_service.stub(:encode_params).and_return(test_args)
125
+ allow(Koala.http_service).to receive(:encode_params).and_return(test_args)
126
126
 
127
- Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).to_batch_params(nil)[:relative_url].should == "#{url}&#{test_args}"
127
+ expect(Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).to_batch_params(nil)[:relative_url]).to eq("#{url}&#{test_args}")
128
128
  end
129
129
 
130
130
  it "adds nothing to the URL string if there are no args to be added" do
131
131
  @args[:args] = {}
132
- Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).to_batch_params(@args[:access_token])[:relative_url].should == @args[:url]
132
+ expect(Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).to_batch_params(@args[:access_token])[:relative_url]).to eq(@args[:url])
133
133
  end
134
134
 
135
135
  it "adds nothing to the body" do
136
- Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).to_batch_params(nil)[:body].should be_nil
136
+ expect(Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).to_batch_params(nil)[:body]).to be_nil
137
137
  end
138
138
  end
139
139
 
140
140
  shared_examples_for "requests with a body param" do
141
141
  it "sets the body to the encoded args string, if there are args" do
142
142
  test_args = "foo"
143
- Koala.http_service.stub(:encode_params).and_return(test_args)
143
+ allow(Koala.http_service).to receive(:encode_params).and_return(test_args)
144
144
 
145
- Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).to_batch_params(nil)[:body].should == test_args
145
+ expect(Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).to_batch_params(nil)[:body]).to eq(test_args)
146
146
  end
147
147
 
148
148
  it "does not set the body if there are no args" do
149
149
  test_args = ""
150
- Koala.http_service.stub(:encode_params).and_return(test_args)
151
- Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).to_batch_params(nil)[:body].should be_nil
150
+ allow(Koala.http_service).to receive(:encode_params).and_return(test_args)
151
+ expect(Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).to_batch_params(nil)[:body]).to be_nil
152
152
  end
153
153
 
154
154
 
155
155
  it "doesn't change the url" do
156
156
  test_args = "foo"
157
- Koala.http_service.stub(:encode_params).and_return(test_args)
157
+ allow(Koala.http_service).to receive(:encode_params).and_return(test_args)
158
158
 
159
- Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).to_batch_params(nil)[:relative_url].should == @args[:url]
159
+ expect(Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).to_batch_params(nil)[:relative_url]).to eq(@args[:url])
160
160
  end
161
161
  end
162
162
 
@@ -195,36 +195,36 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
195
195
 
196
196
  it "includes the access token if the token is not the main one for the request" do
197
197
  params = Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).to_batch_params(nil)
198
- params[:relative_url].should =~ /access_token=#{@args[:access_token]}/
198
+ expect(params[:relative_url]).to match(/access_token=#{@args[:access_token]}/)
199
199
  end
200
200
 
201
201
  it "includes the other arguments if the token is not the main one for the request" do
202
202
  @args[:args] = {:a => 2}
203
203
  params = Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).to_batch_params(nil)
204
- params[:relative_url].should =~ /a=2/
204
+ expect(params[:relative_url]).to match(/a=2/)
205
205
  end
206
206
 
207
207
  it "does not include the access token if the token is the main one for the request" do
208
208
  params = Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).to_batch_params(@args[:access_token])
209
- params[:relative_url].should_not =~ /access_token=#{@args[:access_token]}/
209
+ expect(params[:relative_url]).not_to match(/access_token=#{@args[:access_token]}/)
210
210
  end
211
211
 
212
212
  it "includes the other arguments if the token is the main one for the request" do
213
213
  @args[:args] = {:a => 2}
214
214
  params = Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).to_batch_params(@args[:access_token])
215
- params[:relative_url].should =~ /a=2/
215
+ expect(params[:relative_url]).to match(/a=2/)
216
216
  end
217
217
 
218
218
  it "includes any arguments passed as http_options[:batch_args]" do
219
219
  batch_args = {:name => "baz", :headers => {:some_param => true}}
220
220
  @args[:http_options][:batch_args] = batch_args
221
221
  params = Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).to_batch_params(nil)
222
- params.should include(batch_args)
222
+ expect(params).to include(batch_args)
223
223
  end
224
224
 
225
225
  it "includes the method" do
226
226
  params = Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args).to_batch_params(@args[:access_token])
227
- params[:method].should == @args[:method].to_s
227
+ expect(params[:method]).to eq(@args[:method].to_s)
228
228
  end
229
229
 
230
230
  it "works with nil http_options" do
@@ -238,14 +238,14 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
238
238
  describe "with binary files" do
239
239
  before :each do
240
240
  @binary = double("Binary file")
241
- Koala::UploadableIO.stub(:binary_content?).and_return(false)
242
- Koala::UploadableIO.stub(:binary_content?).with(@binary).and_return(true)
241
+ allow(Koala::UploadableIO).to receive(:binary_content?).and_return(false)
242
+ allow(Koala::UploadableIO).to receive(:binary_content?).with(@binary).and_return(true)
243
243
  @uploadable_io = double("UploadableIO")
244
- Koala::UploadableIO.stub(:new).with(@binary).and_return(@uploadable_io)
245
- @uploadable_io.stub(:is_a?).with(Koala::UploadableIO).and_return(true)
244
+ allow(Koala::UploadableIO).to receive(:new).with(@binary).and_return(@uploadable_io)
245
+ allow(@uploadable_io).to receive(:is_a?).with(Koala::UploadableIO).and_return(true)
246
246
 
247
247
  @batch_queue = []
248
- Koala::Facebook::GraphAPI.stub(:batch_calls).and_return(@batch_queue)
248
+ allow(Koala::Facebook::GraphAPI).to receive(:batch_calls).and_return(@batch_queue)
249
249
 
250
250
  @args[:method] = "post" # files are always post
251
251
  end
@@ -255,7 +255,7 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
255
255
  batch_op = Koala::Facebook::GraphBatchAPI::BatchOperation.new(@args)
256
256
  file_ids = batch_op.files.find_all {|k, v| v == @uploadable_io}.map {|k, v| k}
257
257
  params = batch_op.to_batch_params(nil)
258
- params[:attached_files].should == file_ids.join(",")
258
+ expect(params[:attached_files]).to eq(file_ids.join(","))
259
259
  end
260
260
  end
261
261
  end
@@ -264,33 +264,33 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
264
264
 
265
265
  describe "GraphAPI batch interface" do
266
266
  it "returns nothing for a batch operation" do
267
- Koala.stub(:make_request).and_return(Koala::HTTPService::Response.new(200, "[]", {}))
267
+ allow(Koala).to receive(:make_request).and_return(Koala::HTTPService::Response.new(200, "[]", {}))
268
268
  @api.batch do |batch_api|
269
- batch_api.get_object('me').should be_nil
269
+ expect(batch_api.get_object('me')).to be_nil
270
270
  end
271
271
  end
272
272
 
273
273
  describe "#batch" do
274
274
  before :each do
275
275
  @fake_response = Koala::HTTPService::Response.new(200, "[]", {})
276
- Koala.stub(:make_request).and_return(@fake_response)
276
+ allow(Koala).to receive(:make_request).and_return(@fake_response)
277
277
  end
278
278
 
279
279
  describe "making the request" do
280
280
  context "with no calls" do
281
281
  it "does not make any requests if batch_calls is empty" do
282
- Koala.should_not_receive(:make_request)
282
+ expect(Koala).not_to receive(:make_request)
283
283
  @api.batch {|batch_api|}
284
284
  end
285
285
 
286
286
  it "returns []" do
287
- @api.batch {|batch_api|}.should == []
287
+ expect(@api.batch {|batch_api|}).to eq([])
288
288
  end
289
289
  end
290
290
 
291
291
  it "includes the first operation's access token as the main one in the args" do
292
292
  access_token = "foo"
293
- Koala.should_receive(:make_request).with(anything, hash_including("access_token" => access_token), anything, anything).and_return(@fake_response)
293
+ expect(Koala).to receive(:make_request).with(anything, hash_including("access_token" => access_token), anything, anything).and_return(@fake_response)
294
294
  Koala::Facebook::API.new(access_token).batch do |batch_api|
295
295
  batch_api.get_object('me')
296
296
  batch_api.get_object('me', {}, {'access_token' => 'bar'})
@@ -300,12 +300,12 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
300
300
  it "sets args['batch'] to a json'd map of all the batch params" do
301
301
  access_token = "bar"
302
302
  op = Koala::Facebook::GraphBatchAPI::BatchOperation.new(:access_token => access_token, :method => :get, :url => "/")
303
- op.stub(:to_batch_params).and_return({:a => 2})
304
- Koala::Facebook::GraphBatchAPI::BatchOperation.stub(:new).and_return(op)
303
+ allow(op).to receive(:to_batch_params).and_return({:a => 2})
304
+ allow(Koala::Facebook::GraphBatchAPI::BatchOperation).to receive(:new).and_return(op)
305
305
 
306
306
  # two requests should generate two batch operations
307
307
  expected = MultiJson.dump([op.to_batch_params(access_token), op.to_batch_params(access_token)])
308
- Koala.should_receive(:make_request).with(anything, hash_including("batch" => expected), anything, anything).and_return(@fake_response)
308
+ expect(Koala).to receive(:make_request).with(anything, hash_including("batch" => expected), anything, anything).and_return(@fake_response)
309
309
  Koala::Facebook::API.new(access_token).batch do |batch_api|
310
310
  batch_api.get_object('me')
311
311
  batch_api.get_object('me')
@@ -319,9 +319,9 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
319
319
  @key = "file0_0"
320
320
  @uploadable_io = double("UploadableIO")
321
321
  batch_op = double("Koala Batch Operation", :files => {@key => @uploadable_io}, :to_batch_params => {}, :access_token => "foo")
322
- Koala::Facebook::GraphBatchAPI::BatchOperation.stub(:new).and_return(batch_op)
322
+ allow(Koala::Facebook::GraphBatchAPI::BatchOperation).to receive(:new).and_return(batch_op)
323
323
 
324
- Koala.should_receive(:make_request).with(anything, hash_including(@key => @uploadable_io), anything, anything).and_return(@fake_response)
324
+ expect(Koala).to receive(:make_request).with(anything, hash_including(@key => @uploadable_io), anything, anything).and_return(@fake_response)
325
325
  Koala::Facebook::API.new("bar").batch do |batch_api|
326
326
  batch_api.put_picture("path/to/file", "image/jpeg")
327
327
  end
@@ -330,9 +330,9 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
330
330
  it "preserves operation order" do
331
331
  access_token = "bar"
332
332
  # two requests should generate two batch operations
333
- Koala.should_receive(:make_request) do |url, args, method, options|
333
+ expect(Koala).to receive(:make_request) do |url, args, method, options|
334
334
  # test the batch operations to make sure they appear in the right order
335
- (args ||= {})["batch"].should =~ /.*me\/farglebarg.*otheruser\/bababa/
335
+ expect((args ||= {})["batch"]).to match(/.*me\/farglebarg.*otheruser\/bababa/)
336
336
  @fake_response
337
337
  end
338
338
  Koala::Facebook::API.new(access_token).batch do |batch_api|
@@ -342,14 +342,14 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
342
342
  end
343
343
 
344
344
  it "makes a POST request" do
345
- Koala.should_receive(:make_request).with(anything, anything, "post", anything).and_return(@fake_response)
345
+ expect(Koala).to receive(:make_request).with(anything, anything, "post", anything).and_return(@fake_response)
346
346
  Koala::Facebook::API.new("foo").batch do |batch_api|
347
347
  batch_api.get_object('me')
348
348
  end
349
349
  end
350
350
 
351
351
  it "makes a request to /" do
352
- Koala.should_receive(:make_request).with("/", anything, anything, anything).and_return(@fake_response)
352
+ expect(Koala).to receive(:make_request).with("/", anything, anything, anything).and_return(@fake_response)
353
353
  Koala::Facebook::API.new("foo").batch do |batch_api|
354
354
  batch_api.get_object('me')
355
355
  end
@@ -357,7 +357,7 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
357
357
 
358
358
  it "includes any http options specified at the top level" do
359
359
  http_options = {"a" => "baz"}
360
- Koala.should_receive(:make_request).with(anything, anything, anything, hash_including(http_options)).and_return(@fake_response)
360
+ expect(Koala).to receive(:make_request).with(anything, anything, anything, hash_including(http_options)).and_return(@fake_response)
361
361
  Koala::Facebook::API.new("foo").batch(http_options) do |batch_api|
362
362
  batch_api.get_object('me')
363
363
  end
@@ -366,23 +366,23 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
366
366
 
367
367
  describe "processing the request" do
368
368
  it "returns the result headers as a hash if http_component is headers" do
369
- Koala.stub(:make_request).and_return(Koala::HTTPService::Response.new(200, '[{"code":203,"headers":[{"name":"Content-Type","value":"text/javascript; charset=UTF-8"}],"body":"{\"id\":\"1234\"}"}]', {}))
369
+ allow(Koala).to receive(:make_request).and_return(Koala::HTTPService::Response.new(200, '[{"code":203,"headers":[{"name":"Content-Type","value":"text/javascript; charset=UTF-8"}],"body":"{\"id\":\"1234\"}"}]', {}))
370
370
  result = @api.batch do |batch_api|
371
371
  batch_api.get_object(KoalaTest.user1, {}, :http_component => :headers)
372
372
  end
373
- result[0].should == {"Content-Type" => "text/javascript; charset=UTF-8"}
373
+ expect(result[0]).to eq({"Content-Type" => "text/javascript; charset=UTF-8"})
374
374
  end
375
375
 
376
376
  describe "if it errors" do
377
377
  it "raises an APIError if the response is not 200" do
378
- Koala.stub(:make_request).and_return(Koala::HTTPService::Response.new(500, "[]", {}))
378
+ allow(Koala).to receive(:make_request).and_return(Koala::HTTPService::Response.new(500, "[]", {}))
379
379
  expect {
380
380
  Koala::Facebook::API.new("foo").batch {|batch_api| batch_api.get_object('me') }
381
381
  }.to raise_exception(Koala::Facebook::APIError)
382
382
  end
383
383
 
384
384
  it "raises a BadFacebookResponse if the body is empty" do
385
- Koala.stub(:make_request).and_return(Koala::HTTPService::Response.new(200, "", {}))
385
+ allow(Koala).to receive(:make_request).and_return(Koala::HTTPService::Response.new(200, "", {}))
386
386
  expect {
387
387
  Koala::Facebook::API.new("foo").batch {|batch_api| batch_api.get_object('me') }
388
388
  }.to raise_exception(Koala::Facebook::BadFacebookResponse)
@@ -390,7 +390,7 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
390
390
 
391
391
  context "with the old style" do
392
392
  before :each do
393
- Koala.stub(:make_request).and_return(Koala::HTTPService::Response.new(400, '{"error_code":190,"error_description":"Error validating access token."}', {}))
393
+ allow(Koala).to receive(:make_request).and_return(Koala::HTTPService::Response.new(400, '{"error_code":190,"error_description":"Error validating access token."}', {}))
394
394
  end
395
395
 
396
396
  it "throws an error" do
@@ -403,8 +403,8 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
403
403
  begin
404
404
  Koala::Facebook::API.new("foo").batch {|batch_api| batch_api.get_object('me') }
405
405
  rescue Koala::Facebook::APIError => err
406
- err.fb_error_code.should == 190
407
- err.fb_error_message.should == "Error validating access token."
406
+ expect(err.fb_error_code).to eq(190)
407
+ expect(err.fb_error_message).to eq("Error validating access token.")
408
408
  err.http_status == 400
409
409
  err.response_body == '{"error_code":190,"error_description":"Error validating access token."}'
410
410
  end
@@ -413,7 +413,7 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
413
413
 
414
414
  context "with the new style" do
415
415
  before :each do
416
- Koala.stub(:make_request).and_return(Koala::HTTPService::Response.new(400, '{"error":{"message":"Request 0 cannot depend on an unresolved request with name f. Requests can only depend on preceding requests","type":"GraphBatchException"}}', {}))
416
+ allow(Koala).to receive(:make_request).and_return(Koala::HTTPService::Response.new(400, '{"error":{"message":"Request 0 cannot depend on an unresolved request with name f. Requests can only depend on preceding requests","type":"GraphBatchException"}}', {}))
417
417
  end
418
418
 
419
419
  it "throws an error" do
@@ -426,8 +426,8 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
426
426
  begin
427
427
  Koala::Facebook::API.new("foo").batch {|batch_api| batch_api.get_object('me') }
428
428
  rescue Koala::Facebook::APIError => err
429
- err.fb_error_type.should == "GraphBatchException"
430
- err.fb_error_message.should == "Request 0 cannot depend on an unresolved request with name f. Requests can only depend on preceding requests"
429
+ expect(err.fb_error_type).to eq("GraphBatchException")
430
+ expect(err.fb_error_message).to eq("Request 0 cannot depend on an unresolved request with name f. Requests can only depend on preceding requests")
431
431
  err.http_status == 400
432
432
  err.response_body == '{"error":{"message":"Request 0 cannot depend on an unresolved request with name f. Requests can only depend on preceding requests","type":"GraphBatchException"}}'
433
433
  end
@@ -436,11 +436,11 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
436
436
  end
437
437
 
438
438
  it "returns the result status if http_component is status" do
439
- Koala.stub(:make_request).and_return(Koala::HTTPService::Response.new(200, '[{"code":203,"headers":[{"name":"Content-Type","value":"text/javascript; charset=UTF-8"}],"body":"{\"id\":\"1234\"}"}]', {}))
439
+ allow(Koala).to receive(:make_request).and_return(Koala::HTTPService::Response.new(200, '[{"code":203,"headers":[{"name":"Content-Type","value":"text/javascript; charset=UTF-8"}],"body":"{\"id\":\"1234\"}"}]', {}))
440
440
  result = @api.batch do |batch_api|
441
441
  batch_api.get_object(KoalaTest.user1, {}, :http_component => :status)
442
442
  end
443
- result[0].should == 203
443
+ expect(result[0]).to eq(203)
444
444
  end
445
445
  end
446
446
 
@@ -451,7 +451,7 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
451
451
  first_count = 20
452
452
  second_count = 10
453
453
 
454
- Koala.stub(:make_request).and_return(@fake_response)
454
+ allow(Koala).to receive(:make_request).and_return(@fake_response)
455
455
 
456
456
  thread1 = Thread.new do
457
457
  @api.batch do |batch_api|
@@ -470,8 +470,8 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
470
470
  thread1.join
471
471
  thread2.join
472
472
 
473
- thread_one_count.should == first_count
474
- thread_two_count.should == second_count
473
+ expect(thread_one_count).to eq(first_count)
474
+ expect(thread_two_count).to eq(second_count)
475
475
  end
476
476
  end
477
477
  end
@@ -482,8 +482,8 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
482
482
  batch_api.get_object('me')
483
483
  batch_api.get_object(KoalaTest.user1)
484
484
  end
485
- me['id'].should_not be_nil
486
- koppel['id'].should_not be_nil
485
+ expect(me['id']).not_to be_nil
486
+ expect(koppel['id']).not_to be_nil
487
487
  end
488
488
 
489
489
  it 'makes mixed calls inside of a batch' do
@@ -491,7 +491,7 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
491
491
  batch_api.get_object('me')
492
492
  batch_api.get_connections('me', 'friends')
493
493
  end
494
- friends.should be_a(Koala::Facebook::GraphCollection)
494
+ expect(friends).to be_a(Koala::Facebook::GraphCollection)
495
495
  end
496
496
 
497
497
  it 'turns pageable results into GraphCollections' do
@@ -499,15 +499,15 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
499
499
  batch_api.get_object('me')
500
500
  batch_api.get_connections('me', 'friends')
501
501
  end
502
- me['id'].should_not be_nil
503
- friends.should be_an(Array)
502
+ expect(me['id']).not_to be_nil
503
+ expect(friends).to be_an(Array)
504
504
  end
505
505
 
506
506
  it 'makes a get_picture call inside of a batch' do
507
507
  pictures = @api.batch do |batch_api|
508
508
  batch_api.get_picture('me')
509
509
  end
510
- pictures.first.should =~ /http\:\/\// # works both live & stubbed
510
+ expect(pictures.first).to match(/http\:\/\//) # works both live & stubbed
511
511
  end
512
512
 
513
513
  it "handles requests for two different tokens" do
@@ -515,8 +515,8 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
515
515
  batch_api.get_object('me')
516
516
  batch_api.get_connections(@app_id, 'insights', {}, {"access_token" => @app_api.access_token})
517
517
  end
518
- me['id'].should_not be_nil
519
- insights.should be_an(Koala::Facebook::GraphCollection)
518
+ expect(me['id']).not_to be_nil
519
+ expect(insights).to be_an(Koala::Facebook::GraphCollection)
520
520
  end
521
521
 
522
522
  it "preserves batch-op specific access tokens in GraphCollection returned from batch" do
@@ -531,11 +531,11 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
531
531
 
532
532
  # The alternate token is returned with the next page parameters
533
533
  # The GraphCollection should receive a request for the next_page_params during paging
534
- insights.should_receive(:next_page_params).and_return([double("base"), @other_access_token_args.dup])
534
+ expect(insights).to receive(:next_page_params).and_return([double("base"), @other_access_token_args.dup])
535
535
 
536
536
  # The alternate access token should pass through to making the request
537
537
  # Koala should receive a request during paging using the alternate token
538
- Koala.should_receive(:make_request).with(
538
+ expect(Koala).to receive(:make_request).with(
539
539
  anything,
540
540
  hash_including(@other_access_token_args.dup),
541
541
  anything,
@@ -551,8 +551,8 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
551
551
  batch_api.get_connection("2", "invalidconnection")
552
552
  batch_api.get_object(KoalaTest.user1, {}, {"access_token" => @app_api.access_token})
553
553
  end
554
- failed_call.should be_a(Koala::Facebook::ClientError)
555
- koppel["id"].should_not be_nil
554
+ expect(failed_call).to be_a(Koala::Facebook::ClientError)
555
+ expect(koppel["id"]).not_to be_nil
556
556
  end
557
557
 
558
558
  it "handles different request methods" do
@@ -571,8 +571,8 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
571
571
  end
572
572
 
573
573
  fql_result = result[0]
574
- fql_result[0].should be_a(Hash)
575
- fql_result[0]["first_name"].should == "Alex"
574
+ expect(fql_result[0]).to be_a(Hash)
575
+ expect(fql_result[0]["first_name"]).to eq("Alex")
576
576
  end
577
577
 
578
578
  describe 'with post-processing callback' do
@@ -587,8 +587,8 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
587
587
  batch_api.get_object('me', &me_callback)
588
588
  batch_api.get_connections('me', 'friends', &friends_callback)
589
589
  end
590
- me["args"].should include("id" => KoalaTest.user1)
591
- friends["args"].first.should include("id" => KoalaTest.user2)
590
+ expect(me["args"]).to include("id" => KoalaTest.user1)
591
+ expect(friends["args"].first).to include("id" => KoalaTest.user2)
592
592
  end
593
593
 
594
594
  it 'passes GraphCollections, not raw data' do
@@ -596,14 +596,14 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
596
596
  batch_api.get_object('me')
597
597
  batch_api.get_connections('me', 'friends', &friends_callback)
598
598
  end
599
- friends["args"].should be_a(Koala::Facebook::API::GraphCollection)
599
+ expect(friends["args"]).to be_a(Koala::Facebook::API::GraphCollection)
600
600
  end
601
601
 
602
602
  it "returns the result of the callback" do
603
- @api.batch do |batch_api|
603
+ expect(@api.batch do |batch_api|
604
604
  batch_api.get_object('me', &me_callback)
605
605
  batch_api.get_connections('me', 'friends', &friends_callback)
606
- end.map {|r| r["result"]}.should == [me_result, friends_result]
606
+ end.map {|r| r["result"]}).to eq([me_result, friends_result])
607
607
  end
608
608
  end
609
609
 
@@ -617,7 +617,7 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
617
617
  end
618
618
 
619
619
  @temporary_object_id = result[0]["id"]
620
- @temporary_object_id.should_not be_nil
620
+ expect(@temporary_object_id).not_to be_nil
621
621
  end
622
622
 
623
623
  it "posts binary files with multiple requests" do
@@ -629,8 +629,8 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
629
629
  batch_api.put_picture(file)
630
630
  batch_api.put_picture(file2, {}, KoalaTest.user1)
631
631
  end
632
- results[0]["id"].should_not be_nil
633
- results[1]["id"].should_not be_nil
632
+ expect(results[0]["id"]).not_to be_nil
633
+ expect(results[1]["id"]).not_to be_nil
634
634
  end
635
635
  end
636
636
 
@@ -641,8 +641,8 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
641
641
  batch_api.get_objects("{result=get-friends:$.data.*.id}")
642
642
  end
643
643
 
644
- results[0].should be_nil
645
- results[1].should be_an(Hash)
644
+ expect(results[0]).to be_nil
645
+ expect(results[1]).to be_an(Hash)
646
646
  end
647
647
 
648
648
  it "allows you create relationships between requests with omit_response_on_success" do
@@ -651,8 +651,8 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
651
651
  batch_api.get_objects("{result=get-friends:$.data.*.id}")
652
652
  end
653
653
 
654
- results[0].should be_an(Array)
655
- results[1].should be_an(Hash)
654
+ expect(results[0]).to be_an(Array)
655
+ expect(results[1]).to be_an(Hash)
656
656
  end
657
657
 
658
658
  it "allows you to create dependencies" do
@@ -661,8 +661,8 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
661
661
  batch_api.get_object(KoalaTest.user1, {}, :batch_args => {:depends_on => "getme"})
662
662
  end
663
663
 
664
- me.should be_nil # gotcha! it's omitted because it's a successfully-executed dependency
665
- koppel["id"].should_not be_nil
664
+ expect(me).to be_nil # gotcha! it's omitted because it's a successfully-executed dependency
665
+ expect(koppel["id"]).not_to be_nil
666
666
  end
667
667
 
668
668
  it "properly handles dependencies that fail" do
@@ -671,8 +671,8 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
671
671
  batch_api.get_object(KoalaTest.user1, {}, :batch_args => {:depends_on => "getdata"})
672
672
  end
673
673
 
674
- failed_call.should be_a(Koala::Facebook::ClientError)
675
- koppel.should be_nil
674
+ expect(failed_call).to be_a(Koala::Facebook::ClientError)
675
+ expect(koppel).to be_nil
676
676
  end
677
677
 
678
678
  it "throws an error for badly-constructed request relationships" do