PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` #!/usr/bin/perl use strict; use warnings; =head1 TEST PURPOSE These tests test option list expansion (from an option list into a hashref). =cut use Sub::Install; use Test::More tests => 13; BEGIN { use_ok('Data::OptList'); } # let's get a convenient copy to use: Sub::Install::install_sub({ code => 'mkopt_hash', from => 'Data::OptList', as => 'OPTH', }); is_deeply( OPTH(), {}, "empty opt list expands properly", ); is_deeply( OPTH(undef), {}, "undef opt list expands properly", ); is_deeply( OPTH([]), {}, "empty arrayref opt list expands properly", ); is_deeply( OPTH({}), {}, "empty hashref opt list expands properly", ); is_deeply( OPTH([ qw(foo bar baz) ]), { foo => undef, bar => undef, baz => undef }, "opt list of just names expands", ); is_deeply( OPTH([ qw(foo :bar baz) ]), { foo => undef, ':bar' => undef, baz => undef }, "opt list of names expands with :group names", ); is_deeply( OPTH([ foo => { a => 1 }, ':bar', 'baz' ]), { foo => { a => 1 }, ':bar' => undef, baz => undef }, "opt list of names and values expands", ); is_deeply( OPTH([ foo => { a => 1 }, ':bar' => undef, 'baz' ]), { foo => { a => 1 }, ':bar' => undef, baz => undef }, "opt list of names and values expands, ignoring undef", ); is_deeply( OPTH({ foo => { a => 1 }, -bar => undef, baz => undef }, 0, 'HASH'), { foo => { a => 1 }, -bar => undef, baz => undef }, "opt list of names and values expands with must_be", ); is_deeply( OPTH({ foo => { a => 1 }, -bar => undef, baz => undef }, 0, ['HASH']), { foo => { a => 1 }, -bar => undef, baz => undef }, "opt list of names and values expands with [must_be]", ); eval { OPTH({ foo => { a => 1 }, -bar => undef, baz => undef }, 0, 'ARRAY'); }; like($@, qr/HASH-ref values are not/, "exception tossed on invaild ref value"); eval { OPTH({ foo => { a => 1 }, -bar => undef, baz => undef }, 0, ['ARRAY']); }; like($@, qr/HASH-ref values are not/, "exception tossed on invaild ref value");