File Coverage

lib/JMAP/Validation/Generators/SetError.pm
Criterion Covered Total %
statement 18 18 100.0
branch 3 4 75.0
condition n/a
subroutine 5 5 100.0
pod 0 1 0.0
total 26 28 92.8


line stmt bran cond sub pod time code
1             package JMAP::Validation::Generators::SetError;
2              
3 2     2   764 use strict;
  2         2  
  2         46  
4 2     2   6 use warnings;
  2         2  
  2         38  
5              
6 2     2   733 use JMAP::Validation::Generators::String;
  2         4  
  2         73  
7 2     2   10 use JSON::Typist;
  2         3  
  2         224  
8              
9             my %types = (
10             invalidArguments => {
11             description => JMAP::Validation::Generators::String->generate(),
12             },
13             invalidProperties => {
14             properties => [],
15             description => JMAP::Validation::Generators::String->generate(),
16             },
17             (
18             map { $_ => undef }
19             qw{
20             accountReadOnly
21             fromAccountNoMail
22             fromAccountNotFound
23             invalidMailboxes
24             maxQuotaReached
25             notFound
26             stateMismatch
27             toAccountNoMail
28             toAccountNotFound
29             }
30             ),
31             );
32              
33             sub generate {
34 8     8 0 330 my (@types) = @_;
35              
36 8         10 my @SetErrors;
37              
38 8 50       14 foreach my $type (@types ? @types : (keys %types)) {
39             push @SetErrors, {
40             type => JSON::Typist::String->new($type),
41 8 100       17 ($types{$type} ? (%{$types{$type}}) : ()),
  4         31  
42             };
43             }
44              
45 8         41 return \@SetErrors;
46             }
47              
48             1;