Skip to content

Commit

Permalink
Ensure we ignore blank address entries
Browse files Browse the repository at this point in the history
  • Loading branch information
jiblits committed May 18, 2012
1 parent 130e744 commit 455597b
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 4 deletions.
10 changes: 8 additions & 2 deletions lib/active_fulfillment/fulfillment/services/amazon_mws.rb
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,8 @@ class AmazonMarketplaceWebService < Service
:city => "DestinationAddress.City",
:state => "DestinationAddress.StateOrProvinceCode",
:country => "DestinationAddress.CountryCode",
:zip => "DestinationAddress.PostalCode"
:zip => "DestinationAddress.PostalCode",
:phone => "DestinationAddress.PhoneNumber"
},
:line_items => {
:comment => "Items.member.%d.DisplayableComment",
Expand Down Expand Up @@ -400,8 +401,13 @@ def build_tracking_request(order_id, options)
def build_address(address)
requires!(address, :name, :address1, :city, :state, :country, :zip)
ary = address.map{ |key, value|
[escape(LOOKUPS[:destination_address][key]), escape(value)]
if value.length > 0
[escape(LOOKUPS[:destination_address][key]), escape(value)]
else
nil
end
}
ary.reject(&:nil?)
Hash[ary]
end

Expand Down
21 changes: 19 additions & 2 deletions test/unit/services/amazon_mws_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ def setup
:city => 'Beverly Hills',
:state => 'CA',
:country => 'US',
:zip => '90210'
:zip => '90210',
:phone => "(555)555-5555"
}

@line_items = [
Expand Down Expand Up @@ -103,11 +104,27 @@ def test_build_address
"DestinationAddress.City" => @address[:city].gsub(' ', '%20'),
"DestinationAddress.StateOrProvinceCode" => @address[:state].gsub(' ', '%20'),
"DestinationAddress.CountryCode" => @address[:country].gsub(' ', '%20'),
"DestinationAddress.PostalCode" => @address[:zip].gsub(' ', '%20')
"DestinationAddress.PostalCode" => @address[:zip].gsub(' ', '%20'),
"DestinationAddress.PhoneNumber" => CGI.escape(@address[:phone])
}
assert_equal expected_items, @service.build_address(@address)
end

def test_build_address_with_missing_fields
expected_items = {
"DestinationAddress.Name" => @address[:name].gsub(' ', '%20'),
"DestinationAddress.Line1" => @address[:address1].gsub(' ', '%20'),
"DestinationAddress.City" => @address[:city].gsub(' ', '%20'),
"DestinationAddress.StateOrProvinceCode" => @address[:state].gsub(' ', '%20'),
"DestinationAddress.CountryCode" => @address[:country].gsub(' ', '%20'),
"DestinationAddress.PostalCode" => @address[:zip].gsub(' ', '%20'),
"DestinationAddress.PhoneNumber" => CGI.escape(@address[:phone])
}
@address[:address2] = ""

assert_equal expected_items, @service.build_address(@address)
end

def test_integrated_registration_url_creation
service = AmazonMarketplaceWebService.new(:login => "AKIAFJPPO5KLY6G4XO7Q", :password => "aaa", :app_id => "1014f5ad-c359-4e86-8e50-bb8f8e431a9")
options = {
Expand Down

0 comments on commit 455597b

Please sign in to comment.