The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

use strict;
plan tests => 10;
ok !eval{ refactor_to_sub() } => 'Missing first argument';
like $@, qr{'code' argument of refactor_to_sub\(\) must be a string} => '...produced correct message';
ok !eval{ refactor_to_sub([]) } => 'Wrong first argument';
like $@, qr{'code' argument of refactor_to_sub\(\) must be a string} => '...produced correct message';
ok !eval{ refactor_to_sub('', [ naem => 'refsub' ]) } => 'Wrong second argument';
like $@, qr{'options' argument of refactor_to_sub\(\) must be hash ref, not array ref}
=> '...produced correct message';
ok !eval{ refactor_to_sub('', 'oops', { naem => 'refsub' }) } => 'Bad argument';
like $@, qr{Unexpected extra argument passed to refactor_to_sub\(\): 'oops'}
=> '...produced correct message';
ok !eval{ refactor_to_sub('', { naem => 'refsub' }) } => 'Bad option';
like $@, qr{Unknown option \('naem'\) passed to refactor_to_sub} => '...produced correct message';
done_testing();