Sha256: 787328bb858e1d102f6d1325ce2b3cf8c70d4d2fee6886dd0e6872b9bd287651
Contents?: true
Size: 1.48 KB
Versions: 13
Compression:
Stored size: 1.48 KB
Contents
require File.expand_path(File.dirname(__FILE__) + '/../../../test_helper') module Graticule module Geocoder class MultiTest < Test::Unit::TestCase def setup @mock_geocoders = [mock("geocoder 1"), mock("geocoder 2")] @mock_geocoders.each {|g| g.stubs(:locate) } @geocoder = Multi.new(*@mock_geocoders) end def test_locate_calls_each_geocoder_and_raises_error @mock_geocoders.each do |g| g.expects(:locate).with('test').raises(Graticule::AddressError) end assert_raises(Graticule::AddressError) { @geocoder.locate 'test' } end def test_locate_returns_first_result_without_calling_others result = mock("result") @mock_geocoders.first.expects(:locate).returns(result) @mock_geocoders.last.expects(:locate).never assert_equal result, @geocoder.locate('test') end def test_locate_with_custom_block @mock_geocoders.first.expects(:locate).returns(1) @mock_geocoders.last.expects(:locate).returns(2) @geocoder = Multi.new(*@mock_geocoders) {|r| r == 2 } assert_equal 2, @geocoder.locate('test') end def test_locate_with_custom_block_and_no_match @mock_geocoders.first.expects(:locate).returns(1) @mock_geocoders.last.expects(:locate).returns(2) @geocoder = Multi.new(*@mock_geocoders) {|r| r == 3 } assert_raises(Graticule::AddressError) { @geocoder.locate('test') } end end end end
Version data entries
13 entries across 13 versions & 5 rubygems