File Coverage

blib/lib/Test/Deep/HashKeys.pm
Criterion Covered Total %
statement 37 37 100.0
branch 2 2 100.0
condition n/a
subroutine 10 10 100.0
pod 0 3 0.0
total 49 52 94.2


line stmt bran cond sub pod time code
1 8     8   55 use strict;
  8         20  
  8         256  
2 8     8   40 use warnings;
  8         16  
  8         301  
3              
4             package Test::Deep::HashKeys 1.204;
5              
6 8     8   407 use Test::Deep::Ref;
  8         16  
  8         48  
7              
8             sub init
9             {
10 43     43 0 66 my $self = shift;
11              
12 43         70 my %keys;
13 43         100 @keys{@_} = ();
14 43         635 $self->{val} = \%keys;
15 43         159 $self->{keys} = [sort @_];
16             }
17              
18             sub descend
19             {
20 43     43 0 69 my $self = shift;
21 43         66 my $got = shift;
22              
23 43         72 my $exp = $self->{val};
24              
25 43 100       156 return 0 unless $self->test_reftype($got, "HASH");
26              
27 21         58 return Test::Deep::descend($got, $self->hashkeysonly($exp));
28             }
29              
30             sub hashkeysonly
31             {
32 19     19 0 2748 require Test::Deep::HashKeysOnly;
33              
34 19         45 my $self = shift;
35 19         34 my $exp = shift;
36              
37 19         121 return Test::Deep::HashKeysOnly->new(keys %$exp)
38             }
39              
40             package Test::Deep::SuperHashKeys 1.204;
41              
42 8     8   65 use base 'Test::Deep::HashKeys';
  8         32  
  8         1390  
43              
44             sub hashkeysonly
45             {
46 1     1   6 require Test::Deep::HashKeysOnly;
47              
48 1         2 my $self = shift;
49 1         2 my $exp = shift;
50              
51 1         11 return Test::Deep::SuperHashKeysOnly->new(keys %$exp)
52             }
53              
54             package Test::Deep::SubHashKeys 1.204;
55              
56 8     8   66 use base 'Test::Deep::HashKeys';
  8         30  
  8         1258  
57              
58             sub hashkeysonly
59             {
60 1     1   4 require Test::Deep::HashKeysOnly;
61              
62 1         3 my $self = shift;
63 1         3 my $exp = shift;
64              
65 1         11 return Test::Deep::SubHashKeysOnly->new(keys %$exp)
66             }
67              
68             1;
69              
70             __END__