The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use strict;
use warnings;

use Test::More;

my $rv;

##############################################################
# Tests static dependency scanning on a real set of modules.
# This exercises the scanning functionality but because the
# majority of files scanned aren't fixed, the checks are
# necessarily loose.
##############################################################
my @deps = qw(
    Carp.pm 
    Config.pm	
    Exporter.pm 
    Test/More.pm
    constant.pm	
    strict.pm
    vars.pm
    Module/ScanDeps.pm
);
plan tests => @deps + 3;

##############################################################
# Tests compilation of Module::ScanDeps
##############################################################
use_ok( 'Module::ScanDeps' );


my $obj = Module::ScanDeps->new;
$obj->set_file($0);
$obj->calculate_info;
ok($rv = $obj->get_files);

foreach my $mod (@deps) {
    ok(grep {$_->{store_as} eq $mod } @{$rv->{modules}});
};

use File::Basename qw/basename/;
my $basename = basename($0);
ok(not(grep {$_->{store_as} =~ /\Q$basename\E/} @{$rv->{modules}})); 
__END__