1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
## no critic (Moose::RequireCleanNamespace, Modules::ProhibitMultiplePackages, Moose::RequireMakeImmutable)
use strict;
use warnings;
use Test::More;
use Test::Fatal;
{
package Foo;
use Moose;
use MooseX::Params::Validate;
sub bar {
my ( $self, $args, $params ) = @_;
$params->{MX_PARAMS_VALIDATE_NO_CACHE}++;
return validated_hash( $args, %$params );
}
}
my $foo = Foo->new;
isa_ok( $foo, 'Foo' );
is(
exception {
$foo->bar( [ baz => 1 ], { baz => { isa => 'Int' } } );
},
undef,
'... successfully applied the parameter validation'
);
is(
exception {
$foo->bar( [ baz => [ 1, 2, 3 ] ], { baz => { isa => 'ArrayRef' } } );
},
undef,
'... successfully applied the parameter validation (look mah no cache)'
);
is(
exception {
$foo->bar( [ baz => { one => 1 } ], { baz => { isa => 'HashRef' } } );
},
undef,
'... successfully applied the parameter validation (look mah no cache) (just checkin)'
);
done_testing();
|