File Coverage

blib/lib/Error/TypeTiny/WrongNumberOfParameters.pm
Criterion Covered Total %
statement 26 27 96.3
branch 9 10 90.0
condition 12 12 100.0
subroutine 12 12 100.0
pod 7 7 100.0
total 66 68 97.0


line stmt bran cond sub pod time code
1             package Error::TypeTiny::WrongNumberOfParameters;
2              
3 89     89   3366 use 5.008001;
  89         363  
4 89     89   621 use strict;
  89         212  
  89         2549  
5 89     89   523 use warnings;
  89         210  
  89         7245  
6              
7             BEGIN {
8 89     89   380 $Error::TypeTiny::WrongNumberOfParameters::AUTHORITY = 'cpan:TOBYINK';
9 89         43216 $Error::TypeTiny::WrongNumberOfParameters::VERSION = '2.010001';
10             }
11              
12             $Error::TypeTiny::WrongNumberOfParameters::VERSION =~ tr/_//d;
13              
14             require Error::TypeTiny;
15             our @ISA = 'Error::TypeTiny';
16              
17 91     91 1 735 sub minimum { $_[0]{minimum} }
18 65     65 1 387 sub maximum { $_[0]{maximum} }
19 68     68 1 438 sub got { $_[0]{got} }
20 29     29 1 155 sub target { $_[0]{target} }
21              
22 138     138 1 831 sub has_minimum { exists $_[0]{minimum} }
23 84     84 1 448 sub has_maximum { exists $_[0]{maximum} }
24 63     63 1 266 sub has_target { exists $_[0]{target} }
25              
26             sub _build_message {
27 63     63   162 my $e = shift;
28            
29 63         149 my $base = 'Wrong number of parameters';
30 63 100       219 if ( $e->has_target ) {
31 29         96 $base .= sprintf( ' to %s', $e->target );
32             }
33            
34 63 100 100     213 if ( $e->has_minimum and $e->has_maximum and $e->minimum == $e->maximum ) {
    100 100        
    100 100        
    50 100        
35 22         72 return sprintf(
36             "%s; got %d; expected %d",
37             $base,
38             $e->got,
39             $e->minimum,
40             );
41             }
42             elsif ( $e->has_minimum and $e->has_maximum and $e->minimum < $e->maximum ) {
43 12         28 return sprintf(
44             "%s; got %d; expected %d to %d",
45             $base,
46             $e->got,
47             $e->minimum,
48             $e->maximum,
49             );
50             }
51             elsif ( $e->has_minimum ) {
52 4         16 return sprintf(
53             "%s; got %d; expected at least %d",
54             $base,
55             $e->got,
56             $e->minimum,
57             );
58             }
59             elsif ( $e->has_maximum ) {
60 0         0 return sprintf(
61             "%s; got %d; expected at most %d",
62             $base,
63             $e->got,
64             $e->maximum,
65             );
66             }
67             else {
68 25         81 return sprintf(
69             "%s; got %d",
70             $base,
71             $e->got,
72             );
73             }
74             } #/ sub _build_message
75              
76             1;
77              
78             __END__