spec/cases/graph_collection_spec.rb in koala-2.5.0 vs spec/cases/graph_collection_spec.rb in koala-3.0.0.beta1
- old
+ new
@@ -1,26 +1,26 @@
require 'spec_helper'
-describe Koala::Facebook::GraphCollection do
+describe Koala::Facebook::API::GraphCollection do
let(:paging){ {:paging => true} }
before(:each) do
@result = {
"data" => [1, 2, :three],
"paging" => paging,
"summary" => [3]
}
@api = Koala::Facebook::API.new("123")
- @collection = Koala::Facebook::GraphCollection.new(@result, @api)
+ @collection = Koala::Facebook::API::GraphCollection.new(@result, @api)
end
it "subclasses Array" do
- expect(Koala::Facebook::GraphCollection.ancestors).to include(Array)
+ expect(Koala::Facebook::API::GraphCollection.ancestors).to include(Array)
end
it "creates an array-like object" do
- expect(Koala::Facebook::GraphCollection.new(@result, @api)).to be_an(Array)
+ expect(Koala::Facebook::API::GraphCollection.new(@result, @api)).to be_an(Array)
end
it "contains the result data" do
@result["data"].each_with_index {|r, i| expect(@collection[i]).to eq(r)}
end
@@ -58,18 +58,18 @@
end
it "should return the previous page of results" do
expect(@collection).to receive(:previous_page_params).and_return([@base, @args])
expect(@api).to receive(:api).with(@base, @args, anything, anything).and_return(@second_page)
- expect(Koala::Facebook::GraphCollection).to receive(:new).with(@second_page, @api).and_return(@page_of_results)
+ expect(Koala::Facebook::API::GraphCollection).to receive(:new).with(@second_page, @api).and_return(@page_of_results)
expect(@collection.previous_page).to eq(@page_of_results)
end
it "should return the next page of results" do
expect(@collection).to receive(:next_page_params).and_return([@base, @args])
expect(@api).to receive(:api).with(@base, @args, anything, anything).and_return(@second_page)
- expect(Koala::Facebook::GraphCollection).to receive(:new).with(@second_page, @api).and_return(@page_of_results)
+ expect(Koala::Facebook::API::GraphCollection).to receive(:new).with(@second_page, @api).and_return(@page_of_results)
expect(@collection.next_page).to eq(@page_of_results)
end
it "should return nil it there are no other pages" do
@@ -82,71 +82,71 @@
describe "when parsing page paramters" do
describe "#parse_page_url" do
it "should pass the url to the class method" do
url = double("url")
- expect(Koala::Facebook::GraphCollection).to receive(:parse_page_url).with(url)
+ expect(Koala::Facebook::API::GraphCollection).to receive(:parse_page_url).with(url)
@collection.parse_page_url(url)
end
it "should return the result of the class method" do
parsed_content = double("parsed_content")
- allow(Koala::Facebook::GraphCollection).to receive(:parse_page_url).and_return(parsed_content)
+ allow(Koala::Facebook::API::GraphCollection).to receive(:parse_page_url).and_return(parsed_content)
expect(@collection.parse_page_url(double("url"))).to eq(parsed_content)
end
end
describe ".parse_page_url" do
it "should return the base as the first array entry" do
base = "url_path"
- expect(Koala::Facebook::GraphCollection.parse_page_url("http://facebook.com/#{base}?anything").first).to eq(base)
+ expect(Koala::Facebook::API::GraphCollection.parse_page_url("http://facebook.com/#{base}?anything").first).to eq(base)
end
it "should return the arguments as a hash as the last array entry" do
args_hash = {"one" => "val_one", "two" => "val_two"}
- expect(Koala::Facebook::GraphCollection.parse_page_url("http://facebook.com/anything?#{args_hash.map {|k,v| "#{k}=#{v}" }.join("&")}").last).to eq(args_hash)
+ expect(Koala::Facebook::API::GraphCollection.parse_page_url("http://facebook.com/anything?#{args_hash.map {|k,v| "#{k}=#{v}" }.join("&")}").last).to eq(args_hash)
end
it "works with non-.com addresses" do
base = "url_path"
args_hash = {"one" => "val_one", "two" => "val_two"}
- expect(Koala::Facebook::GraphCollection.parse_page_url("http://facebook.com/#{base}?#{args_hash.map {|k,v| "#{k}=#{v}" }.join("&")}")).to eq([base, args_hash])
+ expect(Koala::Facebook::API::GraphCollection.parse_page_url("http://facebook.com/#{base}?#{args_hash.map {|k,v| "#{k}=#{v}" }.join("&")}")).to eq([base, args_hash])
end
it "works with addresses with irregular characters" do
access_token = "appid123a|fdcba"
- base, args_hash = Koala::Facebook::GraphCollection.parse_page_url("http://facebook.com/foo?token=#{access_token}")
+ base, args_hash = Koala::Facebook::API::GraphCollection.parse_page_url("http://facebook.com/foo?token=#{access_token}")
expect(args_hash["token"]).to eq(access_token)
end
end
end
describe ".evaluate" do
it "returns the original result if it's provided a non-hash result" do
result = []
- expect(Koala::Facebook::GraphCollection.evaluate(result, @api)).to eq(result)
+ expect(Koala::Facebook::API::GraphCollection.evaluate(result, @api)).to eq(result)
end
it "returns the original result if it's provided a nil result" do
result = nil
- expect(Koala::Facebook::GraphCollection.evaluate(result, @api)).to eq(result)
+ expect(Koala::Facebook::API::GraphCollection.evaluate(result, @api)).to eq(result)
end
it "returns the original result if the result doesn't have a data key" do
result = {"paging" => {}}
- expect(Koala::Facebook::GraphCollection.evaluate(result, @api)).to eq(result)
+ expect(Koala::Facebook::API::GraphCollection.evaluate(result, @api)).to eq(result)
end
it "returns the original result if the result's data key isn't an array" do
result = {"data" => {}, "paging" => {}}
- expect(Koala::Facebook::GraphCollection.evaluate(result, @api)).to eq(result)
+ expect(Koala::Facebook::API::GraphCollection.evaluate(result, @api)).to eq(result)
end
it "returns a new GraphCollection of the result if it has an array data key and a paging key" do
result = {"data" => [], "paging" => {}}
expected = :foo
- expect(Koala::Facebook::GraphCollection).to receive(:new).with(result, @api).and_return(expected)
- expect(Koala::Facebook::GraphCollection.evaluate(result, @api)).to eq(expected)
+ expect(Koala::Facebook::API::GraphCollection).to receive(:new).with(result, @api).and_return(expected)
+ expect(Koala::Facebook::API::GraphCollection.evaluate(result, @api)).to eq(expected)
end
end
describe "#next_page" do
let(:paging){ {"next" => "http://example.com/abc?a=2&b=3"} }