+is ($modules->required('module'=>"String::Random"),1, 'String::Random should return 1 since required');
+is ($modules->version_info(), -1, "Testing empty modules");
+
+is($modules->version_info("Local::Module::Upgraded")->{"upgrade"},0,"Version 0.9.13 is greater than 0.9.3, so no upgrade needed");
+is($modules->version_info("Local::Module::NotUpgraded")->{"upgrade"},1,"Version 0.9.1 is smaller than 0.9.1, so no upgrade needed");
+
+subtest 'versions_info' => sub {
+ plan tests => 4;
+ my $modules = C4::Installer::PerlModules->new;
+ $modules->versions_info;
+ ok( exists $modules->{missing_pm}, 'versions_info fills the missing_pm key' );
+ ok( exists $modules->{upgrade_pm}, 'versions_info fills the upgrade_pm key' );
+ ok( exists $modules->{current_pm}, 'versions_info fills the current_pm key' );
+ my $missing_modules = $modules->get_attr( 'missing_pm' );
+ my $upgrade_modules = $modules->get_attr( 'upgrade_pm' );
+ my $current_modules = $modules->get_attr( 'current_pm' );
+ my $dbi_is_missing = grep { exists $_->{DBI} ? 1 : () } @$missing_modules;
+ my $dbi_is_upgrade = grep { exists $_->{DBI} ? 1 : () } @$upgrade_modules;
+ my $dbi_is_current = grep { exists $_->{DBI} ? 1 : () } @$current_modules;
+ ok( $dbi_is_missing || $dbi_is_upgrade || $dbi_is_current, 'DBI should either be missing, upgrade or current' );
+};