test/test_latlng.rb in geokit-1.3.2 vs test/test_latlng.rb in geokit-1.4.0
- old
+ new
@@ -1,16 +1,36 @@
require 'test/unit'
require 'lib/geokit'
+require 'mocha'
class LatLngTest < Test::Unit::TestCase #:nodoc: all
def setup
@loc_a = Geokit::LatLng.new(32.918593,-96.958444)
@loc_e = Geokit::LatLng.new(32.969527,-96.990159)
@point = Geokit::LatLng.new(@loc_a.lat, @loc_a.lng)
end
+ def valid_reverse_geocoding_result
+ location = Geokit::GeoLoc.new({
+ :city => "Essen",
+ :country_code => "DE",
+ :lat => 51.4578329,
+ :lng => 7.0166848,
+ :provider => "google",
+ :state => "Nordrhein-Westfalen",
+ :street_address => "Porscheplatz 1",
+ :zip => "45127"
+ })
+
+ location.full_address = "Porscheplatz 1, 45127 Essen, Deutschland"
+ location.precision = 'address'
+ location.provider = 'google'
+ location.success = true
+ location
+ end
+
def test_distance_between_same_using_defaults
assert_equal 0, Geokit::LatLng.distance_between(@loc_a, @loc_a)
assert_equal 0, @loc_a.distance_to(@loc_a)
end
@@ -142,7 +162,48 @@
lng=-122.443
first = Geokit::LatLng.new(lat,lng)
second = Geokit::LatLng.new(lat,lng)
assert first.eql?(second)
assert second.eql?(first)
+ end
+
+ def test_reverse_geocode
+ point = Geokit::LatLng.new(51.4578329, 7.0166848)
+ Geokit::Geocoders::MultiGeocoder.expects(:reverse_geocode).with(point).returns(valid_reverse_geocoding_result)
+ res = point.reverse_geocode
+
+ assert_equal "Nordrhein-Westfalen", res.state
+ assert_equal "Essen", res.city
+ assert_equal "45127", res.zip
+ assert_equal "51.4578329,7.0166848", res.ll # slightly dif from yahoo
+ assert res.is_us? == false
+ assert_equal "Porscheplatz 1, 45127 Essen, Deutschland", res.full_address #slightly different from yahoo
+ end
+
+ def test_reverse_geocoding_using_specific_geocoder
+ point = Geokit::LatLng.new(51.4578329, 7.0166848)
+ Geokit::Geocoders::GoogleGeocoder.expects(:reverse_geocode).with(point).returns(valid_reverse_geocoding_result)
+ res = point.reverse_geocode(:using => Geokit::Geocoders::GoogleGeocoder)
+
+ assert_equal "Nordrhein-Westfalen", res.state
+ assert_equal "Essen", res.city
+ assert_equal "45127", res.zip
+ assert_equal "51.4578329,7.0166848", res.ll # slightly dif from yahoo
+ assert res.is_us? == false
+ assert_equal "Porscheplatz 1, 45127 Essen, Deutschland", res.full_address #slightly different from yahoo
+ assert_equal "google", res.provider
+ end
+
+ def test_reverse_geocoding_using_specific_geocoder_short_syntax
+ point = Geokit::LatLng.new(51.4578329, 7.0166848)
+ Geokit::Geocoders::GoogleGeocoder.expects(:reverse_geocode).with(point).returns(valid_reverse_geocoding_result)
+ res = point.reverse_geocode(:using => :google)
+
+ assert_equal "Nordrhein-Westfalen", res.state
+ assert_equal "Essen", res.city
+ assert_equal "45127", res.zip
+ assert_equal "51.4578329,7.0166848", res.ll # slightly dif from yahoo
+ assert res.is_us? == false
+ assert_equal "Porscheplatz 1, 45127 Essen, Deutschland", res.full_address #slightly different from yahoo
+ assert_equal "google", res.provider
end
end
\ No newline at end of file