Blame t/positional/required.t
|
Packit Service |
817997 |
use strict;
|
|
Packit Service |
817997 |
use warnings;
|
|
Packit Service |
817997 |
|
|
Packit Service |
817997 |
use Test2::V0;
|
|
Packit Service |
817997 |
use Test2::Plugin::NoWarnings;
|
|
Packit Service |
817997 |
|
|
Packit Service |
817997 |
use Params::ValidationCompiler qw( validation_for );
|
|
Packit Service |
817997 |
use Specio::Library::Builtins;
|
|
Packit Service |
817997 |
|
|
Packit Service |
817997 |
{
|
|
Packit Service |
817997 |
my $sub = validation_for(
|
|
Packit Service |
817997 |
params => [
|
|
Packit Service |
817997 |
1,
|
|
Packit Service |
817997 |
{
|
|
Packit Service |
817997 |
type => t('Int'),
|
|
Packit Service |
817997 |
optional => 1,
|
|
Packit Service |
817997 |
},
|
|
Packit Service |
817997 |
],
|
|
Packit Service |
817997 |
);
|
|
Packit Service |
817997 |
|
|
Packit Service |
817997 |
is(
|
|
Packit Service |
817997 |
dies { $sub->(42) },
|
|
Packit Service |
817997 |
undef,
|
|
Packit Service |
817997 |
'lives when given 1st param but no 2nd'
|
|
Packit Service |
817997 |
);
|
|
Packit Service |
817997 |
|
|
Packit Service |
817997 |
is(
|
|
Packit Service |
817997 |
dies { $sub->( 42, 42 ) },
|
|
Packit Service |
817997 |
undef,
|
|
Packit Service |
817997 |
'lives when given 1st and 2nd params'
|
|
Packit Service |
817997 |
);
|
|
Packit Service |
817997 |
|
|
Packit Service |
817997 |
like(
|
|
Packit Service |
817997 |
dies { $sub->() },
|
|
Packit Service |
817997 |
qr/Got 0 parameters but expected at least 1/,
|
|
Packit Service |
817997 |
'dies when not given any params'
|
|
Packit Service |
817997 |
);
|
|
Packit Service |
817997 |
}
|
|
Packit Service |
817997 |
|
|
Packit Service |
817997 |
{
|
|
Packit Service |
817997 |
like(
|
|
Packit Service |
817997 |
dies {
|
|
Packit Service |
817997 |
validation_for(
|
|
Packit Service |
817997 |
params => [
|
|
Packit Service |
817997 |
{ optional => 1 },
|
|
Packit Service |
817997 |
{ type => t('Int') },
|
|
Packit Service |
817997 |
],
|
|
Packit Service |
817997 |
);
|
|
Packit Service |
817997 |
},
|
|
Packit Service |
817997 |
qr/\QParameter list contains an optional parameter followed by a required parameter/,
|
|
Packit Service |
817997 |
'cannot have positional parameters where an optional param comes before a required one'
|
|
Packit Service |
817997 |
);
|
|
Packit Service |
817997 |
|
|
Packit Service |
817997 |
like(
|
|
Packit Service |
817997 |
dies {
|
|
Packit Service |
817997 |
validation_for(
|
|
Packit Service |
817997 |
params => [
|
|
Packit Service |
817997 |
{ default => 42 },
|
|
Packit Service |
817997 |
{ type => t('Int') },
|
|
Packit Service |
817997 |
],
|
|
Packit Service |
817997 |
);
|
|
Packit Service |
817997 |
},
|
|
Packit Service |
817997 |
qr/\QParameter list contains an optional parameter followed by a required parameter/,
|
|
Packit Service |
817997 |
'cannot have positional parameters where a param with a default comes before a required one'
|
|
Packit Service |
817997 |
);
|
|
Packit Service |
817997 |
}
|
|
Packit Service |
817997 |
|
|
Packit Service |
817997 |
done_testing();
|