Skip to content
Snippets Groups Projects
test_mode_test.rb 1.62 KiB
Newer Older
require 'test_helper'

class TestModeTest < Test::Unit::TestCase

  def teardown
    Geocoder::Configuration.reset_stubs
  end

  def test_search_with_known_stub
    Geocoder::Configuration.test_mode = true
    attributes = {
      'latitude'   => 40.7143528,
      'longitude'  => -74.0059731,
      'address'    => 'New York, NY, USA',
      'state'      => 'New York',
      'state_code' => 'NY',
      'country'    => 'United States',
      'country_code' => 'US',
    }
    coordinates = [attributes['latitude'], attributes['longitude']]

    Geocoder::Configuration.add_stub("New York, NY", [attributes])

    results = Geocoder.search("New York, NY")
    assert_equal 1, results.size

    result = results.first
    assert_equal coordinates,                result.coordinates
    assert_equal attributes['latitude'],     result.latitude
    assert_equal attributes['longitude'],    result.longitude
    assert_equal attributes['address'],      result.address
    assert_equal attributes['state'],        result.state
    assert_equal attributes['state_code'],   result.state_code
    assert_equal attributes['country'],      result.country
    assert_equal attributes['country_code'], result.country_code
  end

  def test_search_with_unknown_stub
    Geocoder::Configuration.test_mode = true

    assert_raise ArgumentError do
      Geocoder.search("New York, NY")
    end
  end

  def test_turning_off_test_mode_restores_lookup
    original_lookup = Geocoder::Configuration.lookup
    Geocoder::Configuration.test_mode = true
    Geocoder::Configuration.test_mode = false

    assert_equal original_lookup, Geocoder::Configuration.lookup
  end

end