remove redundant '; 1' after require
[p5sagit/Function-Parameters.git] / t / info.t
index c670cef..b708be5 100644 (file)
--- a/t/info.t
+++ b/t/info.t
@@ -2,10 +2,16 @@
 use warnings FATAL => 'all';
 use strict;
 
-use Test::More tests => 104;
+use Test::More
+       eval { require Moo }
+       ? (tests => 122)
+       : (skip_all => "Moo required for testing parameter introspection")
+;
 
 use Function::Parameters;
 
+sub Inf () { 0 + 'Inf' }
+
 fun foo($pr1, $pr2, $po1 = 1, $po2 = 2, :$no1 = 3, :$no2 = 4, %r) {}
 
 {
@@ -21,6 +27,8 @@ fun foo($pr1, $pr2, $po1 = 1, $po2 = 2, :$no1 = 3, :$no2 = 4, %r) {}
        is_deeply [$info->named_optional], [qw($no1 $no2)];
        is scalar $info->named_optional, 2;
        is $info->slurpy, '%r';
+       is $info->args_min, 2;
+       is $info->args_max, Inf;
 }
 
 {
@@ -36,6 +44,8 @@ fun foo($pr1, $pr2, $po1 = 1, $po2 = 2, :$no1 = 3, :$no2 = 4, %r) {}
        is_deeply [$info->named_optional], [];
        is scalar $info->named_optional, 0;
        is $info->slurpy, undef;
+       is $info->args_min, 5;
+       is $info->args_max, Inf;
 }
 
 sub bar {}
@@ -59,6 +69,8 @@ method baz($class: $po1 = 1, $po2 = 2, $po3 = 3, :$no1 = 4, @rem) {}
        is_deeply [$info->named_optional], [qw($no1)];
        is scalar $info->named_optional, 1;
        is $info->slurpy, '@rem';
+       is $info->args_min, 1;
+       is $info->args_max, Inf;
 }
 
 {
@@ -74,6 +86,8 @@ method baz($class: $po1 = 1, $po2 = 2, $po3 = 3, :$no1 = 4, @rem) {}
        is_deeply [$info->named_optional], [];
        is scalar $info->named_optional, 0;
        is $info->slurpy, undef;
+       is $info->args_min, 1;
+       is $info->args_max, 1;
 }
 
 {
@@ -90,6 +104,8 @@ method baz($class: $po1 = 1, $po2 = 2, $po3 = 3, :$no1 = 4, @rem) {}
        is_deeply [$info->named_optional], [];
        is scalar $info->named_optional, 0;
        is $info->slurpy, '@_';
+       is $info->args_min, 0;
+       is $info->args_max, Inf;
 }
 
 {
@@ -105,6 +121,8 @@ method baz($class: $po1 = 1, $po2 = 2, $po3 = 3, :$no1 = 4, @rem) {}
        is_deeply [$info->named_optional], [];
        is scalar $info->named_optional, 0;
        is $info->slurpy, '@_';
+       is $info->args_min, 1;
+       is $info->args_max, Inf;
 }
 
 {
@@ -126,6 +144,8 @@ method baz($class: $po1 = 1, $po2 = 2, $po3 = 3, :$no1 = 4, @rem) {}
                is_deeply [$info->named_optional], [];
                is scalar $info->named_optional, 0;
                is $info->slurpy, undef;
+               is $info->args_min, 6;
+               is $info->args_max, Inf;
                is $f->(), $i;
        }
 }