1use strict; 2use warnings; 3 4use lib 't/lib'; 5 6use Test::GeoIP2 qw( 7 test_model_class 8 test_model_class_with_empty_record 9 test_model_class_with_unknown_keys 10); 11use Test::More 0.88; 12 13use GeoIP2::Model::City; 14 15{ 16 my %raw = ( 17 city => { 18 geoname_id => 9876, 19 names => { en => 'Minneapolis' }, 20 }, 21 continent => { 22 code => 'NA', 23 geoname_id => 42, 24 names => { en => 'North America' }, 25 }, 26 country => { 27 geoname_id => 1, 28 iso_code => 'US', 29 names => { 30 'de' => 'Nordamerika', 31 'en' => 'North America', 32 'es' => 'América del Norte', 33 'fr' => 'Amérique du Nord', 34 'ja' => '北アメリカ', 35 'pt-BR' => 'América do Norte', 36 'ru' => 'Северная Америка', 37 'zh-CN' => '北美洲', 38 }, 39 }, 40 location => { 41 accuracy_radius => 1500, 42 latitude => 44.98, 43 longitude => 93.2636, 44 metro_code => 765, 45 time_zone => 'America/Chicago', 46 }, 47 maxmind => { 48 queries_remaining => 42, 49 }, 50 postal => { 51 code => '12345', 52 }, 53 registered_country => { 54 geoname_id => 2, 55 iso_code => 'CA', 56 names => { en => 'Canada' }, 57 }, 58 represented_country => { 59 geoname_id => 3, 60 iso_code => 'GB', 61 names => { en => 'United Kingdom' }, 62 }, 63 subdivisions => [ 64 { 65 geoname_id => 574635, 66 iso_code => 'MN', 67 names => { en => 'Minnesota' }, 68 }, 69 ], 70 traits => { 71 autonomous_system_number => 1234, 72 autonomous_system_organization => 'AS Organization', 73 domain => 'example.com', 74 ip_address => '1.2.3.4', 75 is_satellite_provider => 1, 76 isp => 'Comcast', 77 organization => 'Blorg', 78 }, 79 ); 80 81 test_model_class( 'GeoIP2::Model::City', \%raw ); 82} 83 84{ 85 test_model_class_with_empty_record('GeoIP2::Model::City'); 86 test_model_class_with_unknown_keys('GeoIP2::Model::City'); 87} 88 89done_testing(); 90