The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;
use utf8;
use Test::More;
use t::Util;

my $parser = make_parser
    qq{01101,"064  ","0640941","ホッカイドウ","サッポロシチュウオウク","アサヒガオカ","北海道","札幌市中央区","旭ケ丘",0,0,1,0,0,0},
    qq{13113,"151  ","1510064","トウキョウト","シブヤク","ウエハラ","東京都","渋谷区","上原",0,0,1,0,0,0},
    qq{13307,"19002","1900223","トウキョウト","ニシタマグンヒノハラムラ","ナンゴウ","東京都","西多摩郡檜原村","南郷",0,0,0,0,0,0};

# region_id, old_zip, zip, pref_kana, region_kana, town_kana, $pref, $region, $town, $is_multi_zip, $has_koaza_banchi, $has_chome, $is_multi_town, $update_status, $update_reason
subtest 'sapporo' => sub {
    my $row = $parser->fetch_obj;
    is($row->region_id, '01101');
    is($row->old_zip, '064  ');
    is($row->zip, '0640941');
    is($row->pref_kana, 'ホッカイドウ');
    is($row->region_kana, 'サッポロシチュウオウク');
    is($row->town_kana, 'アサヒガオカ');
    is($row->pref, '北海道');
    is($row->region, '札幌市中央区');
    is($row->town, '旭ケ丘');
    is($row->is_multi_zip, '0');
    is($row->has_koaza_banchi, '0');
    is($row->has_chome, '1');
    is($row->is_multi_town, '0');
    is($row->update_status, '0');
    is($row->update_reason, '0');
};

subtest 'shibuya' => sub {
    my $row = $parser->fetch_obj;
    is($row->region_id, '13113');
    is($row->old_zip, '151  ');
    is($row->zip, '1510064');
    is($row->pref_kana, 'トウキョウト');
    is($row->region_kana, 'シブヤク');
    is($row->town_kana, 'ウエハラ');
    is($row->pref, '東京都');
    is($row->region, '渋谷区');
    is($row->town, '上原');
    is($row->is_multi_zip, '0');
    is($row->has_koaza_banchi, '0');
    is($row->has_chome, '1');
    is($row->is_multi_town, '0');
    is($row->update_status, '0');
    is($row->update_reason, '0');
};

subtest 'hinohara' => sub {
    my $row = $parser->fetch_obj;
    is($row->region_id, '13307');
    is($row->old_zip, '19002');
    is($row->zip, '1900223');
    is($row->pref_kana, 'トウキョウト');
    is($row->region_kana, 'ニシタマグンヒノハラムラ');
    is($row->town_kana, 'ナンゴウ');
    is($row->pref, '東京都');
    is($row->region, '西多摩郡檜原村');
    is($row->town, '南郷');
    is($row->is_multi_zip, '0');
    is($row->has_koaza_banchi, '0');
    is($row->has_chome, '0');
    is($row->is_multi_town, '0');
    is($row->update_status, '0');
    is($row->update_reason, '0');
};

is($parser->fetch_obj, undef);

done_testing;