diff --git a/test/active_record_test.rb b/test/active_record_test.rb index 6d2d2316b085a5584935385d0379e5a7c1072fc3..fff9896a7a69ad5614000fa9968997747a3a048c 100644 --- a/test/active_record_test.rb +++ b/test/active_record_test.rb @@ -4,12 +4,12 @@ require 'test_helper' class ActiveRecordTest < Test::Unit::TestCase def test_exclude_condition_when_model_has_a_custom_primary_key - venue = VenuePlus.new(*venue_params(:msg)) + venue = PlaceWithCustomPrimaryKey.new(*geocoded_object_params(:msg)) # just call private method directly so we don't have to stub .near scope conditions = venue.class.send(:add_exclude_condition, ["fake_condition"], venue) - assert_match( /#{VenuePlus.primary_key}/, conditions.join) + assert_match( /#{PlaceWithCustomPrimaryKey.primary_key}/, conditions.join) end end diff --git a/test/calculations_test.rb b/test/calculations_test.rb index 43ed37f98d4b92041c9331d544ede5534d716d2d..272eca1f421797eb9486e6a2248995f0e40c46c1 100644 --- a/test/calculations_test.rb +++ b/test/calculations_test.rb @@ -56,7 +56,7 @@ class CalculationsTest < Test::Unit::TestCase def test_geographic_center_with_mixed_arguments p1 = [0, 0] - p2 = Landmark.new("Some Cold Place", 0, 1) + p2 = PlaceReverseGeocoded.new("Some Cold Place", 0, 1) assert_equal [0.0, 0.5], Geocoder::Calculations.geographic_center([p1, p2]) end @@ -89,7 +89,7 @@ class CalculationsTest < Test::Unit::TestCase dlon = radius / Geocoder::Calculations.latitude_degree_distance dlat = radius / Geocoder::Calculations.longitude_degree_distance(center[0]) corners = [50.86, 6.77, 51.14, 7.23] - obj = Landmark.new("Cologne", center[0], center[1]) + obj = PlaceReverseGeocoded.new("Cologne", center[0], center[1]) assert_equal corners.map{ |i| (i * 100).round }, Geocoder::Calculations.bounding_box(obj, radius).map{ |i| (i * 100).round } end @@ -153,23 +153,23 @@ class CalculationsTest < Test::Unit::TestCase end def test_spherical_bearing_to - l = Landmark.new(*landmark_params(:msg)) + l = PlaceReverseGeocoded.new(*reverse_geocoded_object_params(:msg)) assert_equal 324, l.bearing_to([50,-85], :method => :spherical).round end def test_spherical_bearing_from - l = Landmark.new(*landmark_params(:msg)) + l = PlaceReverseGeocoded.new(*reverse_geocoded_object_params(:msg)) assert_equal 136, l.bearing_from([50,-85], :method => :spherical).round end def test_linear_bearing_from_and_to_are_exactly_opposite - l = Landmark.new(*landmark_params(:msg)) + l = PlaceReverseGeocoded.new(*reverse_geocoded_object_params(:msg)) assert_equal l.bearing_from([50,-86.1]), l.bearing_to([50,-86.1]) - 180 end def test_extract_coordinates coords = [-23,47] - l = Landmark.new("Madagascar", coords[0], coords[1]) + l = PlaceReverseGeocoded.new("Madagascar", coords[0], coords[1]) assert_equal coords, Geocoder::Calculations.extract_coordinates(l) assert_equal coords, Geocoder::Calculations.extract_coordinates(coords) end diff --git a/test/configuration_test.rb b/test/configuration_test.rb index 7aad1d7f9059c0813e360c8528de5b5503f83290..3ea27572e167642a1c7b22e9440c731af04ee942 100644 --- a/test/configuration_test.rb +++ b/test/configuration_test.rb @@ -46,11 +46,11 @@ class ConfigurationTest < Test::Unit::TestCase end def test_model_configuration - Landmark.reverse_geocoded_by :latitude, :longitude, :method => :spherical, :units => :km - assert_equal :km, Landmark.geocoder_options[:units] - assert_equal :spherical, Landmark.geocoder_options[:method] + PlaceReverseGeocoded.reverse_geocoded_by :latitude, :longitude, :method => :spherical, :units => :km + assert_equal :km, PlaceReverseGeocoded.geocoder_options[:units] + assert_equal :spherical, PlaceReverseGeocoded.geocoder_options[:method] - v = Landmark.new(*landmark_params(:msg)) + v = PlaceReverseGeocoded.new(*reverse_geocoded_object_params(:msg)) v.latitude = 0 v.longitude = 0 assert_equal 111, v.distance_to([0,1]).round @@ -60,7 +60,7 @@ class ConfigurationTest < Test::Unit::TestCase end def test_configuration_chain - v = Landmark.new(*landmark_params(:msg)) + v = PlaceReverseGeocoded.new(*reverse_geocoded_object_params(:msg)) v.latitude = 0 v.longitude = 0 @@ -69,7 +69,7 @@ class ConfigurationTest < Test::Unit::TestCase assert_equal 69, v.distance_to([0,1], :mi).round # per-model configuration > global configuration - Landmark.reverse_geocoded_by :latitude, :longitude, :method => :spherical, :units => :mi + PlaceReverseGeocoded.reverse_geocoded_by :latitude, :longitude, :method => :spherical, :units => :mi assert_equal 69, v.distance_to([0,1]).round # method option > per-model configuration diff --git a/test/custom_block_test.rb b/test/custom_block_test.rb index 0f4789d163dc80ab40016016571848f623525499..7ec5b3eae6046fb6fd6ea09a077a4762fec56af7 100644 --- a/test/custom_block_test.rb +++ b/test/custom_block_test.rb @@ -4,27 +4,27 @@ require 'test_helper' class CustomBlockTest < Test::Unit::TestCase def test_geocode_with_block_runs_block - e = Event.new(*venue_params(:msg)) + e = PlaceWithCustomResultsHandling.new(*geocoded_object_params(:msg)) coords = [40.750354, -73.993371] e.geocode assert_equal coords.map{ |c| c.to_s }.join(','), e.coords_string end def test_geocode_with_block_doesnt_auto_assign_coordinates - e = Event.new(*venue_params(:msg)) + e = PlaceWithCustomResultsHandling.new(*geocoded_object_params(:msg)) e.geocode assert_nil e.latitude assert_nil e.longitude end def test_reverse_geocode_with_block_runs_block - e = Party.new(*landmark_params(:msg)) + e = PlaceReverseGeocodedWithCustomResultsHandling.new(*reverse_geocoded_object_params(:msg)) e.reverse_geocode assert_equal "US", e.country end def test_reverse_geocode_with_block_doesnt_auto_assign_address - e = Party.new(*landmark_params(:msg)) + e = PlaceReverseGeocodedWithCustomResultsHandling.new(*reverse_geocoded_object_params(:msg)) e.reverse_geocode assert_nil e.address end diff --git a/test/geocoder_test.rb b/test/geocoder_test.rb index 343777820f954432281d88dd42cefd8b6ff22afd..a96ba7acc949e59fab2b407d3e7c6dd81ebed8f8 100644 --- a/test/geocoder_test.rb +++ b/test/geocoder_test.rb @@ -4,7 +4,7 @@ require 'test_helper' class GeocoderTest < Test::Unit::TestCase def test_distance_to_returns_float - v = Venue.new(*venue_params(:msg)) + v = Place.new(*geocoded_object_params(:msg)) v.latitude, v.longitude = [40.750354, -73.993371] assert (d = v.distance_to([30, -94])).is_a?(Float) end @@ -26,27 +26,27 @@ class GeocoderTest < Test::Unit::TestCase end def test_geocode_assigns_and_returns_coordinates - v = Venue.new(*venue_params(:msg)) + v = Place.new(*geocoded_object_params(:msg)) coords = [40.750354, -73.993371] assert_equal coords, v.geocode assert_equal coords, [v.latitude, v.longitude] end def test_geocode_block_executed_when_no_results - v = Event.new("Nowhere", "no results") + v = PlaceWithCustomResultsHandling.new("Nowhere", "no results") v.geocode assert_equal "NOT FOUND", v.coords_string end def test_reverse_geocode_assigns_and_returns_address - v = Landmark.new(*landmark_params(:msg)) + v = PlaceReverseGeocoded.new(*reverse_geocoded_object_params(:msg)) address = "4 Penn Plaza, New York, NY 10001, USA" assert_equal address, v.reverse_geocode assert_equal address, v.address end def test_forward_and_reverse_geocoding_on_same_model_works - g = GasStation.new("Exxon") + g = PlaceWithForwardAndReverseGeocoding.new("Exxon") g.address = "404 New St, Middletown, CT" g.geocode assert_not_nil g.lat @@ -58,19 +58,19 @@ class GeocoderTest < Test::Unit::TestCase end def test_geocode_with_custom_lookup_param - v = Church.new(*venue_params(:msg)) + v = PlaceWithCustomLookup.new(*geocoded_object_params(:msg)) v.geocode assert_equal Geocoder::Result::Nominatim, v.result_class end def test_geocode_with_custom_lookup_proc_param - v = BigChurch.new(*venue_params(:msg)) + v = PlaceWithCustomLookupProc.new(*geocoded_object_params(:msg)) v.geocode assert_equal Geocoder::Result::Nominatim, v.result_class end def test_reverse_geocode_with_custom_lookup_param - v = Temple.new(*landmark_params(:msg)) + v = PlaceReverseGeocodedWithCustomLookup.new(*reverse_geocoded_object_params(:msg)) v.reverse_geocode assert_equal Geocoder::Result::Nominatim, v.result_class end diff --git a/test/lookup_test.rb b/test/lookup_test.rb index 185249c657512c62c36ce9267b8b1bca568e98b8..5bdbf46708f58794c5da8b73e5df547116bc0a28 100644 --- a/test/lookup_test.rb +++ b/test/lookup_test.rb @@ -82,7 +82,7 @@ class LookupTest < Test::Unit::TestCase def test_does_not_choke_on_nil_address Geocoder::Lookup.all_services.each do |l| Geocoder.configure(:lookup => l) - assert_nothing_raised { Venue.new("Venue", nil).geocode } + assert_nothing_raised { Place.new("Place", nil).geocode } end end diff --git a/test/method_aliases_test.rb b/test/method_aliases_test.rb index 993e96769bb3a1bbf307f6abe9e25208fb115673..bb84c0b666ec012e7a580148adba1d3cced1e05a 100644 --- a/test/method_aliases_test.rb +++ b/test/method_aliases_test.rb @@ -4,20 +4,20 @@ require 'test_helper' class MethodAliasesTest < Test::Unit::TestCase def test_distance_from_is_alias_for_distance_to - v = Venue.new(*venue_params(:msg)) + v = Place.new(*geocoded_object_params(:msg)) v.latitude, v.longitude = [40.750354, -73.993371] assert_equal v.distance_from([30, -94]), v.distance_to([30, -94]) end def test_fetch_coordinates_is_alias_for_geocode - v = Venue.new(*venue_params(:msg)) + v = Place.new(*geocoded_object_params(:msg)) coords = [40.750354, -73.993371] assert_equal coords, v.fetch_coordinates assert_equal coords, [v.latitude, v.longitude] end def test_fetch_address_is_alias_for_reverse_geocode - v = Landmark.new(*landmark_params(:msg)) + v = PlaceReverseGeocoded.new(*reverse_geocoded_object_params(:msg)) address = "4 Penn Plaza, New York, NY 10001, USA" assert_equal address, v.fetch_address assert_equal address, v.address diff --git a/test/mongoid_test.rb b/test/mongoid_test.rb index 8bd91bc70fdcec8006d90e4e25170887f83e83e0..d050f4f8a5379c575068145c06e5caa1ccdec85b 100644 --- a/test/mongoid_test.rb +++ b/test/mongoid_test.rb @@ -3,43 +3,43 @@ require 'mongoid_test_helper' class MongoidTest < Test::Unit::TestCase def test_geocoded_check - p = Place.new(*venue_params(:msg)) + p = PlaceUsingMongoid.new(*geocoded_object_params(:msg)) p.location = [40.750354, -73.993371] assert p.geocoded? end def test_distance_to_returns_float - p = Place.new(*venue_params(:msg)) + p = PlaceUsingMongoid.new(*geocoded_object_params(:msg)) p.location = [40.750354, -73.993371] assert p.distance_to([30, -94]).is_a?(Float) end def test_custom_coordinate_field_near_scope location = [40.750354, -73.993371] - p = Place.near(location) + p = PlaceUsingMongoid.near(location) key = Mongoid::VERSION >= "3" ? "location" : :location assert_equal p.selector[key]['$nearSphere'], location.reverse end def test_model_configuration - p = Place.new(*venue_params(:msg)) + p = PlaceUsingMongoid.new(*geocoded_object_params(:msg)) p.location = [0, 0] - Place.geocoded_by :address, :coordinates => :location, :units => :km + PlaceUsingMongoid.geocoded_by :address, :coordinates => :location, :units => :km assert_equal 111, p.distance_to([0,1]).round - Place.geocoded_by :address, :coordinates => :location, :units => :mi + PlaceUsingMongoid.geocoded_by :address, :coordinates => :location, :units => :mi assert_equal 69, p.distance_to([0,1]).round end def test_index_is_skipped_if_skip_option_flag - result = PlaceWithoutIndex.index_options.keys.flatten[0] == :coordinates + result = PlaceUsingMongoidWithoutIndex.index_options.keys.flatten[0] == :coordinates assert !result end def test_nil_radius_omits_max_distance location = [40.750354, -73.993371] - p = Place.near(location, nil) + p = PlaceUsingMongoid.near(location, nil) key = Mongoid::VERSION >= "3" ? "location" : :location assert_equal nil, p.selector[key]['$maxDistance'] end diff --git a/test/mongoid_test_helper.rb b/test/mongoid_test_helper.rb index cf37bb01c236fb9b6df27b81f39bcbed5884e1a2..903ff5540af7d21636e0acccce133960123cc202 100644 --- a/test/mongoid_test_helper.rb +++ b/test/mongoid_test_helper.rb @@ -18,7 +18,7 @@ end ## # Geocoded model. # -class Place +class PlaceUsingMongoid include Mongoid::Document include Geocoder::Model::Mongoid @@ -34,7 +34,7 @@ class Place end end -class PlaceWithoutIndex +class PlaceUsingMongoidWithoutIndex include Mongoid::Document include Geocoder::Model::Mongoid diff --git a/test/near_test.rb b/test/near_test.rb index 4e95b9225002f862d2f65e03b69fe8ef56284004..e5ab00f381d221772b73f00c17870186e5e69c38 100644 --- a/test/near_test.rb +++ b/test/near_test.rb @@ -3,14 +3,14 @@ require 'test_helper' class NearTest < Test::Unit::TestCase def test_near_scope_options_without_sqlite_includes_bounding_box_condition - result = Event.send(:near_scope_options, 1.0, 2.0, 5) + result = PlaceWithCustomResultsHandling.send(:near_scope_options, 1.0, 2.0, 5) assert_match /test_table_name.latitude BETWEEN 0.9276\d* AND 1.0723\d* AND test_table_name.longitude BETWEEN 1.9276\d* AND 2.0723\d* AND /, result[:conditions][0] end def test_near_scope_options_with_defaults - result = Event.send(:near_scope_options, 1.0, 2.0, 5) + result = PlaceWithCustomResultsHandling.send(:near_scope_options, 1.0, 2.0, 5) assert_match /AS distance/, result[:select] assert_match /AS bearing/, result[:select] @@ -18,7 +18,7 @@ class NearTest < Test::Unit::TestCase end def test_near_scope_options_with_no_distance - result = Event.send(:near_scope_options, 1.0, 2.0, 5, :select_distance => false) + result = PlaceWithCustomResultsHandling.send(:near_scope_options, 1.0, 2.0, 5, :select_distance => false) assert_no_match /AS distance/, result[:select] assert_match /AS bearing/, result[:select] @@ -28,7 +28,7 @@ class NearTest < Test::Unit::TestCase end def test_near_scope_options_with_no_bearing - result = Event.send(:near_scope_options, 1.0, 2.0, 5, :select_bearing => false) + result = PlaceWithCustomResultsHandling.send(:near_scope_options, 1.0, 2.0, 5, :select_bearing => false) assert_match /AS distance/, result[:select] assert_no_match /AS bearing/, result[:select] @@ -36,7 +36,7 @@ class NearTest < Test::Unit::TestCase end def test_near_scope_options_with_custom_distance_column - result = Event.send(:near_scope_options, 1.0, 2.0, 5, :distance_column => 'calculated_distance') + result = PlaceWithCustomResultsHandling.send(:near_scope_options, 1.0, 2.0, 5, :distance_column => 'calculated_distance') assert_no_match /AS distance/, result[:select] assert_match /AS calculated_distance/, result[:select] @@ -46,7 +46,7 @@ class NearTest < Test::Unit::TestCase end def test_near_scope_options_with_custom_bearing_column - result = Event.send(:near_scope_options, 1.0, 2.0, 5, :bearing_column => 'calculated_bearing') + result = PlaceWithCustomResultsHandling.send(:near_scope_options, 1.0, 2.0, 5, :bearing_column => 'calculated_bearing') assert_no_match /AS bearing/, result[:select] assert_match /AS calculated_bearing/, result[:select] diff --git a/test/test_helper.rb b/test/test_helper.rb index 61e6844bc209ded85096cbeb7c4bc42ed6cb949f..08216e8a85d659d214772fd152d852334c7f21d0 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -162,7 +162,7 @@ end ## # Geocoded model. # -class Venue < ActiveRecord::Base +class Place < ActiveRecord::Base geocoded_by :address def initialize(name, address) @@ -176,7 +176,7 @@ end # Geocoded model. # - Has user-defined primary key (not just 'id') # -class VenuePlus < Venue +class PlaceWithCustomPrimaryKey < Place class << self def primary_key @@ -186,10 +186,7 @@ class VenuePlus < Venue end -## -# Reverse geocoded model. -# -class Landmark < ActiveRecord::Base +class PlaceReverseGeocoded < ActiveRecord::Base reverse_geocoded_by :latitude, :longitude def initialize(name, latitude, longitude) @@ -200,10 +197,7 @@ class Landmark < ActiveRecord::Base end end -## -# Geocoded model with block. -# -class Event < ActiveRecord::Base +class PlaceWithCustomResultsHandling < ActiveRecord::Base geocoded_by :address do |obj,results| if result = results.first obj.coords_string = "#{result.latitude},#{result.longitude}" @@ -219,10 +213,7 @@ class Event < ActiveRecord::Base end end -## -# Reverse geocoded model with block. -# -class Party < ActiveRecord::Base +class PlaceReverseGeocodedWithCustomResultsHandling < ActiveRecord::Base reverse_geocoded_by :latitude, :longitude do |obj,results| if result = results.first obj.country = result.country_code @@ -237,11 +228,7 @@ class Party < ActiveRecord::Base end end -## -# Forward and reverse geocoded model. -# Should fill in whatever's missing (coords or address). -# -class GasStation < ActiveRecord::Base +class PlaceWithForwardAndReverseGeocoding < ActiveRecord::Base geocoded_by :address, :latitude => :lat, :longitude => :lon reverse_geocoded_by :lat, :lon, :address => :location @@ -251,10 +238,7 @@ class GasStation < ActiveRecord::Base end end -## -# Geocoded model with custom lookup. -# -class Church < ActiveRecord::Base +class PlaceWithCustomLookup < ActiveRecord::Base geocoded_by :address, :lookup => :nominatim do |obj,results| if result = results.first obj.result_class = result.class @@ -268,10 +252,7 @@ class Church < ActiveRecord::Base end end -## -# Geocoded model with custom lookup as proc. -# -class BigChurch < ActiveRecord::Base +class PlaceWithCustomLookupProc < ActiveRecord::Base geocoded_by :address, :lookup => lambda{|obj| obj.custom_lookup } do |obj,results| if result = results.first obj.result_class = result.class @@ -289,10 +270,7 @@ class BigChurch < ActiveRecord::Base end end -## -# Reverse geocoded model with custom lookup. -# -class Temple < ActiveRecord::Base +class PlaceReverseGeocodedWithCustomLookup < ActiveRecord::Base reverse_geocoded_by :latitude, :longitude, :lookup => :nominatim do |obj,results| if result = results.first obj.result_class = result.class @@ -319,13 +297,13 @@ class Test::Unit::TestCase load "geocoder/configuration.rb" end - def venue_params(abbrev) + def geocoded_object_params(abbrev) { :msg => ["Madison Square Garden", "4 Penn Plaza, New York, NY"] }[abbrev] end - def landmark_params(abbrev) + def reverse_geocoded_object_params(abbrev) { :msg => ["Madison Square Garden", 40.750354, -73.993371] }[abbrev]