File Coverage

blib/lib/CHI/t/Subcache.pm
Criterion Covered Total %
statement 26 33 78.7
branch 1 2 50.0
condition n/a
subroutine 10 10 100.0
pod 0 2 0.0
total 37 47 78.7


line stmt bran cond sub pod time code
1             package CHI::t::Subcache;
2             $CHI::t::Subcache::VERSION = '0.61';
3 1     1   772 use CHI::Test;
  1         4  
  1         7  
4 1     1   8 use CHI::Util qw(can_load);
  1         3  
  1         52  
5 1     1   6 use base qw(CHI::Test::Class);
  1         1  
  1         599  
6 1     1   17 use strict;
  1         3  
  1         27  
7 1     1   5 use warnings;
  1         2  
  1         179  
8              
9             sub test_option_inheritance : Tests {
10 1     1 0 3503 my $self = shift;
11              
12 1 50       8 return 'Data::Serializer not installed'
13             unless can_load('Data::Serializer');
14              
15 0         0 my %params = (
16             expires_variance => 0.2,
17             namespace => 'Blurg',
18             on_get_error => 'warn',
19             on_set_error => 'warn',
20             serializer => 'Data::Dumper',
21             depth => 4,
22             );
23 0         0 my $cache =
24             CHI->new( driver => 'File', %params, l1_cache => { driver => 'File' } );
25 0         0 foreach my $field (qw(expires_variance namespace on_get_error on_set_error))
26             {
27 0         0 is( $cache->$field, $cache->l1_cache->$field, "$field matches" );
28             }
29 0         0 is( $cache->l1_cache->serializer->serializer,
30             'Data::Dumper', 'l1 cache serializer' );
31 0         0 is( $cache->depth, 4, 'cache depth' );
32 0         0 is( $cache->l1_cache->depth, 2, 'l1 cache depth' );
33 1     1   7 }
  1         2  
  1         9  
34              
35             sub test_bad_subcache_option : Tests {
36 1     1 0 1602 my $self = shift;
37             throws_ok(
38             sub {
39 1     1   57 CHI->new(
40             driver => 'Memory',
41             global => 1,
42             l1_cache => CHI->new( driver => 'Memory', global => 1 )
43             );
44             },
45 1         13 qr/Validation failed for|isa check for .*? failed/,
46             'cannot pass cache object as subcache'
47             );
48 1     1   579 }
  1         2  
  1         6  
49              
50             1;