require File.dirname(__FILE__) + '/../test_helper'
require 'flexmock/test_unit'
class FbTest < Test::Unit::TestCase
fixtures :users
def setup
@fb_user = flexmock("fbuser", :session_user_id => 2820)
end
def test_user_id
assert_equal Fb.user_id(@fb_user), 2820
assert_raise(ArgumentError) { Fb.user_id }
end
def test_get_fql_query
fb = flexmock("fql_query", :fql_query => flexmock("query", :query => nil ))
assert data = Fb.get_fql_query(fb, "ccc")
assert_raise(ArgumentError) { Fb.get_fql_query }
end
def test_get_friends_data
fbf = [234234, 432423]
flexmock(Fb).should_receive(:friends_get).and_return(fbf)
friends = Fb.friends_get(@fb_user)
assert_equal Array, friends.class
assert_equal 2, friends.size
end
def test_get_user_data1
xml = "test/unit/user2.xml"
doc = RFacebook::Facepricot.new(open(xml))
flexmock(Fb).should_receive(:get_fql_query).and_return(doc)
assert !User.find_by_fbid(2820)
assert user = Fb.get_user_data(@fb_user)
assert_equal User, user.class
end
def test_get_user_data2
fb_user = flexmock("fbuser", :session_user_id => 123)
xml = "test/unit/user1.xml"
doc = RFacebook::Facepricot.new(open(xml))
flexmock(Fb).should_receive(:get_fql_query).and_return(doc)
assert !User.find_by_fbid(123)
assert user = Fb.get_user_data(fb_user)
assert_equal User, user.class
end
def test_get_user_data3
xml = "test/unit/user3.xml"
doc = RFacebook::Facepricot.new(open(xml))
flexmock(Fb).should_receive(:get_fql_query).and_return(doc)
assert !User.find_by_fbid(507687915)
assert user = Fb.get_user_data(@fb_user)
assert_equal User, user.class
end
def test_get_user_data4
fb_user = flexmock("fbuser", :session_user_id => 758625496)
xml = "test/unit/user4.xml"
doc = RFacebook::Facepricot.new(open(xml))
flexmock(Fb).should_receive(:get_fql_query).and_return(doc)
assert User.find_by_fbid(758625496)
assert user = Fb.get_user_data(fb_user)
assert_equal User, user.class
end
def test_get_user_data5
fb_user = flexmock("fbuser", :session_user_id => 123)
xml = "test/unit/user5.xml"
doc = RFacebook::Facepricot.new(open(xml))
flexmock(Fb).should_receive(:get_fql_query).and_return(doc)
assert !User.find_by_fbid(666666)
assert user = Fb.get_user_data(fb_user)
assert_equal User, user.class
end
def test_get_user_data_again
fb_user = flexmock(:session_user_id => 666)
u = Fb.get_user_data(fb_user)
assert_equal User, u.class
assert_raise(RuntimeError) { Fb.get_user_data(nil) }
end
def test_set_publish_action_of_user_using
flexmock(Fb).should_receive(:publish_data_to_feed).and_return(true)
changes = { :new => ["new1","new2"], :old => ["old1"] }
user = users(:duncanrobertson)
assert Fb.set_publish_action_of_user_using(@fb_user, changes, user)
assert !Fb.set_publish_action_of_user_using(@fb_user, "oops", user)
end
def test_build_change_list
assert_equal Fb.send(:build_change_list, { :new => ["new1","new2"], :old => ["old1"] }),
"Adding new1, new2 and Removing old1"
assert_equal Fb.send(:build_change_list, { :new => ["new1","new2","old1"], :old => ["old1"] }),
"Adding new1, new2, old1 and Removing old1"
end
end