File Coverage

lib/Data/Validation/Constraints/Password.pm
Criterion Covered Total %
statement 16 16 100.0
branch 6 6 100.0
condition 2 2 100.0
subroutine 4 4 100.0
pod 1 1 100.0
total 29 29 100.0


line stmt bran cond sub pod time code
1             package Data::Validation::Constraints::Password;
2              
3 1     1   552 use namespace::autoclean;
  1         1  
  1         8  
4              
5 1     1   76 use Data::Validation::Constants qw( EXCEPTION_CLASS FALSE TRUE );
  1         2  
  1         9  
6 1     1   272 use Moo;
  1         2  
  1         6  
7              
8             extends q(Data::Validation::Constraints);
9              
10             EXCEPTION_CLASS->add_exception( 'ValidPassword', {
11             parents => [ 'InvalidParameter' ],
12             error => 'Parameter [_1] is not a valid password' } );
13              
14             sub validate {
15 10   100 10 1 20 my ($self, $val) = @_; my $min_length = $self->min_length || 6;
  10         63  
16              
17 10 100       33 length $val < $min_length and return FALSE;
18 8 100       47 $val =~ m{ \A \d+ \z }mx and return FALSE;
19 7         17 $val =~ tr{A-Z}{a-z}; $val =~ tr{a-z}{}d;
  7         15  
20 7 100       43 return length $val > 0 ? TRUE : FALSE;
21             }
22              
23             1;
24              
25             # Local Variables:
26             # mode: perl
27             # tab-width: 3
28             # End: