X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F002_basic_list.t;h=75e0629ee59164b434b33d4dc78767b4d647c14d;hb=ccdd2813934f72ea676eb55d833db3c62f206364;hp=67598470b1b6d23a3d3a60649a7325e98adadcec;hpb=d7a80104bb058373d3685627779a8bd1fd893824;p=gitmo%2FMooseX-Params-Validate.git diff --git a/t/002_basic_list.t b/t/002_basic_list.t index 6759847..75e0629 100644 --- a/t/002_basic_list.t +++ b/t/002_basic_list.t @@ -4,7 +4,7 @@ use strict; use warnings; use Test::More; -use Test::Exception; +use Test::Fatal; { package Roles::Blah; @@ -44,7 +44,7 @@ use Test::Exception; my ( $foo, $bar, $boo ) = validated_list( \@_, foo => { - isa => subtype( 'Object' => where { $_->isa('Foo') } ), + isa => subtype( 'Object' => where { $_->isa('Foo') } ), optional => 1 }, bar => { does => 'Roles::Blah', optional => 1 }, @@ -61,46 +61,77 @@ my $foo = Foo->new; isa_ok( $foo, 'Foo' ); is( $foo->foo, 'Horray for Moose!', '... got the right return value' ); -is( $foo->foo( bar => 'Rolsky' ), 'Horray for Rolsky!', - '... got the right return value' ); +is( + $foo->foo( bar => 'Rolsky' ), 'Horray for Rolsky!', + '... got the right return value' +); is( $foo->baz( foo => $foo ), $foo, '... foo param must be a Foo instance' ); -throws_ok { $foo->baz( foo => 10 ) } qr/\QThe 'foo' parameter ("10")/, - '... the foo param in &baz must be a Foo instance'; -throws_ok { $foo->baz( foo => "foo" ) } qr/\QThe 'foo' parameter ("foo")/, - '... the foo param in &baz must be a Foo instance'; -throws_ok { $foo->baz( foo => [] ) } qr/\QThe 'foo' parameter/, - '... the foo param in &baz must be a Foo instance'; +like( + exception { $foo->baz( foo => 10 ) }, qr/\QThe 'foo' parameter ("10")/, + '... the foo param in &baz must be a Foo instance' +); +like( + exception { $foo->baz( foo => "foo" ) }, + qr/\QThe 'foo' parameter ("foo")/, + '... the foo param in &baz must be a Foo instance' +); +like( + exception { $foo->baz( foo => [] ) }, qr/\QThe 'foo' parameter/, + '... the foo param in &baz must be a Foo instance' +); is( $foo->baz( bar => $foo ), $foo, '... bar param must do Roles::Blah' ); -throws_ok { $foo->baz( bar => 10 ) } qr/\QThe 'bar' parameter ("10")/, -'... the bar param in &baz must be do Roles::Blah'; -throws_ok { $foo->baz( bar => "foo" ) } qr/\QThe 'bar' parameter ("foo")/, -'... the bar param in &baz must be do Roles::Blah'; -throws_ok { $foo->baz( bar => [] ) } qr/\QThe 'bar' parameter/, -'... the bar param in &baz must be do Roles::Blah'; +like( + exception { $foo->baz( bar => 10 ) }, qr/\QThe 'bar' parameter ("10")/, + '... the bar param in &baz must be do Roles::Blah' +); +like( + exception { $foo->baz( bar => "foo" ) }, + qr/\QThe 'bar' parameter ("foo")/, + '... the bar param in &baz must be do Roles::Blah' +); +like( + exception { $foo->baz( bar => [] ) }, qr/\QThe 'bar' parameter/, + '... the bar param in &baz must be do Roles::Blah' +); is( $foo->baz( boo => $foo ), $foo, '... boo param must do Roles::Blah' ); -throws_ok { $foo->baz( boo => 10 ) } qr/\QThe 'boo' parameter ("10")/, -'... the boo param in &baz must be do Roles::Blah'; -throws_ok { $foo->baz( boo => "foo" ) } qr/\QThe 'boo' parameter ("foo")/, -'... the boo param in &baz must be do Roles::Blah'; -throws_ok { $foo->baz( boo => [] ) } qr/\QThe 'boo' parameter/, -'... the boo param in &baz must be do Roles::Blah'; - -throws_ok { $foo->bar } qr/\QMandatory parameter 'foo'/, - '... bar has a required param'; -throws_ok { $foo->bar( foo => 10 ) } qr/\QThe 'foo' parameter ("10")/, - '... the foo param in &bar must be a Foo instance'; -throws_ok { $foo->bar( foo => "foo" ) } qr/\QThe 'foo' parameter ("foo")/, - '... the foo param in &bar must be a Foo instance'; -throws_ok { $foo->bar( foo => [] ) } qr/\QThe 'foo' parameter/, - '... the foo param in &bar must be a Foo instance'; -throws_ok { $foo->bar( baz => [] ) } qr/\QMandatory parameter 'foo'/,, - '... bar has a required foo param'; +like( + exception { $foo->baz( boo => 10 ) }, qr/\QThe 'boo' parameter ("10")/, + '... the boo param in &baz must be do Roles::Blah' +); +like( + exception { $foo->baz( boo => "foo" ) }, + qr/\QThe 'boo' parameter ("foo")/, + '... the boo param in &baz must be do Roles::Blah' +); +like( + exception { $foo->baz( boo => [] ) }, qr/\QThe 'boo' parameter/, + '... the boo param in &baz must be do Roles::Blah' +); + +like( + exception { $foo->bar }, qr/\QMandatory parameter 'foo'/, + '... bar has a required param' +); +like( + exception { $foo->bar( foo => 10 ) }, qr/\QThe 'foo' parameter ("10")/, + '... the foo param in &bar must be a Foo instance' +); +like( + exception { $foo->bar( foo => "foo" ) }, + qr/\QThe 'foo' parameter ("foo")/, + '... the foo param in &bar must be a Foo instance' +); +like( + exception { $foo->bar( foo => [] ) }, qr/\QThe 'foo' parameter/, + '... the foo param in &bar must be a Foo instance' +); +like( exception { $foo->bar( baz => [] ) }, qr/\QMandatory parameter 'foo'/ ); is_deeply( $foo->bar( foo => $foo ), @@ -120,17 +151,24 @@ is_deeply( '... the foo param and baz param in &bar got a correct args' ); -throws_ok { $foo->bar( foo => $foo, baz => undef ) } -qr/\QThe 'baz' parameter (undef)/, - '... baz requires a ArrayRef | HashRef'; -throws_ok { $foo->bar( foo => $foo, baz => 10 ) } -qr/\QThe 'baz' parameter ("10")/, - '... baz requires a ArrayRef | HashRef'; -throws_ok { $foo->bar( foo => $foo, baz => 'Foo' ) } -qr/\QThe 'baz' parameter ("Foo")/, - '... baz requires a ArrayRef | HashRef'; -throws_ok { $foo->bar( foo => $foo, baz => \( my $var ) ) } -qr/\QThe 'baz' parameter/, - '... baz requires a ArrayRef | HashRef'; +like( + exception { $foo->bar( foo => $foo, baz => undef ) }, + qr/\QThe 'baz' parameter (undef)/, + '... baz requires a ArrayRef | HashRef' +); +like( + exception { $foo->bar( foo => $foo, baz => 10 ) }, + qr/\QThe 'baz' parameter ("10")/, + '... baz requires a ArrayRef | HashRef' +); +like( + exception { $foo->bar( foo => $foo, baz => 'Foo' ) }, + qr/\QThe 'baz' parameter ("Foo")/, + '... baz requires a ArrayRef | HashRef' +); +like( + exception { $foo->bar( foo => $foo, baz => \( my $var ) ) }, + qr/\QThe 'baz' parameter/, '... baz requires a ArrayRef | HashRef' +); done_testing();