require File.join(File.dirname(__FILE__), 'helper') class MapQuestGeocoderTest < BaseGeocoderTest #:nodoc: all def setup super @full_address = '100 Spear St Apt. 5, San Francisco, CA, 94105-1522, US' @google_full_hash = {:street_address=>"100 Spear St Apt. 5", :city=>"San Francisco", :state=>"CA", :zip=>"94105", :country_code=>"US"} @google_city_hash = {:city=>"San Francisco", :state=>"CA"} @google_full_loc = Geokit::GeoLoc.new(@google_full_hash) @google_city_loc = Geokit::GeoLoc.new(@google_city_hash) end def test_map_quest_full_address_with_geo_loc VCR.use_cassette('map_quest_full') do key = 'Fmjtd%7Cluur2d0125%2C2s%3Do5-9a8lhz' Geokit::Geocoders::MapQuestGeocoder.key =key url = "https://www.mapquestapi.com/geocoding/v1/address?key=#{key}&location=100+Spear+St+Apt.+5%2C+San+Francisco%2C+CA%2C+94105%2C+US" TestHelper.expects(:last_url).with(url) res=Geokit::Geocoders::MapQuestGeocoder.geocode(@google_full_loc) assert_equal "CA", res.state assert_equal "San Francisco", res.city assert_array_in_delta [37.7921509, -122.394], res.to_a # slightly dif from yahoo assert res.is_us? assert_equal "100 Spear St, Apt 5, San Francisco, CA, 94105-1500, US", res.full_address #slightly different from yahoo assert_equal "map_quest", res.provider end end def test_reverse_geocode VCR.use_cassette('map_quest_reverse_madrid') do madrid = Geokit::GeoLoc.new madrid.lat, madrid.lng = "40.4167413", "-3.7032498" key = 'Fmjtd%7Cluur2d0125%2C2s%3Do5-9a8lhz' Geokit::Geocoders::MapQuestGeocoder.key =key url = "https://www.mapquestapi.com/geocoding/v1/reverse?key=#{key}&location=#{madrid.lat},#{madrid.lng}" TestHelper.expects(:last_url).with(url) res=Geokit::Geocoders::MapQuestGeocoder.do_reverse_geocode(madrid.ll) assert_equal madrid.lat.to_s.slice(1..5), res.lat.to_s.slice(1..5) assert_equal madrid.lng.to_s.slice(1..5), res.lng.to_s.slice(1..5) assert_equal "ES", res.country_code assert_equal "map_quest", res.provider assert_equal "Madrid", res.city assert_equal "Comunidad de Madrid", res.state assert_equal nil, res.country assert_equal "28014", res.zip assert_equal true, res.success end end end