Testing Maxmind Geocoding Service Integration in geocoder
This test suite validates the Maxmind geocoding service integration within the Geocoder gem, focusing on IP address lookup functionality and service configuration handling.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
alexreisner/geocoder
test/unit/lookups/maxmind_test.rb
# encoding: utf-8
require 'test_helper'
class MaxmindTest < GeocoderTestCase
def setup
super
Geocoder.configure(ip_lookup: :maxmind)
end
def test_maxmind_result_on_ip_address_search
Geocoder.configure(maxmind: {service: :city_isp_org})
result = Geocoder.search("74.200.247.59").first
assert result.is_a?(Geocoder::Result::Maxmind)
end
def test_maxmind_result_knows_country_service_name
Geocoder.configure(maxmind: {service: :country})
assert_equal :country, Geocoder.search("24.24.24.21").first.service_name
end
def test_maxmind_result_knows_city_service_name
Geocoder.configure(maxmind: {service: :city})
assert_equal :city, Geocoder.search("24.24.24.22").first.service_name
end
def test_maxmind_result_knows_city_isp_org_service_name
Geocoder.configure(maxmind: {service: :city_isp_org})
assert_equal :city_isp_org, Geocoder.search("24.24.24.23").first.service_name
end
def test_maxmind_result_knows_omni_service_name
Geocoder.configure(maxmind: {service: :omni})
assert_equal :omni, Geocoder.search("24.24.24.24").first.service_name
end
def test_maxmind_special_result_components
Geocoder.configure(maxmind: {service: :omni})
result = Geocoder.search("24.24.24.24").first
assert_equal "Road Runner", result.isp_name
assert_equal "Cable/DSL", result.netspeed
assert_equal "rr.com", result.domain
end
def test_maxmind_raises_exception_when_service_not_configured
Geocoder.configure(maxmind: {service: nil})
assert_raises Geocoder::ConfigurationError do
Geocoder::Query.new("24.24.24.24").url
end
end
def test_maxmind_works_when_loopback_address_on_omni
Geocoder.configure(maxmind: {service: :omni})
result = Geocoder.search("127.0.0.1").first
assert_equal "", result.country_code
end
def test_maxmind_works_when_loopback_address_on_country
Geocoder.configure(maxmind: {service: :country})
result = Geocoder.search("127.0.0.1").first
assert_equal "", result.country_code
end
def test_maxmind_works_when_private_address_on_omni
Geocoder.configure(maxmind: {service: :omni})
result = Geocoder.search("172.19.0.1").first
assert_equal "", result.country_code
end
def test_maxmind_works_when_private_address_on_country
Geocoder.configure(maxmind: {service: :country})
result = Geocoder.search("172.19.0.1").first
assert_equal "", result.country_code
end
end