require "helper"

describe Twitter::REST::Search do
  before do
    @client = Twitter::REST::Client.new(consumer_key: "CK", consumer_secret: "CS", access_token: "AT", access_token_secret: "AS")
  end

  describe "#search" do
    context "without count specified" do
      before do
        stub_get("/1.1/search/tweets.json").with(query: {q: "#freebandnames", count: "100"}).to_return(body: fixture("search.json"), headers: {content_type: "application/json; charset=utf-8"})
      end

      it "requests the correct resource" do
        @client.search("#freebandnames")
        expect(a_get("/1.1/search/tweets.json").with(query: {q: "#freebandnames", count: "100"})).to have_been_made
      end

      it "returns recent Tweets related to a query with images and videos embedded" do
        search = @client.search("#freebandnames")
        expect(search).to be_a Twitter::SearchResults
        expect(search.first).to be_a Twitter::Tweet
        expect(search.first.text).to eq("@Just_Reboot #FreeBandNames mono surround")
      end
    end

    context "with count specified" do
      before do
        stub_get("/1.1/search/tweets.json").with(query: {q: "#freebandnames", count: "3"}).to_return(body: fixture("search.json"), headers: {content_type: "application/json; charset=utf-8"})
      end

      it "requests the correct resource" do
        @client.search("#freebandnames", count: 3)
        expect(a_get("/1.1/search/tweets.json").with(query: {q: "#freebandnames", count: "3"})).to have_been_made
      end

      it "returns recent Tweets related to a query with images and videos embedded" do
        search = @client.search("#freebandnames", count: 3)
        expect(search).to be_a Twitter::SearchResults
        expect(search.first).to be_a Twitter::Tweet
        expect(search.first.text).to eq("@Just_Reboot #FreeBandNames mono surround")
      end
    end
  end
end
