The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#  -*-cperl-*-
use strict;
use warnings;
use blib;
use FindBin;
use lib "$FindBin::Bin/../inc";       # Bundled build dependencies
use lib "$FindBin::Bin/tlib";         # Test libraries


# Test suite to ensure dependencies are installed 

my @modules;
my @need_ones;

BEGIN {
    @modules = (
                'NEXT',
                'Data::Diff',
                'Class::Accessor',
                'Regexp::Common',
                'DBI',
                'Test::Exception',
                'Exception::Class',
                'aliased',
                'SQL::Statement',
                'Lingua::EN::Inflect',
                'IO::Scalar',
               );
    @need_ones = (
                  [ 'DBD::Pg', 'DBD::SQLite' ] # list drivers here
                 );
}

use Test::More tests => ((scalar @modules) + (scalar @need_ones));

foreach my $module (@modules) {
   use_ok($module);
}

foreach my $set (@need_ones) {
    my $have_one = 0;
  MODULE_IN_SET:
    foreach my $module (@$set) {
        eval "use $module;";
        unless ($@) {
            $have_one = $module;
            last MODULE_IN_SET;
        }
    }
    my $names = join ' ', @$set;
    if ($have_one) {
        pass("Needed one of ($names), found $have_one");
    } else {
        fail("Needed one of ($names), none found!");
    }

}