require File.join(Dir.pwd, 'spec', 'spec_helper') describe 'UserInvitationList' do before do simulate_connection_to_server end after do end it 'should pass if user invitation list attribute is not specifed' do user_id = 123 request_data = FactoryGirl.attributes_for(:user_invitation_list, { :total_entries => 1, :total_pages => 1, :invitations => [FactoryGirl.attributes_for(:user_invitation)] }).to_json TheCity.stub(:admin_request).and_return( TheCityResponse.new(200, request_data) ) invitation_list = TheCity::UserInvitationList.new({:user_id => user_id}) invitation = invitation_list[0] invitation.source.should == "API Invite | Group A (17543) on 2012-02-06 at 16:54" end it 'should pass if user invitation list is empty' do user_id = 123 request_data = FactoryGirl.attributes_for(:user_invitation_list, { :total_entries => 1, :total_pages => 1, :invitations => [] }).to_json TheCity.stub(:admin_request).and_return( TheCityResponse.new(200, request_data) ) invitation_list = TheCity::UserInvitationList.new({:user_id => user_id}) invitation_list.empty?.should be_true end it 'should return a valid list of user invitations' do user_id = 123 page = 2 request_data = FactoryGirl.attributes_for(:user_invitation_list, { :total_entries => 1, :total_pages => 1, :invitations => [FactoryGirl.attributes_for(:user_invitation)] }).to_json TheCity.stub(:admin_request).and_return( TheCityResponse.new(200, request_data) ) invitation_list = TheCity::UserInvitationList.new({:user_id => user_id, :page => 2}) invitation = invitation_list[0] invitation.source.should == "API Invite | Group A (17543) on 2012-02-06 at 16:54" end it 'should iterate using *each* method' do user_id = 123 request_data = FactoryGirl.attributes_for(:user_invitation_list, { :total_entries => 1, :total_pages => 1, :invitations => [FactoryGirl.attributes_for(:user_invitation)] }).to_json TheCity.stub(:admin_request).and_return( TheCityResponse.new(200, request_data) ) invitation_list = TheCity::UserInvitationList.new({:user_id => user_id}) invitations = [] invitation_list.each { |invitation| invitations << invitation.source } invitations.should == ["API Invite | Group A (17543) on 2012-02-06 at 16:54"] end it 'should iterate using *collect* method' do user_id = 123 request_data = FactoryGirl.attributes_for(:user_invitation_list, { :total_entries => 1, :total_pages => 1, :invitations => [FactoryGirl.attributes_for(:user_invitation)] }).to_json TheCity.stub(:admin_request).and_return( TheCityResponse.new(200, request_data) ) invitation_list = TheCity::UserInvitationList.new({:user_id => user_id}) invitations = invitation_list.collect { |invitation| invitation.source } invitations.should == ["API Invite | Group A (17543) on 2012-02-06 at 16:54"] end end