multi_geocoder_test.rb
1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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