1use strict; 2use warnings; 3use autodie; 4 5use Test::Fatal; 6use Test::More; 7 8use lib 't/lib'; 9use Test::MaxMind::DB::Reader; 10 11use MaxMind::DB::Reader; 12 13{ 14 my $filename = 'MaxMind-DB-test-ipv4-24.mmdb'; 15 my $reader = MaxMind::DB::Reader->new( 16 file => "maxmind-db/test-data/$filename" ); 17 18 isa_ok( 19 $reader, 'MaxMind::DB::Reader::XS', 20 'MaxMind::DB::Reader->new()' 21 ); 22 23 my $metadata = $reader->metadata; 24 my $mmdb_record = $reader->record_for_address('1.1.1.32'); 25 26 $reader = undef; 27 28 is_deeply( 29 $mmdb_record, 30 { ip => '1.1.1.32' }, 31 'string in entry data is still valid after mmdb free' 32 ); 33 34 is( 35 $metadata->description->{en}, 36 'Test Database', 37 'string from metadata is still valid after mmdb free' 38 ); 39} 40 41{ 42 my $filename = 'MaxMind-DB-test-decoder.mmdb'; 43 my $reader = MaxMind::DB::Reader->new( 44 file => "maxmind-db/test-data/$filename" ); 45 46 my $mmdb_record = $reader->record_for_address('1.1.1.1'); 47 48 is( 49 exception { $mmdb_record->{boolean} = 'foo' }, 50 undef, 51 'returned boolean values are not read-only' 52 ); 53} 54 55done_testing(); 56