update foreign tests
[p5sagit/Function-Parameters.git] / t / foreign / MooseX-Method-Signatures / undef_method_arg.t
CommitLineData
595edbcf 1#!perl
2use strict;
3use warnings FATAL => 'all';
4use Test::More;
5use Test::Fatal;
6
7{
8 package Foo;
9 use Function::Parameters qw(:strict);
10
1a52f2db 11 method new($class:) { bless {}, $class }
595edbcf 12
1a52f2db 13 method m1(:$bar ) { }
98e6239b 14 method m2(:$bar = undef) { }
1a52f2db 15 method m3(:$bar ) { }
595edbcf 16
1a52f2db 17 method m4( $bar ) { }
18 method m5( $bar = undef) { }
19 method m6( $bar ) { }
595edbcf 20}
21
22my $foo = Foo->new;
23
1a52f2db 24is(exception { $foo->m1(bar => undef) }, undef, 'Explicitly pass undef to named implicit required arg');
25is(exception { $foo->m2(bar => undef) }, undef, 'Explicitly pass undef to named explicit optional arg');
26is(exception { $foo->m3(bar => undef) }, undef, 'Explicitly pass undef to named implicit required arg');
595edbcf 27
1a52f2db 28is(exception { $foo->m4(undef) }, undef, 'Explicitly pass undef to implicit required arg');
595edbcf 29is(exception { $foo->m5(undef) }, undef, 'Explicitly pass undef to explicit required arg');
30is(exception { $foo->m6(undef) }, undef, 'Explicitly pass undef to implicit required arg');
31
32done_testing;