File Coverage

lib/Mail/DMARC/Result/Reason.pm
Criterion Covered Total %
statement 22 22 100.0
branch 6 8 75.0
condition n/a
subroutine 6 6 100.0
pod 2 3 66.6
total 36 39 92.3


line stmt bran cond sub pod time code
1             package Mail::DMARC::Result::Reason;
2             our $VERSION = '1.20211209';
3 7     7   124 use strict;
  7         18  
  7         240  
4 7     7   39 use warnings;
  7         11  
  7         218  
5              
6 7     7   36 use Carp;
  7         14  
  7         2273  
7              
8             sub new {
9 21     21 0 64 my ( $class, @args ) = @_;
10 21 50       79 croak "invalid arguments" if @args % 2;
11 21         75 my %args = @args;
12 21         58 my $self = bless {}, $class;
13 21         76 foreach my $key ( keys %args ) {
14 33         125 $self->$key( $args{$key} );
15             }
16 15         66 return $self;
17             }
18              
19             sub type {
20 21 50   21 1 71 return $_[0]->{type} if 1 == scalar @_;
21             croak "invalid type"
22 21 100       50 if 0 == grep {/^$_[1]$/ix}
  126         1371  
23             qw/ forwarded sampled_out trusted_forwarder
24             mailing_list local_policy other /;
25 15         68 return $_[0]->{type} = $_[1];
26             }
27              
28             sub comment {
29 13 100   13 1 53 return $_[0]->{comment} if 1 == scalar @_;
30              
31             # comment is optional and requires no validation
32 12         51 return $_[0]->{comment} = $_[1];
33             }
34              
35             1;
36              
37             __END__