rename file to match other tests
[gitmo/MooseX-Params-Validate.git] / t / 004_custom_cache_key.t
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 use Test::More tests => 7;
7 use Test::Exception;
8 use Scalar::Util;
9
10 {
11     package Foo;
12     use Moose;
13     use MooseX::Params::Validate;
14
15     sub bar {
16         my ( $self, $args, $params ) = @_;
17         $params->{MX_PARAMS_VALIDATE_CACHE_KEY}
18             = Scalar::Util::refaddr($self);
19         return validated_hash( $args, %$params );
20     }
21 }
22
23 my $foo = Foo->new;
24 isa_ok( $foo, 'Foo' );
25
26 lives_ok {
27     $foo->bar( [ baz => 1 ], { baz => { isa => 'Int' } } );
28 }
29 '... successfully applied the parameter validation';
30
31 throws_ok {
32     $foo->bar( [ baz => [ 1, 2, 3 ] ], { baz => { isa => 'ArrayRef' } } );
33 } qr/\QThe 'baz' parameter/,
34 '... successfully re-used the parameter validation for this instance';
35
36 my $foo2 = Foo->new;
37 isa_ok( $foo2, 'Foo' );
38
39 lives_ok {
40     $foo2->bar( [ baz => [ 1, 2, 3 ] ], { baz => { isa => 'ArrayRef' } } );
41 }
42 '... successfully applied the parameter validation';
43
44 throws_ok {
45     $foo2->bar( [ baz => 1 ], { baz => { isa => 'Int' } } );
46 } qr/\QThe 'baz' parameter/,
47 '... successfully re-used the parameter validation for this instance';
48
49 lives_ok {
50     $foo->bar( [ baz => 1 ], { baz => { isa => 'Int' } } );
51 }
52 '... successfully applied the parameter validation (just checking)';
53