File Coverage

lib/JMAP/Validation/Generators/ContactInformation.pm
Criterion Covered Total %
statement 23 23 100.0
branch 1 2 50.0
condition n/a
subroutine 6 6 100.0
pod 0 1 0.0
total 30 32 93.7


line stmt bran cond sub pod time code
1             package JMAP::Validation::Generators::ContactInformation;
2              
3 3     3   343 use strict;
  3         4  
  3         66  
4 3     3   9 use warnings;
  3         5  
  3         67  
5              
6 3     3   296 use JMAP::Validation::Generators::String;
  3         4  
  3         49  
7 3     3   10 use JSON::PP;
  3         3  
  3         133  
8 3     3   11 use JSON::Typist;
  3         4  
  3         362  
9              
10             my %types = (
11             emails => [qw{
12             personal
13             work
14             other
15             }],
16             phones => [qw{
17             home
18             work
19             mobile
20             fax
21             pager
22             other
23             }],
24             online => [qw{
25             uri
26             username
27             other
28             }],
29             );
30              
31             sub generate {
32 9     9 0 478 my ($type) = @_;
33              
34 9         8 my @ContactInformation;
35              
36 9 50       9 foreach my $type_value (@{$types{$type} || []}) {
  9         32  
37 36         933 foreach my $label (JMAP::Validation::Generators::String->generate(), undef) {
38 72         3372 foreach my $isDefault (JSON::PP::true, JSON::PP::false) {
39 144         2561 push @ContactInformation, {
40             type => JSON::Typist::String->new($type_value),
41             label => $label,
42             value => JMAP::Validation::Generators::String->generate(),
43             isDefault => $isDefault,
44             }
45             }
46             }
47             }
48              
49 9         323 return @ContactInformation;
50             }
51              
52             1;