require File.join(Dir.pwd, 'spec', 'spec_helper') describe 'UserAddressList' do before do simulate_connection_to_server end after do end it 'should pass if user address list attribute is not specifed' do user_id = 123 request_data = FactoryGirl.attributes_for(:user_address_list, { :total_entries => 1, :total_pages => 1, :addresses => [FactoryGirl.attributes_for(:user_address)] }).to_json TheCity.stub(:admin_request).and_return( TheCityResponse.new(200, request_data) ) address_list = TheCity::UserAddressList.new({:user_id => user_id}) address = address_list[0] address.city.should == "Seattle" end it 'should pass if user address list is empty' do user_id = 123 request_data = FactoryGirl.attributes_for(:user_address_list, { :total_entries => 1, :total_pages => 1, :addresses => [] }).to_json TheCity.stub(:admin_request).and_return( TheCityResponse.new(200, request_data) ) address_list = TheCity::UserAddressList.new({:user_id => user_id}) address_list.empty?.should be_true end it 'should return a valid list of user addresses' do user_id = 123 page = 2 request_data = FactoryGirl.attributes_for(:user_address_list, { :total_entries => 1, :total_pages => 1, :addresses => [FactoryGirl.attributes_for(:user_address)] }).to_json TheCity.stub(:admin_request).and_return( TheCityResponse.new(200, request_data) ) address_list = TheCity::UserAddressList.new({:user_id => user_id, :page => page}) address = address_list[0] address.city.should == "Seattle" end it 'should iterate using *each* method' do user_id = 123 request_data = FactoryGirl.attributes_for(:user_address_list, { :total_entries => 1, :total_pages => 1, :addresses => [FactoryGirl.attributes_for(:user_address)] }).to_json TheCity.stub(:admin_request).and_return( TheCityResponse.new(200, request_data) ) address_list = TheCity::UserAddressList.new({:user_id => user_id}) addresses = [] address_list.each { |address| addresses << address.city } addresses.should == ["Seattle"] end it 'should iterate using *collect* method' do user_id = 123 request_data = FactoryGirl.attributes_for(:user_address_list, { :total_entries => 1, :total_pages => 1, :addresses => [FactoryGirl.attributes_for(:user_address)] }).to_json TheCity.stub(:admin_request).and_return( TheCityResponse.new(200, request_data) ) address_list = TheCity::UserAddressList.new({:user_id => user_id}) addresses = address_list.collect { |address| address.city } addresses.should == ["Seattle"] end end