#encoding: UTF-8 require "spec_helper" describe PlataformaSocial::Ranking do describe "Platform Route" do it "return correct url" do PlataformaSocial::Ranking.socialp_route.should == "http://ranking.dev.plataformasocial.com.br" end end describe "CREATE a new ranking" do before :each do @params = { :user_reference => 1, :points => 1 } end context "when request is successful" do it "for general ranking", :vcr do ranking = PlataformaSocial::Ranking.new ranking.create(@params).should == "" end it "for custom date ranking", :vcr do @params.merge!({ :start_date => Date.today - 5.days, :end_date => Date.today }) ranking = PlataformaSocial::Ranking.new ranking.create(@params).should == "" end it "using min and max params ranking", :vcr do @params.merge!({ :min => 0, :max => 5 }) ranking = PlataformaSocial::Ranking.new ranking.create(@params).should == "" end it "using max param ranking", :vcr do @params.merge!({ :max => 5 }) ranking = PlataformaSocial::Ranking.new ranking.create(@params).should == "" end it "using min param ranking", :vcr do @params.merge!({ :min => 0 }) ranking = PlataformaSocial::Ranking.new ranking.create(@params).should == "" end end context "when request is failed" do [:user_reference, :points].each do |param| it "dont using params: #{param}" do @params.delete param ranking = PlataformaSocial::Ranking.new ranking.create(@params).should == "Faltando o parâmetro: #{param}" end end it "using only end_date" do @params.merge!({ :end_date => Date.today }) ranking = PlataformaSocial::Ranking.new ranking.create(@params).should == "Quando temos o parâmetro end_date, temos que ter obrigatóriamente o parâmetro start_date" end it "using only start_date" do @params.merge!({ :start_date => Date.today - 5.days }) ranking = PlataformaSocial::Ranking.new ranking.create(@params).should == "Quando temos o parâmetro start_date, temos que ter obrigatóriamente o parâmetro end_date" end end end describe "GET window" do context "when request is successful" do before :all, :vcr do @ranking = PlataformaSocial::Ranking.new @ranking.create({ :user_reference => 2, :points => 3 }) @ranking.create({ :user_reference => 3, :points => 2 }) @ranking.create({ :user_reference => 4, :points => 4 }) end it "with up param", :vcr do @ranking.window({ :user_reference => 3, :up => 2 })["users"].count.should be(3) end it "with down param", :vcr do @ranking.window({ :user_reference => 4, :down => 2 })["users"].count.should be(3) end it "with up and down param", :vcr do @ranking.window({ :user_reference => 2, :up => 1, :down => 1 })["users"].count.should be(3) end it "without up and down param", :vcr do @ranking.window({ :user_reference => 2 })["users"].count.should be(1) end it "with friends param", :vcr do @ranking.window({ :user_reference => 2, :friends => true })["users"].count.should be(1) end it "with limit param", :vcr do @ranking.window({ :user_reference => 4, :down => 2, :limit => 1 })["users"].count.should be(1) end it "with date params", :vcr do @ranking.create({ :user_reference => 4, :points => 3, :start_date => Date.today - 5.days, :end_date => Date.today }) @ranking.window({ :user_reference => 4, :start_date => Date.today - 5.days, :end_date => Date.today })["users"].count.should be(1) end end context "when request is failed" do it "without user_reference param" do ranking = PlataformaSocial::Ranking.new ranking.window.should == "Faltando o parâmetro: user_reference" end end end describe "GET friends" do before :all, :vcr do @ranking = PlataformaSocial::Ranking.new @ranking.create({ :user_reference => 2, :points => 3 }) @ranking.create({ :user_reference => 3, :points => 2 }) @ranking.create({ :user_reference => 4, :points => 4 }) end context "when request is successful" do it "with limit param", :vcr do @ranking.friends({ :user_reference => 3, :limit => 2 })["users"].count.should be(2) end it "with page param", :vcr do @ranking.friends({ :user_reference => 3, :page => 2, :limit => 5 })["users"].count.should be(0) end it "with page and limit param", :vcr do @ranking.friends({ :user_reference => 3, :limit => 1, :page => 1 })["users"].count.should be(1) end end context "when request is failed" do it "without user_reference param" do ranking = PlataformaSocial::Ranking.new ranking.friends.should == "Faltando o parâmetro: user_reference" end end end end