#!perl 
use warnings;
use strict;

use Data::Dumper;
use Test::More tests => 10;
use Test::Trap;

BEGIN {#1
    use_ok( 'Devel::Examine::Subs' ) || print "Bail out!\n";
}

{#3 cache file
    
    my $des = Devel::Examine::Subs->new({
                            file => 't',
                            cache => 1,
                            cache_test => 'files',
                          });

    $des->run_directory();
    is($des->cache_status('files'), 0, "files cache not used on new call");
    $des->all();
    is($des->cache_status('files'), 1, "files cache is used on subsequent call");
    $des->all();
    is($des->cache_status('files'), 1, "files cache is used on further subsequent call");
    $des->run_directory({extensions => ['data']});
    is($des->cache_status('files'), 0, "files cache not used if extensions changed");
    $des->all();
    is($des->cache_status('files'), 1, "files cache is used on subsequent call");
    $des->run_directory();
    is($des->cache_status('files'), 1, "files cache is used on subsequent call");
    $des->all({file => 'lib'});
    is($des->cache_status('files'), 0, "files cache not used if 'file' changed");
    $des->run_directory();
    is($des->cache_status('files'), 1, "files cache is used on subsequent call");
    $des->run_directory();
    is($des->cache_status('files'), 1, "files cache is used on further subsequent call");
}
