The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use Test;
use strict;
BEGIN { plan tests => 23 };
use PPM::Make::Search;
ok(1); # If we made it this far, we're ok.

my $search = PPM::Make::Search->new();
ok($search);
ok(ref($search), 'PPM::Make::Search');

my $dist = 'libnet';
my $mod = 'Net::FTP';
my %mode = ($dist => 'dist', $mod => 'mod');
foreach my $query( ($dist, $mod) ) {
  my @query = ($query);
  my $mode = $mode{$query};
  $search->search(\@query, mode => $mode); 
  my $key = $mode . '_results';
  my $results = $search->{$key};
  ok($results);
  ok(ref($results), 'HASH');
  my $info = $results->{$query};
  ok($info);
  ok(ref($info), 'HASH'); 
  ok($info->{dist_name}, $dist);
  ok($info->{author} =~ /\w+/);
  ok($info->{cpanid} =~ /\w+/);
  ok($info->{dist_file} =~ /$dist/);
  if ($mode eq 'mod') {
    ok($info->{mod_name}, $query);
    ok($info->{mod_vers} > 0);

  }
  else {
    ok($info->{dist_vers} > 0);
    my $flag = 0;
    my @mods = @{$info->{mods}};
    foreach (@mods) {
      if ($_->{mod_name} eq 'Net::FTP') {
        $flag = 1;
        last;
      }
    }
    ok($flag > 0);
  }
}