X-Git-Url: https://projects.mako.cc/source/selectricity-live/blobdiff_plain/baf9ff0ec39c13f52ee8d4f087641dc5fcc9c53b..fcc68b4dc198b7cb0cf93467d96038b0844675fe:/vendor/plugins/geokit/test/multi_geocoder_test.rb diff --git a/vendor/plugins/geokit/test/multi_geocoder_test.rb b/vendor/plugins/geokit/test/multi_geocoder_test.rb new file mode 100644 index 0000000..57f326c --- /dev/null +++ b/vendor/plugins/geokit/test/multi_geocoder_test.rb @@ -0,0 +1,44 @@ +require File.join(File.dirname(__FILE__), 'base_geocoder_test') + +GeoKit::Geocoders::provider_order=[:google,:yahoo,:us] + +class MultiGeocoderTest < BaseGeocoderTest #:nodoc: all + + def setup + super + @failure = GeoKit::GeoLoc.new + end + + def test_successful_first + GeoKit::Geocoders::GoogleGeocoder.expects(:geocode).with(@address).returns(@success) + assert_equal @success, GeoKit::Geocoders::MultiGeocoder.geocode(@address) + end + + def test_failover + GeoKit::Geocoders::GoogleGeocoder.expects(:geocode).with(@address).returns(@failure) + GeoKit::Geocoders::YahooGeocoder.expects(:geocode).with(@address).returns(@success) + assert_equal @success, GeoKit::Geocoders::MultiGeocoder.geocode(@address) + end + + def test_double_failover + GeoKit::Geocoders::GoogleGeocoder.expects(:geocode).with(@address).returns(@failure) + GeoKit::Geocoders::YahooGeocoder.expects(:geocode).with(@address).returns(@failure) + GeoKit::Geocoders::UsGeocoder.expects(:geocode).with(@address).returns(@success) + assert_equal @success, GeoKit::Geocoders::MultiGeocoder.geocode(@address) + end + + def test_failure + GeoKit::Geocoders::GoogleGeocoder.expects(:geocode).with(@address).returns(@failure) + GeoKit::Geocoders::YahooGeocoder.expects(:geocode).with(@address).returns(@failure) + GeoKit::Geocoders::UsGeocoder.expects(:geocode).with(@address).returns(@failure) + assert_equal @failure, GeoKit::Geocoders::MultiGeocoder.geocode(@address) + end + + def test_invalid_provider + temp = GeoKit::Geocoders::provider_order + GeoKit::Geocoders.provider_order = [:bogus] + assert_equal @failure, GeoKit::Geocoders::MultiGeocoder.geocode(@address) + GeoKit::Geocoders.provider_order = temp + end + +end \ No newline at end of file