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"} }