require File.dirname(__FILE__) + '/test_helper.rb'
class FacebookAdminTest < Test::Unit::TestCase
def setup
@session = Facebooker::Session.create('apikey', 'secretkey')
Facebooker.use_curl=false
end
def test_can_ask_facebook_to_set_app_properties
expect_http_posts_with_responses(example_set_properties_xml)
properties = { :application_name => "Video Jukebox", :dev_mode => 0 }
assert(@session.admin.set_app_properties(properties))
end
def test_set_app_properties_json_conversion
properties = { :application_name => "Video Jukebox", :dev_mode => 0 }
flexmock(@session).should_receive(:post).with('facebook.admin.setAppProperties', :properties => properties.to_json).and_return('1').once
assert(@session.admin.set_app_properties(properties))
end
def test_can_ask_facebook_to_get_app_properties
expect_http_posts_with_responses(example_get_properties_xml)
properties = [ :application_name, :dev_mode ]
assert(@session.admin.get_app_properties(properties))
end
def test_can_get_properties
mock_http = establish_session
mock_http.should_receive(:post_form).and_return(example_get_properties_xml).once.ordered(:posts)
p = @session.admin.get_app_properties(:application_name, :dev_mode, :canvas_name)
assert_equal 'Video Jukebox', p.application_name
assert_equal 0, p.dev_mode
assert_equal 'my_canvas', p.canvas_name
end
def test_can_get_allocation
mock_http = establish_session
mock_http.should_receive(:post_form).and_return(example_get_allocation_xml).once.ordered(:posts)
alloc = @session.admin.get_allocation(:notifications_per_day)
assert_equal 40, alloc
end
private
def example_set_properties_xml
<<-XML
1
XML
end
def example_get_properties_xml
<<-XML
{"application_name":"Video Jukebox","callback_url":"http:\/\/67.207.144.245\/","dev_mode":0,"canvas_name":"my_canvas"}
XML
end
def example_get_allocation_xml
<<-XML
40
XML
end
end