########################################################################
# test using module with no args (all defaults) for perl version values.
########################################################################

use 5.006;
use version;

use Test::More;
use Test::Deep;

use File::Basename  qw( basename    );
use FindBin         qw( $Bin        );

my $madness = 'Module::FromPerlVer';
my $v_dir   = 'version';

note "Test sandbox: '$v_dir'";

SKIP:
{
    my $base    = basename $0, '.t';

    my ( $perl_v )
    =  do
    {
        my $i   = rindex $base, '-';
        substr $base, ++$i
    }
    or 
    skip "Botched test: no perl version in '$base'.", 1;

    note "Testing perl version: '$perl_v'.";

    version->parse( $perl_v )->numify
    or skip "Botched test: non-parsable '$perl_v' ($base).";

    local $ENV{ PERL_VERSION } = $perl_v;

    eval
    {
        use_ok $madness;
    }
    or skip "Use failed: $@", 1;

    for my $prefix ( $madness->source_prefix )
    {
        my $expect  = './t/version';

        is $prefix, $expect, "Source prefix: '$found' ($expect)";
    }

    for my $found ( scalar $madness->source_files )
    {
        @$found
        ? pass 'Found source files in version directory'
        : fail 'Missing source files for cleanup'
        ;

        note "Source files:\n", explain $found;

        ok -e , "Found: '$_'"
        for @$found;
    }

    eval
    {
        $madness->cleanup;

        pass "Survived cleanup.";
    }
    or 
    fail "Failed cleanup: $@";
}

done_testing;
__END__
